MCPcopy Create free account
hub / github.com/bytedance/bolt / TEST_F

Function TEST_F

bolt/exec/tests/OutputBufferManagerTest.cpp:427–498  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

425};
426
427TEST_F(OutputBufferManagerTest, arbitrayBuffer) {
428 {
429 ArbitraryBuffer buffer;
430 ASSERT_TRUE(buffer.empty());
431 ASSERT_FALSE(buffer.hasNoMoreData());
432 ASSERT_EQ(
433 buffer.toString(), "[ARBITRARY_BUFFER PAGES[0] NO MORE DATA[false]]");
434 BOLT_ASSERT_THROW(buffer.enqueue(nullptr), "Unexpected null page");
435 ASSERT_EQ(
436 buffer.toString(), "[ARBITRARY_BUFFER PAGES[0] NO MORE DATA[false]]");
437 buffer.noMoreData();
438 ASSERT_EQ(
439 buffer.toString(), "[ARBITRARY_BUFFER PAGES[0] NO MORE DATA[true]]");
440 }
441
442 {
443 ArbitraryBuffer buffer;
444 ASSERT_TRUE(buffer.empty());
445 ASSERT_FALSE(buffer.hasNoMoreData());
446 auto page1 = makeSerializedPage(rowType_, 100);
447 auto* rawPage1 = page1.get();
448 buffer.enqueue(std::move(page1));
449 ASSERT_FALSE(buffer.empty());
450 ASSERT_FALSE(buffer.hasNoMoreData());
451 ASSERT_EQ(
452 buffer.toString(), "[ARBITRARY_BUFFER PAGES[1] NO MORE DATA[false]]");
453 auto page2 = makeSerializedPage(rowType_, 100);
454 auto* rawPage2 = page2.get();
455 buffer.enqueue(std::move(page2));
456 ASSERT_FALSE(buffer.empty());
457 ASSERT_FALSE(buffer.hasNoMoreData());
458 ASSERT_EQ(
459 buffer.toString(), "[ARBITRARY_BUFFER PAGES[2] NO MORE DATA[false]]");
460
461 auto pages = buffer.getPages(1);
462 ASSERT_EQ(pages.size(), 1);
463 ASSERT_EQ(pages[0].get(), rawPage1);
464 auto page3 = makeSerializedPage(rowType_, 100);
465 auto* rawPage3 = page3.get();
466 buffer.enqueue(std::move(page3));
467 ASSERT_EQ(
468 buffer.toString(), "[ARBITRARY_BUFFER PAGES[2] NO MORE DATA[false]]");
469 buffer.noMoreData();
470 ASSERT_FALSE(buffer.empty());
471 ASSERT_TRUE(buffer.hasNoMoreData());
472 ASSERT_EQ(
473 buffer.toString(), "[ARBITRARY_BUFFER PAGES[2] NO MORE DATA[true]]");
474 pages = buffer.getPages(1'000'000'000);
475 ASSERT_EQ(pages.size(), 3);
476 ASSERT_EQ(pages[0].get(), rawPage2);
477 ASSERT_EQ(pages[1].get(), rawPage3);
478 ASSERT_EQ(pages[2].get(), nullptr);
479 ASSERT_TRUE(buffer.empty());
480 ASSERT_TRUE(buffer.hasNoMoreData());
481 ASSERT_EQ(
482 buffer.toString(), "[ARBITRARY_BUFFER PAGES[0] NO MORE DATA[true]]");
483 auto page4 = makeSerializedPage(rowType_, 100);
484 BOLT_ASSERT_THROW(

Callers

nothing calls this directly

Calls 15

hasNoMoreDataMethod · 0.80
getPagesMethod · 0.80
maybeLoadDataMethod · 0.80
getAndClearNotifyMethod · 0.80
lengthMethod · 0.80
removeTaskMethod · 0.80
requestCancelMethod · 0.80
dequeueLockedMethod · 0.80
maxFunction · 0.50
emptyMethod · 0.45
toStringMethod · 0.45
enqueueMethod · 0.45

Tested by

no test coverage detected