Enable leak detection in Netty 5 tests
See gh-29310
This commit is contained in:
committed by
rstoyanchev
parent
57bbc09fca
commit
997d1b3d7e
@@ -87,7 +87,11 @@ class Netty5BufferDecoderTests extends AbstractDecoderTests<Netty5BufferDecoder>
|
||||
}
|
||||
|
||||
private Consumer<Buffer> expectByteBuffer(Buffer expected) {
|
||||
return actual -> assertThat(actual).isEqualTo(expected);
|
||||
return actual -> {
|
||||
try (actual; expected) {
|
||||
assertThat(actual).isEqualTo(expected);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -534,8 +534,12 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
||||
ByteBuffer result = buffer.asByteBuffer(1, 2);
|
||||
assertThat(result.capacity()).isEqualTo(2);
|
||||
|
||||
assumeFalse(bufferFactory instanceof Netty5DataBufferFactory,
|
||||
"Netty 5 does share the internal buffer");
|
||||
boolean isNetty5DataBufferFactory = bufferFactory instanceof Netty5DataBufferFactory;
|
||||
if (isNetty5DataBufferFactory) {
|
||||
DataBufferUtils.release(buffer);
|
||||
}
|
||||
|
||||
assumeFalse(isNetty5DataBufferFactory, "Netty 5 does share the internal buffer");
|
||||
|
||||
buffer.write((byte) 'c');
|
||||
assertThat(result.remaining()).isEqualTo(2);
|
||||
@@ -774,6 +778,9 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
||||
|
||||
assertThat(result).isEqualTo(bytes);
|
||||
|
||||
if (bufferFactory instanceof Netty5DataBufferFactory) {
|
||||
release(slice);
|
||||
}
|
||||
release(buffer);
|
||||
}
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ import java.time.Duration;
|
||||
import java.util.Map;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import io.netty5.buffer.Buffer;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.reactivestreams.Publisher;
|
||||
import reactor.core.publisher.Flux;
|
||||
@@ -209,7 +210,13 @@ public abstract class AbstractDecoderTests<D extends Decoder<?>> extends Abstrac
|
||||
|
||||
Flux<DataBuffer> buffer = Mono.from(input).concatWith(Flux.error(new InputException()));
|
||||
assertThatExceptionOfType(InputException.class).isThrownBy(() ->
|
||||
this.decoder.decode(buffer, outputType, mimeType, hints).blockLast(Duration.ofSeconds(5)));
|
||||
this.decoder.decode(buffer, outputType, mimeType, hints)
|
||||
.doOnNext(o -> {
|
||||
if (o instanceof Buffer buf) {
|
||||
buf.close();
|
||||
}
|
||||
})
|
||||
.blockLast(Duration.ofSeconds(5)));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -226,7 +233,12 @@ public abstract class AbstractDecoderTests<D extends Decoder<?>> extends Abstrac
|
||||
protected void testDecodeCancel(Publisher<DataBuffer> input, ResolvableType outputType,
|
||||
@Nullable MimeType mimeType, @Nullable Map<String, Object> hints) {
|
||||
|
||||
Flux<?> result = this.decoder.decode(input, outputType, mimeType, hints);
|
||||
Flux<?> result = this.decoder.decode(input, outputType, mimeType, hints)
|
||||
.doOnNext(o -> {
|
||||
if (o instanceof Buffer buf) {
|
||||
buf.close();
|
||||
}
|
||||
});
|
||||
StepVerifier.create(result).expectNextCount(1).thenCancel().verify();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user