Github user NicoK commented on a diff in the pull request:
https://github.com/apache/flink/pull/5581#discussion_r170990471
--- Diff:
flink-runtime/src/test/java/org/apache/flink/runtime/io/network/partition/SubpartitionTestBase.java
---
@@ -138,11 +145,68 @@ static void assertNextBuffer(
ResultSubpartitionView readView,
int expectedReadableBufferSize,
boolean expectedIsMoreAvailable,
- int expectedBuffersInBacklog) throws IOException,
InterruptedException {
+ int expectedBuffersInBacklog,
+ boolean expectedNextBufferIsEvent,
+ boolean expectedRecycledAfterRecycle) throws
IOException, InterruptedException {
+ assertNextBufferOrEvent(
+ readView,
+ expectedReadableBufferSize,
+ true,
+ null,
+ expectedIsMoreAvailable,
+ expectedBuffersInBacklog,
+ expectedNextBufferIsEvent,
+ expectedRecycledAfterRecycle);
+ }
+
+ static void assertNextEvent(
+ ResultSubpartitionView readView,
+ int expectedReadableBufferSize,
+ @Nullable Class<? extends AbstractEvent>
expectedEventClass,
+ boolean expectedIsMoreAvailable,
+ int expectedBuffersInBacklog,
+ boolean expectedNextBufferIsEvent,
+ boolean expectedRecycledAfterRecycle) throws
IOException, InterruptedException {
+ assertNextBufferOrEvent(
+ readView,
+ expectedReadableBufferSize,
+ false,
+ expectedEventClass,
+ expectedIsMoreAvailable,
+ expectedBuffersInBacklog,
+ expectedNextBufferIsEvent,
+ expectedRecycledAfterRecycle);
+ }
+
+ private static void assertNextBufferOrEvent(
+ ResultSubpartitionView readView,
+ int expectedReadableBufferSize,
+ boolean expectedIsBuffer,
+ Class<? extends AbstractEvent> expectedEventClass,
+ boolean expectedIsMoreAvailable,
+ int expectedBuffersInBacklog,
+ boolean expectedNextBufferIsEvent,
+ boolean expectedRecycledAfterRecycle) throws
IOException, InterruptedException {
+ checkArgument(expectedEventClass == null || !expectedIsBuffer);
+
ResultSubpartition.BufferAndBacklog bufferAndBacklog =
readView.getNextBuffer();
- assertEquals(expectedReadableBufferSize,
bufferAndBacklog.buffer().readableBytes());
- assertEquals(expectedIsMoreAvailable,
bufferAndBacklog.isMoreAvailable());
- assertEquals(expectedBuffersInBacklog,
bufferAndBacklog.buffersInBacklog());
+ assertNotNull(bufferAndBacklog);
+
+ assertEquals("buffer size", expectedReadableBufferSize,
bufferAndBacklog.buffer().readableBytes());
--- End diff --
Unfortunately yes:
- with the string:
```
java.lang.AssertionError: buffer size
Expected :1025
Actual :1024
```
- without the string:
```
java.lang.AssertionError:
Expected :1025
Actual :1024
```
It is even worse for boolean values as you may imagine. This way, you can
immediately get to your test to fix the assumption and do not have to click
into `SubpartitionTestBase` to identify what was actually wrong.
---