Skip to content

Commit 6d9dec3

Browse files
authored
WIP Refactor tests. (docker-java#909)
- Migrate to junit. - parametrized test, removed test code duplication - fixed tests parallel execution issues - pull/push image on differen api version is strange - dropped 1.10 support
1 parent 995d81f commit 6d9dec3

File tree

236 files changed

+3695
-11462
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

236 files changed

+3695
-11462
lines changed

.travis.yml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ env:
2222
- COVERITY_SCAN_NOTIFICATION_EMAIL="kanstantsin.sha@gmail.com"
2323

2424
matrix:
25+
# - repo="main" DOCKER_HOST="tcp://127.0.0.1:2375" DOCKER_VERSION="17.09.0~ce-0~ubuntu-trusty"
26+
# - repo="main" DOCKER_HOST="unix:///var/run/docker.sock" DOCKER_VERSION="17.09.0~ce-0~ubuntu-trusty"
27+
# - repo="main" DOCKER_HOST="tcp://127.0.0.1:2375" DOCKER_VERSION="17.06.2~ce-0~ubuntu-trusty" DEPLOY=true COVERITY=true
2528
- repo="main" DOCKER_HOST="tcp://127.0.0.1:2375" DOCKER_VERSION="17.05.0~ce-0~ubuntu-trusty" DEPLOY=true COVERITY=true
2629
- repo="main" DOCKER_HOST="tcp://127.0.0.1:2377" DOCKER_VERSION="17.05.0~ce-0~ubuntu-trusty" SWARM_VERSION="1.2.6"
2730
- repo="main" DOCKER_HOST="unix:///var/run/docker.sock" DOCKER_VERSION="17.05.0~ce-0~ubuntu-trusty"
@@ -30,10 +33,10 @@ env:
3033
- repo="main" DOCKER_HOST="unix:///var/run/docker.sock" DOCKER_VERSION="1.13.1-0~ubuntu-trusty"
3134
- repo="main" DOCKER_HOST="tcp://127.0.0.1:2375" DOCKER_VERSION="1.12.6-0~ubuntu-trusty"
3235
- repo="main" DOCKER_HOST="unix:///var/run/docker.sock" DOCKER_VERSION="1.12.6-0~ubuntu-trusty"
33-
- repo="main" DOCKER_HOST="tcp://127.0.0.1:2375" DOCKER_VERSION="1.11.2-0~trusty"
34-
- repo="main" DOCKER_HOST="unix:///var/run/docker.sock" DOCKER_VERSION="1.11.2-0~trusty"
35-
- repo="main" DOCKER_HOST="tcp://127.0.0.1:2375" DOCKER_VERSION="1.10.3-0~trusty"
36-
- repo="main" DOCKER_HOST="unix:///var/run/docker.sock" DOCKER_VERSION="1.10.3-0~trusty"
36+
# - repo="main" DOCKER_HOST="tcp://127.0.0.1:2375" DOCKER_VERSION="1.11.2-0~trusty"
37+
# - repo="main" DOCKER_HOST="unix:///var/run/docker.sock" DOCKER_VERSION="1.11.2-0~trusty"
38+
# - repo="main" DOCKER_HOST="tcp://127.0.0.1:2375" DOCKER_VERSION="1.10.3-0~trusty"
39+
# - repo="main" DOCKER_HOST="unix:///var/run/docker.sock" DOCKER_VERSION="1.10.3-0~trusty"
3740
# - repo="testing" DOCKER_HOST="tcp://127.0.0.1:2375"
3841
# - repo="testing" DOCKER_HOST="unix:///var/run/docker.sock"
3942
# - repo="experimental" DOCKER_HOST="tcp://127.0.0.1:2375"

.travis/travis-before-install.sh

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,9 @@ sudo -E stop docker
4545
# sudo apt-get -f install
4646
# sudo dpkg -i "$(ls *${DOCKER_VERSION}*)"
4747
#popd
48-
#rm -f "src/test/resources/logback.xml"
49-
mv "src/test/resources/travis-logback.xml" "src/test/resources/logback.xml"
48+
rm -f "src/test/resources/logback.xml"
49+
#rm -f "src/test/resources/travis-logback.xml"
50+
mv "src/test/resources/travis-logback.xml" "src/test/resources/logback-test.xml"
5051

5152
# https://github.com/docker/docker/issues/18113
5253
sudo rm /var/lib/docker/network/files/local-kv.db

pom.xml

Lines changed: 19 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757
<jdk.source>1.7</jdk.source>
5858
<jdk.target>1.7</jdk.target>
5959

60-
<jersey.version>2.23.1</jersey.version>
60+
<jersey.version>2.26</jersey.version>
6161
<jackson-jaxrs.version>2.6.4</jackson-jaxrs.version>
6262
<httpclient.version>4.5</httpclient.version><!-- 4.5.1-4.5.2 broken -->
6363
<commons-compress.version>1.12</commons-compress.version>
@@ -71,8 +71,7 @@
7171
<guava.version>19.0</guava.version>
7272

7373
<!-- test dependencies -->
74-
<logback.version>1.1.7</logback.version>
75-
<testng.version>6.9.10</testng.version>
74+
<logback.version>1.2.3</logback.version>
7675
<netty.version>4.1.14.Final</netty.version>
7776
<hamcrest.library.version>1.3</hamcrest.library.version>
7877
<hamcrest.jpa-matchers>1.8</hamcrest.jpa-matchers>
@@ -83,8 +82,8 @@
8382
<maven-jar-plugin.version>3.0.2</maven-jar-plugin.version>
8483
<maven-compiler-plugin.version>3.5.1</maven-compiler-plugin.version>
8584
<maven-release-plugin.version>2.5.3</maven-release-plugin.version>
86-
<maven-surefire-plugin.version>2.19.1</maven-surefire-plugin.version>
87-
<maven-failsafe-plugin.version>2.19.1</maven-failsafe-plugin.version>
85+
<maven-surefire-plugin.version>2.20</maven-surefire-plugin.version>
86+
<maven-failsafe-plugin.version>2.20</maven-failsafe-plugin.version>
8887
<maven-antrun-plugin.version>1.8</maven-antrun-plugin.version>
8988
<maven-bundlor-plugin.version>1.1.2.RELEASE</maven-bundlor-plugin.version>
9089
<maven-build-helper-plugin.version>3.0.0</maven-build-helper-plugin.version>
@@ -122,6 +121,11 @@
122121
<artifactId>jersey-client</artifactId>
123122
<version>${jersey.version}</version>
124123
</dependency>
124+
<dependency>
125+
<groupId>org.glassfish.jersey.inject</groupId>
126+
<artifactId>jersey-hk2</artifactId>
127+
<version>${jersey.version}</version>
128+
</dependency>
125129
<dependency>
126130
<groupId>com.kohlschutter.junixsocket</groupId>
127131
<artifactId>junixsocket-common</artifactId>
@@ -189,13 +193,6 @@
189193
<scope>test</scope>
190194
</dependency>
191195

192-
<dependency>
193-
<groupId>org.testng</groupId>
194-
<artifactId>testng</artifactId>
195-
<version>${testng.version}</version>
196-
<scope>test</scope>
197-
</dependency>
198-
199196
<dependency>
200197
<groupId>org.hamcrest</groupId>
201198
<artifactId>hamcrest-library</artifactId>
@@ -430,7 +427,7 @@
430427
<version>${maven-surefire-plugin.version}</version>
431428
<configuration>
432429
<rerunFailingTestsCount>3</rerunFailingTestsCount>
433-
<excludedGroups>integration,integration-auth,swarm-integration</excludedGroups>
430+
<excludedGroups>com.github.dockerjava.junit.category.Integration</excludedGroups>
434431
</configuration>
435432
</plugin>
436433

@@ -444,19 +441,17 @@
444441
<goal>integration-test</goal>
445442
<goal>verify</goal>
446443
</goals>
447-
<configuration>
448-
<rerunFailingTestsCount>3</rerunFailingTestsCount>
449-
<useUnlimitedThreads>true</useUnlimitedThreads>
450-
<perCoreThreadCount>true</perCoreThreadCount>
451-
<threadCount>1</threadCount>
452-
<groups>integration</groups>
453-
<excludedGroups>integration-auth,swarm-integration</excludedGroups>
454-
<includes>
455-
<include>**/*Test.java</include>
456-
</includes>
457-
</configuration>
458444
</execution>
459445
</executions>
446+
<configuration>
447+
<rerunFailingTestsCount>3</rerunFailingTestsCount>
448+
<!--<useUnlimitedThreads>true</useUnlimitedThreads>-->
449+
<perCoreThreadCount>true</perCoreThreadCount>
450+
<threadCount>1</threadCount>
451+
<parallel>classes</parallel>
452+
<groups>com.github.dockerjava.junit.category.Integration</groups>
453+
<excludedGroups>com.github.dockerjava.junit.category.AuthIntegration,com.github.dockerjava.junit.category.SwarmModeIntegration</excludedGroups>
454+
</configuration>
460455
</plugin>
461456
<plugin>
462457
<groupId>org.apache.maven.plugins</groupId>

src/main/java/com/github/dockerjava/core/RemoteApiVersion.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,10 @@ public class RemoteApiVersion implements Serializable {
7777
*/
7878
public static final RemoteApiVersion VERSION_1_25 = RemoteApiVersion.create(1, 25);
7979

80+
public static final RemoteApiVersion VERSION_1_26 = RemoteApiVersion.create(1, 26);
81+
public static final RemoteApiVersion VERSION_1_27 = RemoteApiVersion.create(1, 27);
82+
public static final RemoteApiVersion VERSION_1_29 = RemoteApiVersion.create(1, 29);
83+
8084

8185
/**
8286
* Unknown, docker doesn't reflect reality. I.e. we implemented method, but for javadoc it not clear when it was added.
@@ -88,6 +92,11 @@ public boolean isGreaterOrEqual(final RemoteApiVersion other) {
8892
return false;
8993
}
9094

95+
@Override
96+
public boolean isGreater(RemoteApiVersion other) {
97+
return false;
98+
}
99+
91100
@Override
92101
public String toString() {
93102
return MoreObjects.toStringHelper(this).addValue("UNKNOWN_VERSION").toString();
@@ -146,6 +155,11 @@ public boolean isGreaterOrEqual(final RemoteApiVersion other) {
146155
return false;
147156
}
148157

158+
public boolean isGreater(final RemoteApiVersion other) {
159+
return major > other.major || (major == other.major && minor > other.minor);
160+
161+
}
162+
149163
/**
150164
* @return String representation of version. i.e. "1.22"
151165
*/
@@ -179,4 +193,5 @@ public String toString() {
179193
public String asWebPathPart() {
180194
return "v" + major + "." + minor;
181195
}
196+
182197
}

src/main/java/com/github/dockerjava/core/command/AttachContainerCmdImpl.java

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,24 +8,10 @@
88
import com.github.dockerjava.api.model.Frame;
99

1010
/**
11-
* Attach to container
12-
*
13-
* @param logs
14-
* - true or false, includes logs. Defaults to false.
15-
*
16-
* @param followStream
17-
* - true or false, return stream. Defaults to false.
18-
* @param stdout
19-
* - true or false, includes stdout log. Defaults to false.
20-
* @param stderr
21-
* - true or false, includes stderr log. Defaults to false.
22-
* @param stdin
23-
* - null or {@link InputStream}, pass stream to stdin of the container.
24-
* @param timestamps
25-
* - true or false, if true, print timestamps for every log line. Defaults to false.
11+
* Attach to container.
2612
*/
27-
public class AttachContainerCmdImpl extends AbstrAsyncDockerCmd<AttachContainerCmd, Frame> implements
28-
AttachContainerCmd {
13+
public class AttachContainerCmdImpl extends AbstrAsyncDockerCmd<AttachContainerCmd, Frame>
14+
implements AttachContainerCmd {
2915

3016
private String containerId;
3117

src/test/java/com/github/dockerjava/api/ModelsSerializableTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
import com.github.dockerjava.api.model.ResponseItem;
88
import com.google.common.reflect.ClassPath.ClassInfo;
99
import org.apache.commons.lang.reflect.FieldUtils;
10+
import org.junit.Test;
1011
import org.slf4j.Logger;
1112
import org.slf4j.LoggerFactory;
12-
import org.testng.annotations.Test;
1313

1414
import java.io.IOException;
1515
import java.io.Serializable;

src/test/java/com/github/dockerjava/api/command/InspectContainerResponseTest.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,23 +17,22 @@
1717

1818
import com.fasterxml.jackson.databind.JavaType;
1919
import com.fasterxml.jackson.databind.ObjectMapper;
20-
import com.github.dockerjava.api.model.Event;
2120
import com.github.dockerjava.core.RemoteApiVersion;
22-
import static com.github.dockerjava.test.serdes.JSONSamples.testRoundTrip;
23-
import java.io.IOException;
21+
import org.junit.Test;
2422

25-
import org.testng.annotations.Test;
23+
import java.io.IOException;
2624

25+
import static com.github.dockerjava.test.serdes.JSONSamples.testRoundTrip;
2726
import static com.github.dockerjava.test.serdes.JSONTestHelper.testRoundTrip;
2827
import static org.hamcrest.MatcherAssert.assertThat;
2928
import static org.hamcrest.Matchers.containsString;
3029
import static org.hamcrest.Matchers.is;
3130
import static org.hamcrest.Matchers.isEmptyString;
3231
import static org.hamcrest.Matchers.nullValue;
3332
import static org.hamcrest.core.IsNot.not;
34-
import static org.testng.Assert.assertEquals;
35-
import static org.testng.Assert.assertFalse;
36-
import static org.testng.Assert.assertTrue;
33+
import static org.junit.Assert.assertEquals;
34+
import static org.junit.Assert.assertFalse;
35+
import static org.junit.Assert.assertTrue;
3736

3837
/**
3938
* Tests for {@link InspectContainerResponse}.

src/test/java/com/github/dockerjava/api/command/InspectExecResponseTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import com.fasterxml.jackson.databind.JavaType;
44
import com.fasterxml.jackson.databind.ObjectMapper;
55
import com.github.dockerjava.core.RemoteApiVersion;
6-
import org.testng.annotations.Test;
6+
import org.junit.Test;
77

88
import static com.github.dockerjava.test.serdes.JSONSamples.testRoundTrip;
99
import static org.hamcrest.MatcherAssert.assertThat;

src/test/java/com/github/dockerjava/api/command/InspectImageResponseTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import com.fasterxml.jackson.databind.JavaType;
44
import com.fasterxml.jackson.databind.ObjectMapper;
55
import com.github.dockerjava.api.model.ContainerConfig;
6-
import org.testng.annotations.Test;
6+
import org.junit.Test;
77

88
import java.io.IOException;
99
import java.util.Collections;
@@ -191,7 +191,7 @@ public void serder1_22_inspect_doc() throws IOException {
191191
}
192192

193193
@Test
194-
private void testOverlayNetworkRootDir() throws IOException {
194+
public void testOverlayNetworkRootDir() throws IOException {
195195
final ObjectMapper mapper = new ObjectMapper();
196196
final JavaType type = mapper.getTypeFactory().constructType(InspectImageResponse.class);
197197

src/test/java/com/github/dockerjava/api/model/AccessModeTest.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,18 @@
11
package com.github.dockerjava.api.model;
22

3+
import org.junit.Rule;
4+
import org.junit.Test;
5+
import org.junit.rules.ExpectedException;
6+
37
import static com.github.dockerjava.api.model.AccessMode.rw;
4-
import static org.testng.Assert.assertEquals;
8+
import static org.junit.Assert.assertEquals;
59

6-
import org.testng.annotations.Test;
710

811
public class AccessModeTest {
912

13+
@Rule
14+
public ExpectedException expectedEx = ExpectedException.none();
15+
1016
@Test
1117
public void defaultAccessMode() {
1218
assertEquals(AccessMode.DEFAULT, rw);
@@ -22,8 +28,11 @@ public void fromString() {
2228
assertEquals(AccessMode.valueOf("rw"), rw);
2329
}
2430

25-
@Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = "No enum const.*")
31+
@Test
2632
public void fromIllegalString() {
33+
expectedEx.expect(IllegalArgumentException.class);
34+
expectedEx.expectMessage("No enum const");
35+
2736
AccessMode.valueOf("xx");
2837
}
2938

0 commit comments

Comments
 (0)