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

Function TEST_F

cpp/src/arrow/util/async_generator_test.cc:889–937  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

887};
888
889TEST_F(SeqMergedGeneratorTestFixture, Basic) {
890 ASSERT_OK_AND_ASSIGN(
891 AsyncGenerator<TestInt> gen,
892 MakeSequencedMergedGenerator(
893 static_cast<AsyncGenerator<AsyncGenerator<TestInt>>>(tracked_source_), 4));
894 // Should not initially ask for anything
895 ASSERT_EQ(0, NumSubsAskedFor());
896 BeginCaptureOutput(gen);
897 // Should not read ahead async-reentrantly from source
898 ASSERT_EQ(1, NumSubsAskedFor());
899 EmitSub();
900 ASSERT_EQ(2, NumSubsAskedFor());
901 // Should immediately start polling
902 ASSERT_EQ(1, NumItemsAskedFor(0));
903 EmitSub();
904 EmitSub();
905 EmitSub();
906 EmitSub();
907 // Should limit how many subs it reads ahead
908 ASSERT_EQ(4, NumSubsAskedFor());
909 // Should immediately start polling subs even if they aren't yet active
910 ASSERT_EQ(1, NumItemsAskedFor(1));
911 ASSERT_EQ(1, NumItemsAskedFor(2));
912 ASSERT_EQ(1, NumItemsAskedFor(3));
913 // Items emitted on non-active subs should not be delivered and should not trigger
914 // further polling on the inactive sub
915 EmitItem(1, 0);
916 ASSERT_EQ(1, NumItemsAskedFor(1));
917 AssertRead({});
918 EmitItem(0, 1);
919 AssertRead({1});
920 ASSERT_EQ(2, NumItemsAskedFor(0));
921 EmitItem(0, 2);
922 AssertRead({1, 2});
923 ASSERT_EQ(3, NumItemsAskedFor(0));
924 // On finish it should move to the next sub and pull 1 item
925 FinishSub(0);
926 ASSERT_EQ(5, NumSubsAskedFor());
927 ASSERT_EQ(2, NumItemsAskedFor(1));
928 AssertRead({1, 2, 0});
929 // Now finish all the subs and make sure an empty sub is ok
930 FinishSub(1);
931 FinishSub(2);
932 FinishSub(3);
933 FinishSub(4);
934 ASSERT_EQ(6, NumSubsAskedFor());
935 FinishSubs();
936 AssertFinishedOk();
937}
938
939TEST_F(SeqMergedGeneratorTestFixture, ErrorItem) {
940 ASSERT_OK_AND_ASSIGN(

Callers

nothing calls this directly

Calls 3

AssertFailedFunction · 0.85
ASSERT_OK_AND_ASSIGNFunction · 0.70

Tested by

no test coverage detected