Skip to content

Commit a108e1d

Browse files
committed
Improve Http1xSendFileTest.testSendFileFailsWhenClientClosesConnection
1 parent 3483039 commit a108e1d

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

vertx-core/src/test/java/io/vertx/tests/http/sendfile/Http1xSendFileTest.java

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,22 @@
1010
*/
1111
package io.vertx.tests.http.sendfile;
1212

13+
import io.vertx.core.Future;
1314
import io.vertx.core.http.HttpClientResponse;
1415
import io.vertx.core.http.HttpHeaders;
1516
import io.vertx.core.http.HttpServerOptions;
1617
import io.vertx.core.http.PoolOptions;
1718
import io.vertx.core.impl.Utils;
19+
import io.vertx.core.net.NetClient;
1820
import io.vertx.core.net.NetClientOptions;
21+
import io.vertx.core.net.NetSocket;
22+
import io.vertx.test.core.Repeat;
1923
import io.vertx.test.core.TestUtils;
2024
import org.junit.Assume;
2125
import org.junit.Test;
2226

2327
import java.io.File;
28+
import java.util.concurrent.CyclicBarrier;
2429
import java.util.concurrent.TimeUnit;
2530

2631
public class Http1xSendFileTest extends HttpSendFileTest {
@@ -36,8 +41,10 @@ public void testSendFileWithConnectionCloseHeader() throws Exception {
3641
public void testSendFileFailsWhenClientClosesConnection() throws Exception {
3742
// 10 megs
3843
final File f = setupFile("file.pdf", TestUtils.randomUnicodeString(10 * 1024 * 1024));
44+
CyclicBarrier barrier = new CyclicBarrier(1);
3945
server.requestHandler(req -> {
4046
try {
47+
barrier.await(10, TimeUnit.SECONDS);
4148
req.response().sendFile(f.getAbsolutePath()).onComplete(onFailure(err -> {
4249
// Broken pipe
4350
testComplete();
@@ -48,14 +55,19 @@ public void testSendFileFailsWhenClientClosesConnection() throws Exception {
4855
}
4956
});
5057
startServer(testAddress);
51-
vertx.createNetClient(new NetClientOptions()
58+
NetClient client = vertx.createNetClient(new NetClientOptions()
5259
.setSsl(createBaseClientOptions().isSsl())
5360
.setHostnameVerificationAlgorithm("")
5461
.setTrustAll(true)
55-
).connect(testAddress).onComplete(onSuccess(socket -> {
62+
);
63+
try {
64+
NetSocket socket = client.connect(testAddress).await();
5665
socket.write("GET / HTTP/1.1\r\n\r\n");
66+
barrier.await();
5767
socket.close();
58-
}));
68+
} finally {
69+
client.close();
70+
}
5971
await();
6072
}
6173

0 commit comments

Comments
 (0)