Skip to content

Commit 35448f3

Browse files
committed
Beware of WCOW
1 parent a4cf0be commit 35448f3

1 file changed

Lines changed: 24 additions & 4 deletions

File tree

api-client/src/test/java/de/gesellix/docker/remote/api/client/ContainerApiIntegrationTest.java

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package de.gesellix.docker.remote.api.client;
22

33
import com.squareup.moshi.Moshi;
4+
5+
import de.gesellix.docker.registry.LocalDocker;
46
import de.gesellix.docker.remote.api.ContainerCreateRequest;
57
import de.gesellix.docker.remote.api.ContainerCreateResponse;
68
import de.gesellix.docker.remote.api.ContainerInspectResponse;
@@ -931,6 +933,16 @@ null, null, singletonList("/cat"),
931933
null,
932934
null
933935
);
936+
if (LocalDocker.isNativeWindows()) {
937+
containerCreateRequest.setTty(false);
938+
containerCreateRequest.setEntrypoint(singletonList("cmd"));
939+
containerCreateRequest.setCmd(Arrays.asList("/V:ON", "/C", "set /p line= & echo #!line!#"));
940+
} else {
941+
containerCreateRequest.setTty(false);
942+
containerCreateRequest.setEntrypoint(singletonList("/bin/sh"));
943+
containerCreateRequest.setCmd(Arrays.asList("-c", "read line && echo \"#$line#\""));
944+
}
945+
934946
containerApi.containerCreate(containerCreateRequest, "container-attach-interactive-test");
935947
containerApi.containerStart("container-attach-interactive-test", null);
936948

@@ -981,10 +993,18 @@ public void run() {
981993
} catch (InterruptedException e) {
982994
e.printStackTrace();
983995
}
984-
assertSame(Frame.StreamType.RAW, callback.frames.stream().findAny().get().getStreamType());
985-
assertEquals(
986-
"hello echo\nhello echo".replaceAll("[\\n\\r]", ""),
987-
callback.frames.stream().map(Frame::getPayloadAsString).collect(Collectors.joining()).replaceAll("[\\n\\r]", ""));
996+
997+
if (containerCreateRequest.getTty() != null && containerCreateRequest.getTty()) {
998+
assertSame(Frame.StreamType.RAW, callback.frames.stream().findAny().get().getStreamType());
999+
assertEquals(
1000+
"hello echo\nhello echo".replaceAll("[\\n\\r]", ""),
1001+
callback.frames.stream().map(Frame::getPayloadAsString).collect(Collectors.joining()).replaceAll("[\\n\\r]", ""));
1002+
} else {
1003+
assertSame(Frame.StreamType.STDOUT, callback.frames.stream().findAny().get().getStreamType());
1004+
assertEquals(
1005+
"#hello echo#",
1006+
callback.frames.stream().map(Frame::getPayloadAsString).collect(Collectors.joining()).replaceAll("[\\n\\r]", ""));
1007+
}
9881008

9891009
removeContainer(engineApiClient, "container-attach-interactive-test");
9901010
}

0 commit comments

Comments
 (0)