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.



---

Reply via email to