3434
3535namespace doris ::vectorized {
3636
37+ class MockClosure : public google ::protobuf::Closure {
38+ public:
39+ MockClosure () {}
40+ MockClosure (std::function<void ()> cb) : _cb(cb) {}
41+ void Run () override { _cb (); }
42+
43+ std::function<void ()> _cb;
44+ };
3745class ArrowResultBlockBufferTest : public ::testing::Test {
3846public:
3947 ArrowResultBlockBufferTest () = default ;
@@ -44,8 +52,9 @@ class MockGetArrowResultBatchCtx : public GetArrowResultBatchCtx {
4452public:
4553 ENABLE_FACTORY_CREATOR (MockGetArrowResultBatchCtx)
4654 MockGetArrowResultBatchCtx (std::function<void ()> fail_cb, std::function<void ()> close_cb,
47- std::function<void ()> data_cb, PFetchArrowDataResult* result)
48- : GetArrowResultBatchCtx(result),
55+ std::function<void ()> data_cb, PFetchArrowDataResult* result,
56+ google::protobuf::Closure* done)
57+ : GetArrowResultBatchCtx(result, done),
4958 _fail_cb (fail_cb),
5059 _close_cb(close_cb),
5160 _data_cb(data_cb) {}
@@ -78,9 +87,11 @@ TEST_F(ArrowResultBlockBufferTest, TestArrowResultBlockBuffer) {
7887 ArrowFlightResultBlockBuffer buffer (TUniqueId (), &state, schema, buffer_size);
7988 buffer.set_dependency (ins_id, dep);
8089 PFetchArrowDataResult presult;
90+
91+ MockClosure done ([&]() -> void { std::cout << " cb" << std::endl; });
8192 std::shared_ptr<GetArrowResultBatchCtx> ctx = MockGetArrowResultBatchCtx::create_shared (
8293 [&]() -> void { fail = true ; }, [&]() -> void { close = true ; },
83- [&]() -> void { data = true ; }, &presult);
94+ [&]() -> void { data = true ; }, &presult, &done );
8495
8596 {
8697 auto num_rows = 2 ;
@@ -201,9 +212,11 @@ TEST_F(ArrowResultBlockBufferTest, TestCancelArrowResultBlockBuffer) {
201212 ArrowFlightResultBlockBuffer buffer (TUniqueId (), &state, schema, buffer_size);
202213 buffer.set_dependency (ins_id, dep);
203214 PFetchArrowDataResult presult;
215+
216+ MockClosure done ([&]() -> void { std::cout << " cb" << std::endl; });
204217 std::shared_ptr<GetArrowResultBatchCtx> ctx = MockGetArrowResultBatchCtx::create_shared (
205218 [&]() -> void { fail = true ; }, [&]() -> void { close = true ; },
206- [&]() -> void { data = true ; }, &presult);
219+ [&]() -> void { data = true ; }, &presult, &done );
207220
208221 {
209222 EXPECT_TRUE (buffer.get_batch (ctx).ok ());
@@ -273,9 +286,11 @@ TEST_F(ArrowResultBlockBufferTest, TestErrorClose) {
273286 ArrowFlightResultBlockBuffer buffer (TUniqueId (), &state, schema, buffer_size);
274287 buffer.set_dependency (ins_id, dep);
275288 PFetchArrowDataResult presult;
289+
290+ MockClosure done ([&]() -> void { std::cout << " cb" << std::endl; });
276291 std::shared_ptr<GetArrowResultBatchCtx> ctx = MockGetArrowResultBatchCtx::create_shared (
277292 [&]() -> void { fail = true ; }, [&]() -> void { close = true ; },
278- [&]() -> void { data = true ; }, &presult);
293+ [&]() -> void { data = true ; }, &presult, &done );
279294
280295 {
281296 EXPECT_TRUE (buffer.get_batch (ctx).ok ());
@@ -330,9 +345,11 @@ TEST_F(ArrowResultBlockBufferTest, TestArrowResultSerializeFailure) {
330345 ArrowFlightResultBlockBuffer buffer (TUniqueId (), &state, schema, buffer_size);
331346 buffer.set_dependency (ins_id, dep);
332347 PFetchArrowDataResult presult;
348+
349+ MockClosure done ([&]() -> void { std::cout << " cb" << std::endl; });
333350 std::shared_ptr<GetArrowResultBatchCtx> ctx = MockGetArrowResultBatchCtx::create_shared (
334351 [&]() -> void { fail = true ; }, [&]() -> void { close = true ; },
335- [&]() -> void { data = true ; }, &presult);
352+ [&]() -> void { data = true ; }, &presult, &done );
336353
337354 {
338355 auto num_rows = 2 ;
0 commit comments