2525#include " arrow/ipc/options.h"
2626#include " arrow/testing/gtest_util.h"
2727#include " arrow/util/key_value_metadata.h"
28+ #include " arrow/util/endian.h"
2829
2930namespace arrow ::ipc::internal {
3031
@@ -55,6 +56,7 @@ TEST(TestMessageInternal, TestByteIdentical) {
5556 ASSERT_OK (
5657 WriteSchemaMessage (*schema, mapper, IpcWriteOptions::Defaults (), &out_buffer));
5758
59+ #if ARROW_LITTLE_ENDIAN
5860 // This is example output from macOS+ARM+LLVM
5961 const uint8_t expected[] = {
6062 0x10 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x0A , 0x00 , 0x0E , 0x00 , 0x06 , 0x00 , 0x05 , 0x00 ,
@@ -74,6 +76,29 @@ TEST(TestMessageInternal, TestByteIdentical) {
7476 0x00 , 0x00 , 0x00 , 0x00 , 0x02 , 0x00 , 0x00 , 0x00 , 0x66 , 0x30 , 0x00 , 0x00 , 0x08 , 0x00 ,
7577 0x0C , 0x00 , 0x08 , 0x00 , 0x07 , 0x00 , 0x08 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x01 ,
7678 0x40 , 0x00 , 0x00 , 0x00 };
79+ #else
80+ // On Big-endian systems, 4 bytes are appended to indicate it as a BE system. Hence the
81+ // total size is 4 bytes more than the LE systems.
82+ // This is example output from Linux+s390x+GCC
83+ const uint8_t expected[] = {
84+ 0x10 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x0A , 0x00 , 0x0E , 0x00 , 0x06 , 0x00 , 0x05 , 0x00 ,
85+ 0x08 , 0x00 , 0x0A , 0x00 , 0x00 , 0x00 , 0x00 , 0x01 , 0x04 , 0x00 , 0x10 , 0x00 , 0x00 , 0x00 ,
86+ 0x00 , 0x00 , 0x0A , 0x00 , 0x10 , 0x00 , 0x06 , 0x00 , 0x08 , 0x00 , 0x0C , 0x00 , 0x0A , 0x00 ,
87+ 0x00 , 0x00 , 0x00 , 0x00 , 0x01 , 0x00 , 0x6C , 0x00 , 0x00 , 0x00 , 0x04 , 0x00 , 0x00 , 0x00 ,
88+ 0x02 , 0x00 , 0x00 , 0x00 , 0x38 , 0x00 , 0x00 , 0x00 , 0x04 , 0x00 , 0x00 , 0x00 , 0xD8 , 0xFF ,
89+ 0xFF , 0xFF , 0x18 , 0x00 , 0x00 , 0x00 , 0x04 , 0x00 , 0x00 , 0x00 , 0x0B , 0x00 , 0x00 , 0x00 ,
90+ 0x6B , 0x65 , 0x79 , 0x5F , 0x32 , 0x5F , 0x76 , 0x61 , 0x6C , 0x75 , 0x65 , 0x00 , 0x05 , 0x00 ,
91+ 0x00 , 0x00 , 0x6B , 0x65 , 0x79 , 0x5F , 0x32 , 0x00 , 0x00 , 0x00 , 0x08 , 0x00 , 0x0C , 0x00 ,
92+ 0x04 , 0x00 , 0x08 , 0x00 , 0x08 , 0x00 , 0x00 , 0x00 , 0x18 , 0x00 , 0x00 , 0x00 , 0x04 , 0x00 ,
93+ 0x00 , 0x00 , 0x0B , 0x00 , 0x00 , 0x00 , 0x6B , 0x65 , 0x79 , 0x5F , 0x31 , 0x5F , 0x76 , 0x61 ,
94+ 0x6C , 0x75 , 0x65 , 0x00 , 0x05 , 0x00 , 0x00 , 0x00 , 0x6B , 0x65 , 0x79 , 0x5F , 0x31 , 0x00 ,
95+ 0x00 , 0x00 , 0x01 , 0x00 , 0x00 , 0x00 , 0x14 , 0x00 , 0x00 , 0x00 , 0x10 , 0x00 , 0x14 , 0x00 ,
96+ 0x08 , 0x00 , 0x06 , 0x00 , 0x07 , 0x00 , 0x0C , 0x00 , 0x00 , 0x00 , 0x10 , 0x00 , 0x10 , 0x00 ,
97+ 0x00 , 0x00 , 0x00 , 0x00 , 0x01 , 0x02 , 0x10 , 0x00 , 0x00 , 0x00 , 0x1C , 0x00 , 0x00 , 0x00 ,
98+ 0x04 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x02 , 0x00 , 0x00 , 0x00 , 0x66 , 0x30 ,
99+ 0x00 , 0x00 , 0x08 , 0x00 , 0x0C , 0x00 , 0x08 , 0x00 , 0x07 , 0x00 , 0x08 , 0x00 , 0x00 , 0x00 ,
100+ 0x00 , 0x00 , 0x00 , 0x01 , 0x40 , 0x00 , 0x00 , 0x00 };
101+ #endif
77102 Buffer expected_buffer (expected, sizeof (expected));
78103
79104 AssertBufferEqual (expected_buffer, *out_buffer);
0 commit comments