diff --git a/src/test/java/com/github/dockerjava/netty/exec/AttachContainerCmdExecTest.java b/src/test/java/com/github/dockerjava/netty/exec/AttachContainerCmdExecTest.java index 8b5759c69..66219dc72 100644 --- a/src/test/java/com/github/dockerjava/netty/exec/AttachContainerCmdExecTest.java +++ b/src/test/java/com/github/dockerjava/netty/exec/AttachContainerCmdExecTest.java @@ -6,11 +6,10 @@ import static org.hamcrest.Matchers.isEmptyString; import static org.hamcrest.Matchers.not; -import java.io.ByteArrayInputStream; import java.io.File; -import java.io.InputStream; +import java.io.PipedInputStream; +import java.io.PipedOutputStream; import java.lang.reflect.Method; -import java.util.concurrent.TimeUnit; import org.testng.ITestResult; import org.testng.annotations.AfterMethod; @@ -93,8 +92,6 @@ public void attachContainerWithStdin() throws Exception { dockerClient.startContainerCmd(container.getId()).exec(); - Thread.sleep(SECONDS.toMillis(10)); //wait bash initialisation - InspectContainerResponse inspectContainerResponse = dockerClient.inspectContainerCmd(container.getId()).exec(); assertTrue(inspectContainerResponse.getState().getRunning()); @@ -107,15 +104,20 @@ public void onNext(Frame frame) { } }; - InputStream stdin = new ByteArrayInputStream((snippet + "\n").getBytes()); + PipedOutputStream out = new PipedOutputStream(); + PipedInputStream in = new PipedInputStream(out); dockerClient.attachContainerCmd(container.getId()) .withStdErr(true) .withStdOut(true) .withFollowStream(true) - .withStdIn(stdin) - .exec(callback) - .awaitCompletion(30, SECONDS); + .withStdIn(in) + .exec(callback); + + out.write((snippet + "\n").getBytes()); + out.flush(); + + callback.awaitCompletion(15, SECONDS); callback.close(); assertThat(callback.toString(), containsString(snippet));