Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 72597d7

Browse filesBrowse files
author
Marcus Linke
committed
Complement logging tests
1 parent 3a2dcc4 commit 72597d7
Copy full SHA for 72597d7

3 files changed

+162-42Lines changed: 162 additions & 42 deletions

File tree

Expand file treeCollapse file tree
Open diff view settings
Filter options
Expand file treeCollapse file tree
Open diff view settings
Collapse file

‎src/test/java/com/github/dockerjava/client/AbstractDockerClientTest.java‎

Copy file name to clipboardExpand all lines: src/test/java/com/github/dockerjava/client/AbstractDockerClientTest.java
+18Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,15 +225,33 @@ protected String containerLog(String containerId) throws Exception {
225225
public static class LogContainerTestCallback extends LogContainerResultCallback {
226226
protected final StringBuffer log = new StringBuffer();
227227

228+
List<Frame> collectedFrames = new ArrayList<Frame>();
229+
230+
boolean collectFrames = false;
231+
232+
public LogContainerTestCallback() {
233+
this(false);
234+
}
235+
236+
public LogContainerTestCallback(boolean collectFrames) {
237+
this.collectFrames = collectFrames;
238+
}
239+
228240
@Override
229241
public void onNext(Frame frame) {
242+
if(collectFrames) collectedFrames.add(frame);
230243
log.append(new String(frame.getPayload()));
231244
}
232245

233246
@Override
234247
public String toString() {
235248
return log.toString();
236249
}
250+
251+
252+
public List<Frame> getCollectedFrames() {
253+
return collectedFrames;
254+
}
237255
}
238256

239257
protected String buildImage(File baseDir) throws Exception {
Collapse file

‎src/test/java/com/github/dockerjava/core/command/LogContainerCmdImplTest.java‎

Copy file name to clipboardExpand all lines: src/test/java/com/github/dockerjava/core/command/LogContainerCmdImplTest.java
+72-21Lines changed: 72 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
import java.io.IOException;
1010
import java.lang.reflect.Method;
11+
import java.util.concurrent.TimeUnit;
1112

1213
import org.testng.ITestResult;
1314
import org.testng.annotations.AfterMethod;
@@ -17,6 +18,7 @@
1718
import org.testng.annotations.Test;
1819

1920
import com.github.dockerjava.api.exception.NotFoundException;
21+
import com.github.dockerjava.api.model.StreamType;
2022
import com.github.dockerjava.api.command.CreateContainerResponse;
2123
import com.github.dockerjava.client.AbstractDockerClientTest;
2224

@@ -44,31 +46,65 @@ public void afterMethod(ITestResult result) {
4446
}
4547

4648
@Test
47-
public void asyncLogContainer() throws Exception {
49+
public void asyncLogContainerWithTtyEnabled() throws Exception {
4850

49-
String snippet = "hello world";
50-
51-
CreateContainerResponse container = dockerClient.createContainerCmd("busybox").withCmd("/bin/echo", snippet)
51+
CreateContainerResponse container = dockerClient.createContainerCmd("busybox")
52+
.withCmd("/bin/sh", "-c", "while true; do echo hello; sleep 1; done")
53+
.withTty(true)
5254
.exec();
5355

5456
LOG.info("Created container: {}", container.toString());
5557
assertThat(container.getId(), not(isEmptyString()));
5658

57-
dockerClient.startContainerCmd(container.getId()).exec();
59+
dockerClient.startContainerCmd(container.getId())
60+
.exec();
5861

59-
int exitCode = dockerClient.waitContainerCmd(container.getId()).exec(new WaitContainerResultCallback())
60-
.awaitStatusCode();
62+
LogContainerTestCallback loggingCallback = new LogContainerTestCallback(true);
6163

62-
assertThat(exitCode, equalTo(0));
64+
// this essentially test the since=0 case
65+
dockerClient.logContainerCmd(container.getId())
66+
.withStdErr(true)
67+
.withStdOut(true)
68+
.withFollowStream(true)
69+
.withTailAll()
70+
.exec(loggingCallback);
6371

64-
LogContainerTestCallback loggingCallback = new LogContainerTestCallback();
72+
loggingCallback.awaitCompletion(3, TimeUnit.SECONDS);
73+
74+
assertTrue(loggingCallback.toString().contains("hello"));
75+
76+
assertEquals(loggingCallback.getCollectedFrames().get(0).getStreamType(), StreamType.RAW);
77+
}
78+
79+
@Test
80+
public void asyncLogContainerWithTtyDisabled() throws Exception {
81+
82+
CreateContainerResponse container = dockerClient.createContainerCmd("busybox")
83+
.withCmd("/bin/sh", "-c", "while true; do echo hello; sleep 1; done")
84+
.withTty(false)
85+
.exec();
86+
87+
LOG.info("Created container: {}", container.toString());
88+
assertThat(container.getId(), not(isEmptyString()));
89+
90+
dockerClient.startContainerCmd(container.getId())
91+
.exec();
92+
93+
LogContainerTestCallback loggingCallback = new LogContainerTestCallback(true);
6594

6695
// this essentially test the since=0 case
67-
dockerClient.logContainerCmd(container.getId()).withStdErr(true).withStdOut(true).exec(loggingCallback);
96+
dockerClient.logContainerCmd(container.getId())
97+
.withStdErr(true)
98+
.withStdOut(true)
99+
.withFollowStream(true)
100+
.withTailAll()
101+
.exec(loggingCallback);
68102

69-
loggingCallback.awaitCompletion();
103+
loggingCallback.awaitCompletion(3, TimeUnit.SECONDS);
70104

71-
assertTrue(loggingCallback.toString().contains(snippet));
105+
assertTrue(loggingCallback.toString().contains("hello"));
106+
107+
assertEquals(loggingCallback.getCollectedFrames().get(0).getStreamType(), StreamType.STDOUT);
72108
}
73109

74110
@Test
@@ -105,34 +141,45 @@ public void asyncMultipleLogContainer() throws Exception {
105141

106142
String snippet = "hello world";
107143

108-
CreateContainerResponse container = dockerClient.createContainerCmd("busybox").withCmd("/bin/echo", snippet)
144+
CreateContainerResponse container = dockerClient.createContainerCmd("busybox")
145+
.withCmd("/bin/echo", snippet)
109146
.exec();
110147

111148
LOG.info("Created container: {}", container.toString());
112149
assertThat(container.getId(), not(isEmptyString()));
113150

114151
dockerClient.startContainerCmd(container.getId()).exec();
115152

116-
int exitCode = dockerClient.waitContainerCmd(container.getId()).exec(new WaitContainerResultCallback())
153+
int exitCode = dockerClient.waitContainerCmd(container.getId())
154+
.exec(new WaitContainerResultCallback())
117155
.awaitStatusCode();
118156

119157
assertThat(exitCode, equalTo(0));
120158

121159
LogContainerTestCallback loggingCallback = new LogContainerTestCallback();
122160

123-
dockerClient.logContainerCmd(container.getId()).withStdErr(true).withStdOut(true).exec(loggingCallback);
161+
dockerClient.logContainerCmd(container.getId())
162+
.withStdErr(true)
163+
.withStdOut(true)
164+
.exec(loggingCallback);
124165

125166
loggingCallback.close();
126167

127168
loggingCallback = new LogContainerTestCallback();
128169

129-
dockerClient.logContainerCmd(container.getId()).withStdErr(true).withStdOut(true).exec(loggingCallback);
170+
dockerClient.logContainerCmd(container.getId())
171+
.withStdErr(true)
172+
.withStdOut(true)
173+
.exec(loggingCallback);
130174

131175
loggingCallback.close();
132176

133177
loggingCallback = new LogContainerTestCallback();
134178

135-
dockerClient.logContainerCmd(container.getId()).withStdErr(true).withStdOut(true).exec(loggingCallback);
179+
dockerClient.logContainerCmd(container.getId())
180+
.withStdErr(true)
181+
.withStdOut(true)
182+
.exec(loggingCallback);
136183

137184
loggingCallback.awaitCompletion();
138185

@@ -143,7 +190,8 @@ public void asyncMultipleLogContainer() throws Exception {
143190
public void asyncLogContainerWithSince() throws Exception {
144191
String snippet = "hello world";
145192

146-
CreateContainerResponse container = dockerClient.createContainerCmd("busybox").withCmd("/bin/echo", snippet)
193+
CreateContainerResponse container = dockerClient.createContainerCmd("busybox")
194+
.withCmd("/bin/echo", snippet)
147195
.exec();
148196

149197
LOG.info("Created container: {}", container.toString());
@@ -153,19 +201,22 @@ public void asyncLogContainerWithSince() throws Exception {
153201

154202
dockerClient.startContainerCmd(container.getId()).exec();
155203

156-
int exitCode = dockerClient.waitContainerCmd(container.getId()).exec(new WaitContainerResultCallback())
204+
int exitCode = dockerClient.waitContainerCmd(container.getId())
205+
.exec(new WaitContainerResultCallback())
157206
.awaitStatusCode();
158207

159208
assertThat(exitCode, equalTo(0));
160209

161210
LogContainerTestCallback loggingCallback = new LogContainerTestCallback();
162211

163-
dockerClient.logContainerCmd(container.getId()).withStdErr(true).withStdOut(true).withSince(timestamp)
212+
dockerClient.logContainerCmd(container.getId())
213+
.withStdErr(true)
214+
.withStdOut(true)
215+
.withSince(timestamp)
164216
.exec(loggingCallback);
165217

166218
loggingCallback.awaitCompletion();
167219

168220
assertThat(loggingCallback.toString(), containsString(snippet));
169221
}
170-
171222
}
Collapse file

‎src/test/java/com/github/dockerjava/netty/exec/LogContainerCmdExecTest.java‎

Copy file name to clipboardExpand all lines: src/test/java/com/github/dockerjava/netty/exec/LogContainerCmdExecTest.java
+72-21Lines changed: 72 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
import java.io.IOException;
1010
import java.lang.reflect.Method;
11+
import java.util.concurrent.TimeUnit;
1112

1213
import org.testng.ITestResult;
1314
import org.testng.annotations.AfterMethod;
@@ -18,6 +19,7 @@
1819

1920
import com.github.dockerjava.api.command.CreateContainerResponse;
2021
import com.github.dockerjava.api.exception.NotFoundException;
22+
import com.github.dockerjava.api.model.StreamType;
2123
import com.github.dockerjava.core.command.WaitContainerResultCallback;
2224
import com.github.dockerjava.netty.AbstractNettyDockerClientTest;
2325

@@ -45,31 +47,65 @@ public void afterMethod(ITestResult result) {
4547
}
4648

4749
@Test
48-
public void asyncLogContainer() throws Exception {
50+
public void asyncLogContainerWithTtyEnabled() throws Exception {
4951

50-
String snippet = "hello world";
51-
52-
CreateContainerResponse container = dockerClient.createContainerCmd("busybox").withCmd("/bin/echo", snippet)
52+
CreateContainerResponse container = dockerClient.createContainerCmd("busybox")
53+
.withCmd("/bin/sh", "-c", "while true; do echo hello; sleep 1; done")
54+
.withTty(true)
5355
.exec();
5456

5557
LOG.info("Created container: {}", container.toString());
5658
assertThat(container.getId(), not(isEmptyString()));
5759

58-
dockerClient.startContainerCmd(container.getId()).exec();
60+
dockerClient.startContainerCmd(container.getId())
61+
.exec();
5962

60-
int exitCode = dockerClient.waitContainerCmd(container.getId()).exec(new WaitContainerResultCallback())
61-
.awaitStatusCode();
63+
LogContainerTestCallback loggingCallback = new LogContainerTestCallback(true);
6264

63-
assertThat(exitCode, equalTo(0));
65+
// this essentially test the since=0 case
66+
dockerClient.logContainerCmd(container.getId())
67+
.withStdErr(true)
68+
.withStdOut(true)
69+
.withFollowStream(true)
70+
.withTailAll()
71+
.exec(loggingCallback);
6472

65-
LogContainerTestCallback loggingCallback = new LogContainerTestCallback();
73+
loggingCallback.awaitCompletion(3, TimeUnit.SECONDS);
74+
75+
assertTrue(loggingCallback.toString().contains("hello"));
76+
77+
assertEquals(loggingCallback.getCollectedFrames().get(0).getStreamType(), StreamType.RAW);
78+
}
79+
80+
@Test
81+
public void asyncLogContainerWithTtyDisabled() throws Exception {
82+
83+
CreateContainerResponse container = dockerClient.createContainerCmd("busybox")
84+
.withCmd("/bin/sh", "-c", "while true; do echo hello; sleep 1; done")
85+
.withTty(false)
86+
.exec();
87+
88+
LOG.info("Created container: {}", container.toString());
89+
assertThat(container.getId(), not(isEmptyString()));
90+
91+
dockerClient.startContainerCmd(container.getId())
92+
.exec();
93+
94+
LogContainerTestCallback loggingCallback = new LogContainerTestCallback(true);
6695

6796
// this essentially test the since=0 case
68-
dockerClient.logContainerCmd(container.getId()).withStdErr(true).withStdOut(true).exec(loggingCallback);
97+
dockerClient.logContainerCmd(container.getId())
98+
.withStdErr(true)
99+
.withStdOut(true)
100+
.withFollowStream(true)
101+
.withTailAll()
102+
.exec(loggingCallback);
69103

70-
loggingCallback.awaitCompletion();
104+
loggingCallback.awaitCompletion(3, TimeUnit.SECONDS);
71105

72-
assertTrue(loggingCallback.toString().contains(snippet));
106+
assertTrue(loggingCallback.toString().contains("hello"));
107+
108+
assertEquals(loggingCallback.getCollectedFrames().get(0).getStreamType(), StreamType.STDOUT);
73109
}
74110

75111
@Test
@@ -106,34 +142,45 @@ public void asyncMultipleLogContainer() throws Exception {
106142

107143
String snippet = "hello world";
108144

109-
CreateContainerResponse container = dockerClient.createContainerCmd("busybox").withCmd("/bin/echo", snippet)
145+
CreateContainerResponse container = dockerClient.createContainerCmd("busybox")
146+
.withCmd("/bin/echo", snippet)
110147
.exec();
111148

112149
LOG.info("Created container: {}", container.toString());
113150
assertThat(container.getId(), not(isEmptyString()));
114151

115152
dockerClient.startContainerCmd(container.getId()).exec();
116153

117-
int exitCode = dockerClient.waitContainerCmd(container.getId()).exec(new WaitContainerResultCallback())
154+
int exitCode = dockerClient.waitContainerCmd(container.getId())
155+
.exec(new WaitContainerResultCallback())
118156
.awaitStatusCode();
119157

120158
assertThat(exitCode, equalTo(0));
121159

122160
LogContainerTestCallback loggingCallback = new LogContainerTestCallback();
123161

124-
dockerClient.logContainerCmd(container.getId()).withStdErr(true).withStdOut(true).exec(loggingCallback);
162+
dockerClient.logContainerCmd(container.getId())
163+
.withStdErr(true)
164+
.withStdOut(true)
165+
.exec(loggingCallback);
125166

126167
loggingCallback.close();
127168

128169
loggingCallback = new LogContainerTestCallback();
129170

130-
dockerClient.logContainerCmd(container.getId()).withStdErr(true).withStdOut(true).exec(loggingCallback);
171+
dockerClient.logContainerCmd(container.getId())
172+
.withStdErr(true)
173+
.withStdOut(true)
174+
.exec(loggingCallback);
131175

132176
loggingCallback.close();
133177

134178
loggingCallback = new LogContainerTestCallback();
135179

136-
dockerClient.logContainerCmd(container.getId()).withStdErr(true).withStdOut(true).exec(loggingCallback);
180+
dockerClient.logContainerCmd(container.getId())
181+
.withStdErr(true)
182+
.withStdOut(true)
183+
.exec(loggingCallback);
137184

138185
loggingCallback.awaitCompletion();
139186

@@ -144,7 +191,8 @@ public void asyncMultipleLogContainer() throws Exception {
144191
public void asyncLogContainerWithSince() throws Exception {
145192
String snippet = "hello world";
146193

147-
CreateContainerResponse container = dockerClient.createContainerCmd("busybox").withCmd("/bin/echo", snippet)
194+
CreateContainerResponse container = dockerClient.createContainerCmd("busybox")
195+
.withCmd("/bin/echo", snippet)
148196
.exec();
149197

150198
LOG.info("Created container: {}", container.toString());
@@ -154,19 +202,22 @@ public void asyncLogContainerWithSince() throws Exception {
154202

155203
dockerClient.startContainerCmd(container.getId()).exec();
156204

157-
int exitCode = dockerClient.waitContainerCmd(container.getId()).exec(new WaitContainerResultCallback())
205+
int exitCode = dockerClient.waitContainerCmd(container.getId())
206+
.exec(new WaitContainerResultCallback())
158207
.awaitStatusCode();
159208

160209
assertThat(exitCode, equalTo(0));
161210

162211
LogContainerTestCallback loggingCallback = new LogContainerTestCallback();
163212

164-
dockerClient.logContainerCmd(container.getId()).withStdErr(true).withStdOut(true).withSince(timestamp)
213+
dockerClient.logContainerCmd(container.getId())
214+
.withStdErr(true)
215+
.withStdOut(true)
216+
.withSince(timestamp)
165217
.exec(loggingCallback);
166218

167219
loggingCallback.awaitCompletion();
168220

169221
assertThat(loggingCallback.toString(), containsString(snippet));
170222
}
171-
172223
}

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.