Skip to content

Commit 742b638

Browse files
committed
test: add tomcat5 container
1 parent e058f00 commit 742b638

File tree

9 files changed

+75
-15
lines changed

9 files changed

+75
-15
lines changed

integration-test/src/test/java/com/reajason/javaweb/integration/jetty/Jetty61ContainerTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import com.reajason.javaweb.memsell.packer.Packer;
77
import lombok.extern.slf4j.Slf4j;
88
import net.bytebuddy.jar.asm.Opcodes;
9-
import org.junit.jupiter.api.AfterAll;
109
import org.junit.jupiter.params.ParameterizedTest;
1110
import org.junit.jupiter.params.provider.Arguments;
1211
import org.junit.jupiter.params.provider.MethodSource;
@@ -33,7 +32,7 @@ public class Jetty61ContainerTest {
3332

3433
static Stream<Arguments> casesProvider() {
3534
return Stream.of(
36-
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP),
35+
// arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), // 不支持,初始化 Filter 时 jdk6 下会抛 Caused by: java.lang.NoClassDefFoundError: java/lang/ReflectiveOperationException
3736
arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP),
3837
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP),
3938
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP)

integration-test/src/test/java/com/reajason/javaweb/integration/jetty/Jetty76ContainerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public class Jetty76ContainerTest {
3030

3131
static Stream<Arguments> casesProvider() {
3232
return Stream.of(
33-
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP),
33+
// arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), // 不支持,初始化 Filter 时 jdk6 下会抛 Caused by: java.lang.NoClassDefFoundError: java/lang/ReflectiveOperationException
3434
arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP),
3535
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP),
3636
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP)

integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat10ContainerTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,14 @@ static Stream<Arguments> casesProvider() {
4343
}
4444

4545
@Container
46-
public final static GenericContainer<?> tomcat = new GenericContainer<>(imageName)
46+
public final static GenericContainer<?> container = new GenericContainer<>(imageName)
4747
.withCopyToContainer(warJakartaFile, "/usr/local/tomcat/webapps/app.war")
4848
.waitingFor(Wait.forHttp("/app"))
4949
.withExposedPorts(8080);
5050

5151
@ParameterizedTest(name = "{0}|{1}{2}|{3}")
5252
@MethodSource("casesProvider")
5353
void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) {
54-
testShellInjectAssertOk(getUrl(tomcat), Server.TOMCAT, shellType, shellTool, Opcodes.V11, packer);
54+
testShellInjectAssertOk(getUrl(container), Server.TOMCAT, shellType, shellTool, Opcodes.V11, packer);
5555
}
5656
}

integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat11ContainerTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,14 @@ static Stream<Arguments> casesProvider() {
4444
}
4545

4646
@Container
47-
public final static GenericContainer<?> tomcat = new GenericContainer<>(imageName)
47+
public final static GenericContainer<?> container = new GenericContainer<>(imageName)
4848
.withCopyToContainer(warJakartaFile, "/usr/local/tomcat/webapps/app.war")
4949
.waitingFor(Wait.forHttp("/app"))
5050
.withExposedPorts(8080);
5151

5252
@ParameterizedTest(name = "{0}|{1}{2}|{3}")
5353
@MethodSource("casesProvider")
5454
void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) {
55-
testShellInjectAssertOk(getUrl(tomcat), Server.TOMCAT, shellType, shellTool, Opcodes.V17, packer);
55+
testShellInjectAssertOk(getUrl(container), Server.TOMCAT, shellType, shellTool, Opcodes.V17, packer);
5656
}
5757
}
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package com.reajason.javaweb.integration.tomcat;
2+
3+
import com.reajason.javaweb.config.Constants;
4+
import com.reajason.javaweb.config.Server;
5+
import com.reajason.javaweb.config.ShellTool;
6+
import com.reajason.javaweb.memsell.packer.Packer;
7+
import lombok.extern.slf4j.Slf4j;
8+
import net.bytebuddy.jar.asm.Opcodes;
9+
import org.junit.jupiter.api.AfterAll;
10+
import org.junit.jupiter.params.ParameterizedTest;
11+
import org.junit.jupiter.params.provider.Arguments;
12+
import org.junit.jupiter.params.provider.MethodSource;
13+
import org.testcontainers.containers.GenericContainer;
14+
import org.testcontainers.containers.wait.strategy.Wait;
15+
import org.testcontainers.junit.jupiter.Container;
16+
import org.testcontainers.junit.jupiter.Testcontainers;
17+
18+
import java.util.stream.Stream;
19+
20+
import static com.reajason.javaweb.integration.ContainerTool.getUrl;
21+
import static com.reajason.javaweb.integration.ContainerTool.warFile;
22+
import static com.reajason.javaweb.integration.ShellAssertionTool.testShellInjectAssertOk;
23+
import static org.junit.jupiter.params.provider.Arguments.arguments;
24+
25+
/**
26+
* @author ReaJason
27+
* @since 2024/12/4
28+
*/
29+
@Slf4j
30+
@Testcontainers
31+
public class Tomcat5ContainerTest {
32+
public static final String imageName = "reajason/tomcat:5-jdk6";
33+
34+
static Stream<Arguments> casesProvider() {
35+
return Stream.of(
36+
// arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), // 不支持,初始化 Filter 时 jdk6 下会抛 Caused by: java.lang.NoClassDefFoundError: java/lang/ReflectiveOperationException
37+
arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP),
38+
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP),
39+
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP)
40+
// arguments(imageName, TomcatShell.VALVE, ShellTool.Godzilla, Packer.INSTANCE.JSP), // 不支持,Caused by: java.lang.NoClassDefFoundError: org/apache/catalina/Valve
41+
// arguments(imageName, TomcatShell.VALVE, ShellTool.Command, Packer.INSTANCE.JSP)
42+
);
43+
}
44+
45+
@Container
46+
public final static GenericContainer<?> container = new GenericContainer<>(imageName)
47+
.withCopyToContainer(warFile, "/usr/local/tomcat/webapps/app.war")
48+
.waitingFor(Wait.forHttp("/app"))
49+
.withExposedPorts(8080);
50+
51+
52+
@ParameterizedTest(name = "{0}|{1}{2}|{3}")
53+
@MethodSource("casesProvider")
54+
void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) {
55+
testShellInjectAssertOk(getUrl(container), Server.TOMCAT, shellType, shellTool, Opcodes.V1_6, packer);
56+
}
57+
58+
// @AfterAll
59+
// static void tearDown() {
60+
// log.info(container.getLogs());
61+
// }
62+
}

integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat6ContainerTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import com.reajason.javaweb.memsell.tomcat.TomcatShell;
88
import lombok.extern.slf4j.Slf4j;
99
import net.bytebuddy.jar.asm.Opcodes;
10-
import org.junit.jupiter.api.AfterAll;
1110
import org.junit.jupiter.params.ParameterizedTest;
1211
import org.junit.jupiter.params.provider.Arguments;
1312
import org.junit.jupiter.params.provider.MethodSource;
@@ -34,7 +33,7 @@ public class Tomcat6ContainerTest {
3433

3534
static Stream<Arguments> casesProvider() {
3635
return Stream.of(
37-
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP),
36+
// arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packer.INSTANCE.JSP), // 不支持,初始化 Filter 时 jdk6 下会抛 Caused by: java.lang.NoClassDefFoundError: java/lang/ReflectiveOperationException
3837
arguments(imageName, Constants.FILTER, ShellTool.Command, Packer.INSTANCE.JSP),
3938
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packer.INSTANCE.JSP),
4039
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packer.INSTANCE.JSP),

integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat7ContainerTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,14 @@ static Stream<Arguments> casesProvider() {
4343
}
4444

4545
@Container
46-
public final static GenericContainer<?> tomcat = new GenericContainer<>(imageName)
46+
public final static GenericContainer<?> container = new GenericContainer<>(imageName)
4747
.withCopyToContainer(warFile, "/usr/local/tomcat/webapps/app.war")
4848
.waitingFor(Wait.forHttp("/app"))
4949
.withExposedPorts(8080);
5050

5151
@ParameterizedTest(name = "{0}|{1}{2}|{3}")
5252
@MethodSource("casesProvider")
5353
void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) {
54-
testShellInjectAssertOk(getUrl(tomcat), Server.TOMCAT, shellType, shellTool, Opcodes.V1_7, packer);
54+
testShellInjectAssertOk(getUrl(container), Server.TOMCAT, shellType, shellTool, Opcodes.V1_7, packer);
5555
}
5656
}

integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat8ContainerTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,14 +49,14 @@ static Stream<Arguments> casesProvider() {
4949
}
5050

5151
@Container
52-
public final static GenericContainer<?> tomcat = new GenericContainer<>(imageName)
52+
public final static GenericContainer<?> container = new GenericContainer<>(imageName)
5353
.withCopyToContainer(warFile, "/usr/local/tomcat/webapps/app.war")
5454
.waitingFor(Wait.forHttp("/app"))
5555
.withExposedPorts(8080);
5656

5757
@ParameterizedTest(name = "{0}|{1}{2}|{3}")
5858
@MethodSource("casesProvider")
5959
void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) {
60-
testShellInjectAssertOk(getUrl(tomcat), Server.TOMCAT, shellType, shellTool, Opcodes.V1_8, packer);
60+
testShellInjectAssertOk(getUrl(container), Server.TOMCAT, shellType, shellTool, Opcodes.V1_8, packer);
6161
}
6262
}

integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat9ContainerTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,14 @@ static Stream<Arguments> casesProvider() {
4141
}
4242

4343
@Container
44-
public final static GenericContainer<?> tomcat = new GenericContainer<>(imageName)
44+
public final static GenericContainer<?> container = new GenericContainer<>(imageName)
4545
.withCopyToContainer(warFile, "/usr/local/tomcat/webapps/app.war")
4646
.waitingFor(Wait.forHttp("/app"))
4747
.withExposedPorts(8080);
4848

4949
@ParameterizedTest(name = "{0}|{1}{2}|{3}")
5050
@MethodSource("casesProvider")
5151
void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) {
52-
testShellInjectAssertOk(getUrl(tomcat), Server.TOMCAT, shellType, shellTool, Opcodes.V9, packer);
52+
testShellInjectAssertOk(getUrl(container), Server.TOMCAT, shellType, shellTool, Opcodes.V9, packer);
5353
}
5454
}

0 commit comments

Comments
 (0)