PatrickRen commented on a change in pull request #18790:
URL: https://github.com/apache/flink/pull/18790#discussion_r809649007



##########
File path: 
flink-connectors/flink-connector-base/src/test/java/org/apache/flink/connector/base/source/reader/SourceReaderBaseTest.java
##########
@@ -239,6 +257,77 @@ void 
testPollNextReturnMoreAvailableWhenAllSplitFetcherCloseWithLeftoverElementI
                 .isEqualTo(InputStatus.MORE_AVAILABLE);
     }
 
+    @Test
+    void testPerSplitWatermark() throws Exception {
+        MockSplitReader mockSplitReader =
+                MockSplitReader.newBuilder()
+                        .setNumRecordsPerSplitPerFetch(3)
+                        .setBlockingFetch(true)
+                        .build();
+
+        MockSourceReader reader =
+                new MockSourceReader(
+                        new FutureCompletingBlockingQueue<>(),
+                        () -> mockSplitReader,
+                        new Configuration(),
+                        new TestingReaderContext());
+
+        SourceOperator<Integer, MockSourceSplit> sourceOperator =
+                createTestOperator(
+                        reader,
+                        WatermarkStrategy.forGenerator(
+                                (context) -> new OnEventWatermarkGenerator()),
+                        true);
+
+        MockSourceSplit splitA = new MockSourceSplit(0, 0, 3);
+        splitA.addRecord(100);
+        splitA.addRecord(200);
+        splitA.addRecord(300);
+
+        MockSourceSplit splitB = new MockSourceSplit(1, 0, 3);
+        splitB.addRecord(150);
+        splitB.addRecord(250);
+        splitB.addRecord(350);
+
+        AddSplitEvent<MockSourceSplit> addSplitsEvent =
+                new AddSplitEvent<>(Arrays.asList(splitA, splitB), new 
MockSourceSplitSerializer());
+        sourceOperator.handleOperatorEvent(addSplitsEvent);
+        WatermarkCollectingDataOutput output = new 
WatermarkCollectingDataOutput();
+
+        // First 3 records from split A should not generate any watermarks
+        CommonTestUtils.waitUtil(

Review comment:
       `SplitReader` is working in the individual fetcher thread, so it's 
possible that an invoke of `emitNext` doesn't emit anything




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to