MCPcopy Create free account
hub / github.com/apache/arrow / TestWithArrayFactory

Method TestWithArrayFactory

cpp/src/arrow/c/bridge_test.cc:683–706  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

681
682 template <typename ArrayFactory, typename ExportCheckFunc>
683 void TestWithArrayFactory(ArrayFactory&& factory, ExportCheckFunc&& check_func) {
684 auto orig_bytes = pool_->bytes_allocated();
685
686 std::shared_ptr<Array> arr;
687 ASSERT_OK_AND_ASSIGN(arr, ToResult(factory()));
688 ARROW_SCOPED_TRACE("type = ", arr->type()->ToString(),
689 ", array data = ", arr->ToString());
690 const ArrayData& data = *arr->data(); // non-owning reference
691 struct ArrowArray c_export;
692 ASSERT_OK(ExportArray(*arr, &c_export));
693
694 ArrayExportGuard guard(&c_export);
695 auto new_bytes = pool_->bytes_allocated();
696 ASSERT_GT(new_bytes, orig_bytes);
697
698 // Release the shared_ptr<Array>, underlying data should be held alive
699 arr.reset();
700 ASSERT_EQ(pool_->bytes_allocated(), new_bytes);
701 check_func(&c_export, data);
702
703 // Release the ArrowArray, underlying data should be destroyed
704 guard.Release();
705 ASSERT_EQ(pool_->bytes_allocated(), orig_bytes);
706 }
707
708 template <typename ArrayFactory>
709 void TestNested(ArrayFactory&& factory) {

Callers

nothing calls this directly

Calls 10

ToResultFunction · 0.85
factoryFunction · 0.85
ASSERT_OK_AND_ASSIGNFunction · 0.70
ExportArrayFunction · 0.70
bytes_allocatedMethod · 0.45
ToStringMethod · 0.45
typeMethod · 0.45
dataMethod · 0.45
resetMethod · 0.45
ReleaseMethod · 0.45

Tested by

no test coverage detected