You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by ap...@apache.org on 2020/04/18 13:06:29 UTC
[arrow] branch master updated: ARROW-8467: [C++] Fix
TestArrayImport tests for big-endian platforms
This is an automated email from the ASF dual-hosted git repository.
apitrou pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/master by this push:
new 8648cd4 ARROW-8467: [C++] Fix TestArrayImport tests for big-endian platforms
8648cd4 is described below
commit 8648cd46fd990e5c2e76c265b6f927b84a194ffb
Author: Kazuaki Ishizaki <is...@jp.ibm.com>
AuthorDate: Sat Apr 18 15:06:08 2020 +0200
ARROW-8467: [C++] Fix TestArrayImport tests for big-endian platforms
This PR fixes two problems.
1. `DecodeMetadata()` always assume that a length of metadata is stored in a little-endian format. According to [this specification](https://github.com/apache/arrow/blob/master/docs/source/format/CDataInterface.rst#the-arrowschema-structure), the length is stored in a native endianness. This causes the following failure. This PR makes the interpretation of the length correct.
```
12: [ RUN ] TestSchemaImport.Struct
12: /home/ishizaki/Arrow/arrow/cpp/build-support/run-test.sh: line 92: 19528 Segmentation fault (core dumped) $TEST_EXECUTABLE "$@" 2>&1
12: 19529 Done | $ROOT/build-support/asan_symbolize.py
12: 19530 Done | ${CXXFILT:-c++filt}
12: 19531 Done | $ROOT/build-support/stacktrace_addr2line.pl $TEST_EXECUTABLE
12: 19532 Done | $pipe_cmd 2>&1
12: 19533 Done | tee $LOGFILE
```
1. `primitive_buffers_...` used in `TestImportArray` implicitly assumes little-endian. The following is an example.
```
static const uint8_t data_buffer1[] = {1, 2, 3, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16};
static const void* primitive_buffers_no_nulls1[2] = {nullptr, data_buffer1};
...
TEST_F(TestArrayImport, PrimitiveWithOffset) {
...
FillPrimitive(3, 0, 1, primitive_buffers_no_nulls1);
CheckImport(ArrayFromJSON(uint16(), "[1027, 1541, 2055]"));
```
The above code works since `03 04 05 06 07 08` is interpreted as `0x0403` (=1027), `0x0605` (=1541), and `0x0807` (=2055) on a little-endian platform. It is interpreted as `0x0304`, `0x0506`, and `0x0708` on a big-endian platform. This causes the following failure. The PR prepares `data_buffer` for each type on both endians.
```
12: [ RUN ] TestArrayImport.PrimitiveWithOffset
12: /home/ishizaki/Arrow/arrow/cpp/src/arrow/testing/gtest_util.cc:77: Failure
12: Failed
12:
12: @@ -0, +0 @@
12: -1027
12: -1541
12: -2055
12: +772
12: +1286
12: +1800
12: Expected:
12: [
12: 1027,
12: 1541,
12: 2055
12: ]
12: Actual:
12: [
12: 772,
12: 1286,
12: 1800
12: ]
```
Closes #6958 from kiszk/SPARK-8484
Authored-by: Kazuaki Ishizaki <is...@jp.ibm.com>
Signed-off-by: Antoine Pitrou <an...@python.org>
---
cpp/src/arrow/c/bridge.cc | 2 +-
cpp/src/arrow/c/bridge_test.cc | 125 ++++++++++++++++++++++++-----------------
2 files changed, 75 insertions(+), 52 deletions(-)
diff --git a/cpp/src/arrow/c/bridge.cc b/cpp/src/arrow/c/bridge.cc
index 9d973ef..224e9d1 100644
--- a/cpp/src/arrow/c/bridge.cc
+++ b/cpp/src/arrow/c/bridge.cc
@@ -714,7 +714,7 @@ Result<std::shared_ptr<KeyValueMetadata>> DecodeMetadata(const char* metadata) {
int32_t v;
memcpy(&v, metadata, 4);
metadata += 4;
- *out = BitUtil::FromLittleEndian(v);
+ *out = v;
if (*out < 0) {
return Status::Invalid("Invalid encoded metadata string");
}
diff --git a/cpp/src/arrow/c/bridge_test.cc b/cpp/src/arrow/c/bridge_test.cc
index cf6732d..fe4a0d8 100644
--- a/cpp/src/arrow/c/bridge_test.cc
+++ b/cpp/src/arrow/c/bridge_test.cc
@@ -1498,14 +1498,37 @@ static const void* buffers_nulls_no_data1[1] = {bits_buffer1};
static const uint8_t data_buffer1[] = {1, 2, 3, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16};
static const uint8_t data_buffer2[] = "abcdefghijklmnopqrstuvwxyz";
+#if ARROW_LITTLE_ENDIAN
static const uint64_t data_buffer3[] = {123456789, 0, 987654321, 0};
+#else
+static const uint64_t data_buffer3[] = {0x15cd5b0700000000, 0, 0xb168de3a00000000, 0};
+#endif
static const uint8_t data_buffer4[] = {1, 2, 0, 1, 3, 0};
static const float data_buffer5[] = {0.0f, 1.5f, -2.0f, 3.0f, 4.0f, 5.0f};
static const double data_buffer6[] = {0.0, 1.5, -2.0, 3.0, 4.0, 5.0};
static const int32_t data_buffer7[] = {1234, 5678, 9012, 3456};
static const int64_t data_buffer8[] = {123456789, 987654321, -123456789, -987654321};
-static const void* primitive_buffers_no_nulls1[2] = {nullptr, data_buffer1};
-static const void* primitive_buffers_nulls1[2] = {bits_buffer1, data_buffer1};
+#if ARROW_LITTLE_ENDIAN
+static const void* primitive_buffers_no_nulls1_8[2] = {nullptr, data_buffer1};
+static const void* primitive_buffers_no_nulls1_16[2] = {nullptr, data_buffer1};
+static const void* primitive_buffers_no_nulls1_32[2] = {nullptr, data_buffer1};
+static const void* primitive_buffers_no_nulls1_64[2] = {nullptr, data_buffer1};
+static const void* primitive_buffers_nulls1_8[2] = {bits_buffer1, data_buffer1};
+static const void* primitive_buffers_nulls1_16[2] = {bits_buffer1, data_buffer1};
+#else
+static const uint8_t data_buffer1_16[] = {2, 1, 4, 3, 6, 5, 8, 7,
+ 10, 9, 12, 11, 14, 13, 16, 15};
+static const uint8_t data_buffer1_32[] = {4, 3, 2, 1, 8, 7, 6, 5,
+ 12, 11, 10, 9, 16, 15, 14, 13};
+static const uint8_t data_buffer1_64[] = {8, 7, 6, 5, 4, 3, 2, 1,
+ 16, 15, 14, 13, 12, 11, 10, 9};
+static const void* primitive_buffers_no_nulls1_8[2] = {nullptr, data_buffer1};
+static const void* primitive_buffers_no_nulls1_16[2] = {nullptr, data_buffer1_16};
+static const void* primitive_buffers_no_nulls1_32[2] = {nullptr, data_buffer1_32};
+static const void* primitive_buffers_no_nulls1_64[2] = {nullptr, data_buffer1_64};
+static const void* primitive_buffers_nulls1_8[2] = {bits_buffer1, data_buffer1};
+static const void* primitive_buffers_nulls1_16[2] = {bits_buffer1, data_buffer1_16};
+#endif
static const void* primitive_buffers_no_nulls2[2] = {nullptr, data_buffer2};
static const void* primitive_buffers_no_nulls3[2] = {nullptr, data_buffer3};
static const void* primitive_buffers_no_nulls4[2] = {nullptr, data_buffer4};
@@ -1761,24 +1784,24 @@ class TestArrayImport : public ::testing::Test {
};
TEST_F(TestArrayImport, Primitive) {
- FillPrimitive(3, 0, 0, primitive_buffers_no_nulls1);
+ FillPrimitive(3, 0, 0, primitive_buffers_no_nulls1_8);
CheckImport(ArrayFromJSON(int8(), "[1, 2, 3]"));
- FillPrimitive(5, 0, 0, primitive_buffers_no_nulls1);
+ FillPrimitive(5, 0, 0, primitive_buffers_no_nulls1_8);
CheckImport(ArrayFromJSON(uint8(), "[1, 2, 3, 4, 5]"));
- FillPrimitive(3, 0, 0, primitive_buffers_no_nulls1);
+ FillPrimitive(3, 0, 0, primitive_buffers_no_nulls1_16);
CheckImport(ArrayFromJSON(int16(), "[513, 1027, 1541]"));
- FillPrimitive(3, 0, 0, primitive_buffers_no_nulls1);
+ FillPrimitive(3, 0, 0, primitive_buffers_no_nulls1_16);
CheckImport(ArrayFromJSON(uint16(), "[513, 1027, 1541]"));
- FillPrimitive(2, 0, 0, primitive_buffers_no_nulls1);
+ FillPrimitive(2, 0, 0, primitive_buffers_no_nulls1_32);
CheckImport(ArrayFromJSON(int32(), "[67305985, 134678021]"));
- FillPrimitive(2, 0, 0, primitive_buffers_no_nulls1);
+ FillPrimitive(2, 0, 0, primitive_buffers_no_nulls1_32);
CheckImport(ArrayFromJSON(uint32(), "[67305985, 134678021]"));
- FillPrimitive(2, 0, 0, primitive_buffers_no_nulls1);
+ FillPrimitive(2, 0, 0, primitive_buffers_no_nulls1_64);
CheckImport(ArrayFromJSON(int64(), "[578437695752307201, 1157159078456920585]"));
- FillPrimitive(2, 0, 0, primitive_buffers_no_nulls1);
+ FillPrimitive(2, 0, 0, primitive_buffers_no_nulls1_64);
CheckImport(ArrayFromJSON(uint64(), "[578437695752307201, 1157159078456920585]"));
- FillPrimitive(3, 0, 0, primitive_buffers_no_nulls1);
+ FillPrimitive(3, 0, 0, primitive_buffers_no_nulls1_8);
CheckImport(ArrayFromJSON(boolean(), "[true, false, false]"));
FillPrimitive(6, 0, 0, primitive_buffers_no_nulls5);
CheckImport(ArrayFromJSON(float32(), "[0.0, 1.5, -2.0, 3.0, 4.0, 5.0]"));
@@ -1786,17 +1809,17 @@ TEST_F(TestArrayImport, Primitive) {
CheckImport(ArrayFromJSON(float64(), "[0.0, 1.5, -2.0, 3.0, 4.0, 5.0]"));
// With nulls
- FillPrimitive(9, -1, 0, primitive_buffers_nulls1);
+ FillPrimitive(9, -1, 0, primitive_buffers_nulls1_8);
CheckImport(ArrayFromJSON(int8(), "[1, null, 3, 4, null, 6, 7, 8, 9]"));
- FillPrimitive(9, 2, 0, primitive_buffers_nulls1);
+ FillPrimitive(9, 2, 0, primitive_buffers_nulls1_8);
CheckImport(ArrayFromJSON(int8(), "[1, null, 3, 4, null, 6, 7, 8, 9]"));
- FillPrimitive(3, -1, 0, primitive_buffers_nulls1);
+ FillPrimitive(3, -1, 0, primitive_buffers_nulls1_16);
CheckImport(ArrayFromJSON(int16(), "[513, null, 1541]"));
- FillPrimitive(3, 1, 0, primitive_buffers_nulls1);
+ FillPrimitive(3, 1, 0, primitive_buffers_nulls1_16);
CheckImport(ArrayFromJSON(int16(), "[513, null, 1541]"));
- FillPrimitive(3, -1, 0, primitive_buffers_nulls1);
+ FillPrimitive(3, -1, 0, primitive_buffers_nulls1_8);
CheckImport(ArrayFromJSON(boolean(), "[true, null, false]"));
- FillPrimitive(3, 1, 0, primitive_buffers_nulls1);
+ FillPrimitive(3, 1, 0, primitive_buffers_nulls1_8);
CheckImport(ArrayFromJSON(boolean(), "[true, null, false]"));
}
@@ -1868,12 +1891,12 @@ TEST_F(TestArrayImport, Null) {
}
TEST_F(TestArrayImport, PrimitiveWithOffset) {
- FillPrimitive(3, 0, 2, primitive_buffers_no_nulls1);
+ FillPrimitive(3, 0, 2, primitive_buffers_no_nulls1_8);
CheckImport(ArrayFromJSON(int8(), "[3, 4, 5]"));
- FillPrimitive(3, 0, 1, primitive_buffers_no_nulls1);
+ FillPrimitive(3, 0, 1, primitive_buffers_no_nulls1_16);
CheckImport(ArrayFromJSON(uint16(), "[1027, 1541, 2055]"));
- FillPrimitive(4, 0, 7, primitive_buffers_no_nulls1);
+ FillPrimitive(4, 0, 7, primitive_buffers_no_nulls1_8);
CheckImport(ArrayFromJSON(boolean(), "[false, false, true, false]"));
}
@@ -1904,34 +1927,34 @@ TEST_F(TestArrayImport, String) {
}
TEST_F(TestArrayImport, List) {
- FillPrimitive(AddChild(), 8, 0, 0, primitive_buffers_no_nulls1);
+ FillPrimitive(AddChild(), 8, 0, 0, primitive_buffers_no_nulls1_8);
FillListLike(5, 0, 0, list_buffers_no_nulls1);
CheckImport(ArrayFromJSON(list(int8()), "[[1, 2], [], [3, 4, 5], [6], [7, 8]]"));
- FillPrimitive(AddChild(), 5, 0, 0, primitive_buffers_no_nulls1);
+ FillPrimitive(AddChild(), 5, 0, 0, primitive_buffers_no_nulls1_16);
FillListLike(3, 1, 0, list_buffers_nulls1);
CheckImport(ArrayFromJSON(list(int16()), "[[513, 1027], null, [1541, 2055, 2569]]"));
// Large list
- FillPrimitive(AddChild(), 5, 0, 0, primitive_buffers_no_nulls1);
+ FillPrimitive(AddChild(), 5, 0, 0, primitive_buffers_no_nulls1_16);
FillListLike(3, 0, 0, large_list_buffers_no_nulls1);
CheckImport(
ArrayFromJSON(large_list(int16()), "[[513, 1027], [], [1541, 2055, 2569]]"));
// Fixed-size list
- FillPrimitive(AddChild(), 9, 0, 0, primitive_buffers_no_nulls1);
+ FillPrimitive(AddChild(), 9, 0, 0, primitive_buffers_no_nulls1_8);
FillFixedSizeListLike(3, 0, 0, buffers_no_nulls_no_data);
CheckImport(
ArrayFromJSON(fixed_size_list(int8(), 3), "[[1, 2, 3], [4, 5, 6], [7, 8, 9]]"));
}
TEST_F(TestArrayImport, NestedList) {
- FillPrimitive(AddChild(), 8, 0, 0, primitive_buffers_no_nulls1);
+ FillPrimitive(AddChild(), 8, 0, 0, primitive_buffers_no_nulls1_8);
FillListLike(AddChild(), 5, 0, 0, list_buffers_no_nulls1);
FillListLike(3, 0, 0, large_list_buffers_no_nulls1);
CheckImport(ArrayFromJSON(large_list(list(int8())),
"[[[1, 2], []], [], [[3, 4, 5], [6], [7, 8]]]"));
- FillPrimitive(AddChild(), 6, 0, 0, primitive_buffers_no_nulls1);
+ FillPrimitive(AddChild(), 6, 0, 0, primitive_buffers_no_nulls1_8);
FillFixedSizeListLike(AddChild(), 2, 0, 0, buffers_no_nulls_no_data);
FillListLike(2, 0, 0, list_buffers_no_nulls1);
CheckImport(
@@ -1940,31 +1963,31 @@ TEST_F(TestArrayImport, NestedList) {
TEST_F(TestArrayImport, ListWithOffset) {
// Offset in child
- FillPrimitive(AddChild(), 8, 0, 1, primitive_buffers_no_nulls1);
+ FillPrimitive(AddChild(), 8, 0, 1, primitive_buffers_no_nulls1_8);
FillListLike(5, 0, 0, list_buffers_no_nulls1);
CheckImport(ArrayFromJSON(list(int8()), "[[2, 3], [], [4, 5, 6], [7], [8, 9]]"));
- FillPrimitive(AddChild(), 9, 0, 1, primitive_buffers_no_nulls1);
+ FillPrimitive(AddChild(), 9, 0, 1, primitive_buffers_no_nulls1_8);
FillFixedSizeListLike(3, 0, 0, buffers_no_nulls_no_data);
CheckImport(
ArrayFromJSON(fixed_size_list(int8(), 3), "[[2, 3, 4], [5, 6, 7], [8, 9, 10]]"));
// Offset in parent
- FillPrimitive(AddChild(), 8, 0, 0, primitive_buffers_no_nulls1);
+ FillPrimitive(AddChild(), 8, 0, 0, primitive_buffers_no_nulls1_8);
FillListLike(4, 0, 1, list_buffers_no_nulls1);
CheckImport(ArrayFromJSON(list(int8()), "[[], [3, 4, 5], [6], [7, 8]]"));
- FillPrimitive(AddChild(), 9, 0, 0, primitive_buffers_no_nulls1);
+ FillPrimitive(AddChild(), 9, 0, 0, primitive_buffers_no_nulls1_8);
FillFixedSizeListLike(3, 0, 1, buffers_no_nulls_no_data);
CheckImport(
ArrayFromJSON(fixed_size_list(int8(), 3), "[[4, 5, 6], [7, 8, 9], [10, 11, 12]]"));
// Both
- FillPrimitive(AddChild(), 8, 0, 2, primitive_buffers_no_nulls1);
+ FillPrimitive(AddChild(), 8, 0, 2, primitive_buffers_no_nulls1_8);
FillListLike(4, 0, 1, list_buffers_no_nulls1);
CheckImport(ArrayFromJSON(list(int8()), "[[], [5, 6, 7], [8], [9, 10]]"));
- FillPrimitive(AddChild(), 9, 0, 2, primitive_buffers_no_nulls1);
+ FillPrimitive(AddChild(), 9, 0, 2, primitive_buffers_no_nulls1_8);
FillFixedSizeListLike(3, 0, 1, buffers_no_nulls_no_data);
CheckImport(ArrayFromJSON(fixed_size_list(int8(), 3),
"[[6, 7, 8], [9, 10, 11], [12, 13, 14]]"));
@@ -1972,21 +1995,21 @@ TEST_F(TestArrayImport, ListWithOffset) {
TEST_F(TestArrayImport, Struct) {
FillStringLike(AddChild(), 3, 0, 0, string_buffers_no_nulls1);
- FillPrimitive(AddChild(), 3, -1, 0, primitive_buffers_nulls1);
+ FillPrimitive(AddChild(), 3, -1, 0, primitive_buffers_nulls1_16);
FillStructLike(3, 0, 0, 2, buffers_no_nulls_no_data);
auto expected = ArrayFromJSON(struct_({field("strs", utf8()), field("ints", uint16())}),
R"([["foo", 513], ["", null], ["bar", 1541]])");
CheckImport(expected);
FillStringLike(AddChild(), 3, 0, 0, string_buffers_no_nulls1);
- FillPrimitive(AddChild(), 3, 0, 0, primitive_buffers_no_nulls1);
+ FillPrimitive(AddChild(), 3, 0, 0, primitive_buffers_no_nulls1_16);
FillStructLike(3, -1, 0, 2, buffers_nulls_no_data1);
expected = ArrayFromJSON(struct_({field("strs", utf8()), field("ints", uint16())}),
R"([["foo", 513], null, ["bar", 1541]])");
CheckImport(expected);
FillStringLike(AddChild(), 3, 0, 0, string_buffers_no_nulls1);
- FillPrimitive(AddChild(), 3, 0, 0, primitive_buffers_no_nulls1);
+ FillPrimitive(AddChild(), 3, 0, 0, primitive_buffers_no_nulls1_16);
FillStructLike(3, -1, 0, 2, buffers_nulls_no_data1);
expected = ArrayFromJSON(
struct_({field("strs", utf8(), /*nullable=*/false), field("ints", uint16())}),
@@ -1997,7 +2020,7 @@ TEST_F(TestArrayImport, Struct) {
TEST_F(TestArrayImport, Union) {
// Sparse
FillStringLike(AddChild(), 4, 0, 0, string_buffers_no_nulls1);
- FillPrimitive(AddChild(), 4, -1, 0, primitive_buffers_nulls1);
+ FillPrimitive(AddChild(), 4, -1, 0, primitive_buffers_nulls1_8);
FillUnionLike(4, 0, 0, 2, sparse_union_buffers_no_nulls1);
auto type =
union_({field("strs", utf8()), field("ints", int8())}, {43, 42}, UnionMode::SPARSE);
@@ -2007,7 +2030,7 @@ TEST_F(TestArrayImport, Union) {
// Dense
FillStringLike(AddChild(), 2, 0, 0, string_buffers_no_nulls1);
- FillPrimitive(AddChild(), 3, -1, 0, primitive_buffers_nulls1);
+ FillPrimitive(AddChild(), 3, -1, 0, primitive_buffers_nulls1_8);
FillUnionLike(5, 0, 0, 2, dense_union_buffers_no_nulls1);
type =
union_({field("strs", utf8()), field("ints", int8())}, {43, 42}, UnionMode::DENSE);
@@ -2019,7 +2042,7 @@ TEST_F(TestArrayImport, Union) {
TEST_F(TestArrayImport, StructWithOffset) {
// Child
FillStringLike(AddChild(), 3, 0, 1, string_buffers_no_nulls1);
- FillPrimitive(AddChild(), 3, 0, 2, primitive_buffers_no_nulls1);
+ FillPrimitive(AddChild(), 3, 0, 2, primitive_buffers_no_nulls1_8);
FillStructLike(3, 0, 0, 2, buffers_no_nulls_no_data);
auto expected = ArrayFromJSON(struct_({field("strs", utf8()), field("ints", int8())}),
R"([["", 3], ["bar", 4], ["quux", 5]])");
@@ -2027,7 +2050,7 @@ TEST_F(TestArrayImport, StructWithOffset) {
// Parent and child
FillStringLike(AddChild(), 4, 0, 0, string_buffers_no_nulls1);
- FillPrimitive(AddChild(), 4, 0, 2, primitive_buffers_no_nulls1);
+ FillPrimitive(AddChild(), 4, 0, 2, primitive_buffers_no_nulls1_8);
FillStructLike(3, 0, 1, 2, buffers_no_nulls_no_data);
expected = ArrayFromJSON(struct_({field("strs", utf8()), field("ints", int8())}),
R"([["", 4], ["bar", 5], ["quux", 6]])");
@@ -2036,7 +2059,7 @@ TEST_F(TestArrayImport, StructWithOffset) {
TEST_F(TestArrayImport, Map) {
FillStringLike(AddChild(), 5, 0, 0, string_buffers_no_nulls1);
- FillPrimitive(AddChild(), 5, 0, 0, primitive_buffers_no_nulls1);
+ FillPrimitive(AddChild(), 5, 0, 0, primitive_buffers_no_nulls1_8);
FillStructLike(AddChild(), 5, 0, 0, 2, buffers_no_nulls_no_data);
FillListLike(3, 1, 0, list_buffers_nulls1);
auto expected = ArrayFromJSON(
@@ -2069,7 +2092,7 @@ TEST_F(TestArrayImport, Dictionary) {
}
TEST_F(TestArrayImport, NestedDictionary) {
- FillPrimitive(AddChild(), 6, 0, 0, primitive_buffers_no_nulls1);
+ FillPrimitive(AddChild(), 6, 0, 0, primitive_buffers_no_nulls1_8);
FillListLike(AddChild(), 4, 0, 0, list_buffers_no_nulls1);
FillPrimitive(6, 0, 0, primitive_buffers_no_nulls4);
FillDictionary();
@@ -2123,19 +2146,19 @@ TEST_F(TestArrayImport, DictionaryWithOffset) {
TEST_F(TestArrayImport, PrimitiveError) {
// Bad number of buffers
- FillPrimitive(3, 0, 0, primitive_buffers_no_nulls1);
+ FillPrimitive(3, 0, 0, primitive_buffers_no_nulls1_8);
c_struct_.n_buffers = 1;
CheckImportError(int8());
// Zero null bitmap but non-zero null_count
- FillPrimitive(3, 1, 0, primitive_buffers_no_nulls1);
+ FillPrimitive(3, 1, 0, primitive_buffers_no_nulls1_8);
CheckImportError(int8());
}
TEST_F(TestArrayImport, StructError) {
// Bad number of children
FillStringLike(AddChild(), 3, 0, 0, string_buffers_no_nulls1);
- FillPrimitive(AddChild(), 3, -1, 0, primitive_buffers_nulls1);
+ FillPrimitive(AddChild(), 3, -1, 0, primitive_buffers_nulls1_8);
FillStructLike(3, 0, 0, 2, buffers_no_nulls_no_data);
CheckImportError(struct_({field("strs", utf8())}));
}
@@ -2176,7 +2199,7 @@ TEST_F(TestArrayImport, ImportRecordBatch) {
auto expected_ints = ArrayFromJSON(uint16(), "[513, null, 1541]");
FillStringLike(AddChild(), 3, 0, 1, string_buffers_no_nulls1);
- FillPrimitive(AddChild(), 3, -1, 0, primitive_buffers_nulls1);
+ FillPrimitive(AddChild(), 3, -1, 0, primitive_buffers_nulls1_16);
FillStructLike(3, 0, 0, 2, buffers_no_nulls_no_data);
auto expected = RecordBatch::Make(schema, 3, {expected_strs, expected_ints});
@@ -2186,14 +2209,14 @@ TEST_F(TestArrayImport, ImportRecordBatch) {
TEST_F(TestArrayImport, ImportRecordBatchError) {
// Struct with non-zero parent offset
FillStringLike(AddChild(), 4, 0, 0, string_buffers_no_nulls1);
- FillPrimitive(AddChild(), 4, 0, 0, primitive_buffers_no_nulls1);
+ FillPrimitive(AddChild(), 4, 0, 0, primitive_buffers_no_nulls1_16);
FillStructLike(3, 0, 1, 2, buffers_no_nulls_no_data);
auto schema = ::arrow::schema({field("strs", utf8()), field("ints", uint16())});
CheckImportError(schema);
// Struct with nulls in parent
FillStringLike(AddChild(), 3, 0, 0, string_buffers_no_nulls1);
- FillPrimitive(AddChild(), 3, 0, 0, primitive_buffers_no_nulls1);
+ FillPrimitive(AddChild(), 3, 0, 0, primitive_buffers_no_nulls1_8);
FillStructLike(3, 1, 0, 2, buffers_nulls_no_data1);
CheckImportError(schema);
}
@@ -2204,7 +2227,7 @@ TEST_F(TestArrayImport, ImportArrayAndType) {
schema_builder.FillPrimitive("c");
SchemaReleaseCallback schema_cb(&schema_builder.c_struct_);
- FillPrimitive(3, 0, 0, primitive_buffers_no_nulls1);
+ FillPrimitive(3, 0, 0, primitive_buffers_no_nulls1_8);
ArrayReleaseCallback array_cb(&c_struct_);
ASSERT_OK_AND_ASSIGN(auto array, ImportArray(&c_struct_, &schema_builder.c_struct_));
@@ -2222,7 +2245,7 @@ TEST_F(TestArrayImport, ImportArrayAndTypeError) {
schema_builder.FillPrimitive("cc");
SchemaReleaseCallback schema_cb(&schema_builder.c_struct_);
- FillPrimitive(3, 0, 0, primitive_buffers_no_nulls1);
+ FillPrimitive(3, 0, 0, primitive_buffers_no_nulls1_8);
ArrayReleaseCallback array_cb(&c_struct_);
ASSERT_RAISES(Invalid, ImportArray(&c_struct_, &schema_builder.c_struct_));
@@ -2243,7 +2266,7 @@ TEST_F(TestArrayImport, ImportRecordBatchAndSchema) {
SchemaReleaseCallback schema_cb(&schema_builder.c_struct_);
FillStringLike(AddChild(), 3, 0, 1, string_buffers_no_nulls1);
- FillPrimitive(AddChild(), 3, -1, 0, primitive_buffers_nulls1);
+ FillPrimitive(AddChild(), 3, -1, 0, primitive_buffers_nulls1_16);
FillStructLike(3, 0, 0, 2, buffers_no_nulls_no_data);
ArrayReleaseCallback array_cb(&c_struct_);
@@ -2265,7 +2288,7 @@ TEST_F(TestArrayImport, ImportRecordBatchAndSchemaError) {
SchemaReleaseCallback schema_cb(&schema_builder.c_struct_);
FillStringLike(AddChild(), 3, 0, 1, string_buffers_no_nulls1);
- FillPrimitive(AddChild(), 3, -1, 0, primitive_buffers_nulls1);
+ FillPrimitive(AddChild(), 3, -1, 0, primitive_buffers_nulls1_8);
FillStructLike(3, 0, 0, 2, buffers_no_nulls_no_data);
ArrayReleaseCallback array_cb(&c_struct_);