diff --git a/meson.build b/meson.build index d08e6bdd6..f7475208c 100644 --- a/meson.build +++ b/meson.build @@ -194,7 +194,7 @@ if get_option('tests') ipc_test_files = { 'ipc-decoder': { 'src': 'decoder', - 'deps': [nanoarrow_ipc_dep, arrow_dep, gtest_dep], + 'deps': [nanoarrow_ipc_dep, arrow_dep, gtest_dep, gmock_dep], 'timeout': 30, }, 'ipc-reader': { diff --git a/src/nanoarrow/common/buffer_test.cc b/src/nanoarrow/common/buffer_test.cc index 5287e76c4..41775e834 100644 --- a/src/nanoarrow/common/buffer_test.cc +++ b/src/nanoarrow/common/buffer_test.cc @@ -137,6 +137,8 @@ TEST(BufferTest, BufferTestMove) { } TEST(BufferTest, BufferTestFill) { + EXPECT_EQ(ArrowBufferAppendFill(NULL, 0, 0), NANOARROW_OK); + struct ArrowBuffer buffer; ArrowBufferInit(&buffer); diff --git a/src/nanoarrow/common/inline_buffer.h b/src/nanoarrow/common/inline_buffer.h index 875bfeaae..54623e7f2 100644 --- a/src/nanoarrow/common/inline_buffer.h +++ b/src/nanoarrow/common/inline_buffer.h @@ -289,6 +289,10 @@ static inline ArrowErrorCode ArrowBufferAppendBufferView(struct ArrowBuffer* buf static inline ArrowErrorCode ArrowBufferAppendFill(struct ArrowBuffer* buffer, uint8_t value, int64_t size_bytes) { + if (size_bytes == 0) { + return NANOARROW_OK; + } + NANOARROW_RETURN_NOT_OK(ArrowBufferReserve(buffer, size_bytes)); memset(buffer->data + buffer->size_bytes, value, size_bytes); diff --git a/src/nanoarrow/ipc/decoder_test.cc b/src/nanoarrow/ipc/decoder_test.cc index 8d56db7ac..10ecf7504 100644 --- a/src/nanoarrow/ipc/decoder_test.cc +++ b/src/nanoarrow/ipc/decoder_test.cc @@ -472,16 +472,16 @@ TEST_P(ArrowTypeParameterizedTestFixture, NanoarrowIpcArrowTypeRoundtrip) { } std::string ArrowSchemaMetadataToString(const char* metadata) { - struct ArrowMetadataReader reader; + struct ArrowMetadataReader reader {}; auto st = ArrowMetadataReaderInit(&reader, metadata); - NANOARROW_DCHECK(st == NANOARROW_OK); + EXPECT_EQ(st, NANOARROW_OK); bool comma = false; std::string out; while (reader.remaining_keys > 0) { struct ArrowStringView key, value; auto st = ArrowMetadataReaderRead(&reader, &key, &value); - NANOARROW_DCHECK(st == NANOARROW_OK); + EXPECT_EQ(st, NANOARROW_OK); if (comma) { out += ", "; }