Skip to content

Commit d004ed1

Browse files
committed
test: test order list is important
1 parent bc10337 commit d004ed1

File tree

55 files changed

+244
-273
lines changed

Some content is hidden

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

55 files changed

+244
-273
lines changed

integration-test/src/test/java/com/reajason/javaweb/integration/TestCasesProvider.java

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,7 @@
77
import org.junit.jupiter.params.provider.Arguments;
88
import org.testcontainers.shaded.org.apache.commons.lang3.tuple.Triple;
99

10-
import java.util.Collections;
11-
import java.util.HashSet;
12-
import java.util.Objects;
13-
import java.util.Set;
10+
import java.util.*;
1411
import java.util.stream.Collectors;
1512
import java.util.stream.Stream;
1613

@@ -22,20 +19,25 @@
2219
*/
2320
public class TestCasesProvider {
2421

25-
public static Stream<Arguments> getTestCases(String imageName, Server server, Set<String> testShellTypes, Set<Packers> testPackers, Set<Triple<String, ShellTool, Packers>> unSupportedCases) {
22+
public static Stream<Arguments> getTestCases(String imageName, Server server, List<String> testShellTypes, List<Packers> testPackers, List<Triple<String, ShellTool, Packers>> unSupportedCases) {
2623
return getTestCases(imageName, server, testShellTypes, testPackers, unSupportedCases, null);
2724
}
2825

29-
public static Stream<Arguments> getTestCases(String imageName, Server server, Set<String> testShellTypes, Set<Packers> testPackers, Set<Triple<String, ShellTool, Packers>> unSupportedCases, Set<ShellTool> unSupportedShellTools) {
30-
Set<ShellTool> supportedShellTools = new HashSet<>(server.getShell().getSupportedShellTools());
26+
public static Stream<Arguments> getTestCases(String imageName, Server server, List<String> testShellTypes, List<Packers> testPackers, List<Triple<String, ShellTool, Packers>> unSupportedCases, List<ShellTool> unSupportedShellTools) {
27+
Set<ShellTool> supportedShellTools = new TreeSet<>(server.getShell().getSupportedShellTools());
3128
if (unSupportedShellTools != null) {
32-
supportedShellTools.removeAll(unSupportedShellTools);
29+
unSupportedShellTools.forEach(supportedShellTools::remove);
3330
}
3431
Set<String> unSupported = unSupportedCases == null ? Collections.emptySet() : unSupportedCases.stream().map(i -> i.getLeft() + i.getMiddle() + i.getRight()).collect(Collectors.toSet());
3532
return supportedShellTools.stream()
3633
.flatMap(supportedShellTool -> {
37-
Set<String> toolSupportedShellTypes = new HashSet<>(server.getShell().getSupportedShellTypes(supportedShellTool));
38-
toolSupportedShellTypes.retainAll(testShellTypes);
34+
List<String> toolSupportedShellTypes = new ArrayList<>();
35+
Set<String> supportedShellTypes = server.getShell().getSupportedShellTypes(supportedShellTool);
36+
for (String testShellType : testShellTypes) {
37+
if (supportedShellTypes.contains(testShellType)) {
38+
toolSupportedShellTypes.add(testShellType);
39+
}
40+
}
3941
return toolSupportedShellTypes.stream().flatMap(supportedShellType -> {
4042
if (supportedShellType.startsWith(ShellType.AGENT)) {
4143
if (!unSupported.contains(supportedShellType + supportedShellTool + Packers.AgentJar)) {
@@ -56,7 +58,7 @@ public static Stream<Arguments> getTestCases(String imageName, Server server, Se
5658
});
5759
}
5860

59-
public static Stream<Arguments> getTestCases(String imageName, Server server, Set<String> testShellTypes, Set<Packers> testPackers) {
61+
public static Stream<Arguments> getTestCases(String imageName, Server server, List<String> testShellTypes, List<Packers> testPackers) {
6062
return getTestCases(imageName, server, testShellTypes, testPackers, null);
6163
}
6264
}

integration-test/src/test/java/com/reajason/javaweb/integration/glassfish/GlassFish3ContainerTest.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,11 @@
1919
import org.testcontainers.shaded.org.apache.commons.lang3.tuple.Triple;
2020

2121
import java.time.Duration;
22-
import java.util.Set;
22+
import java.util.List;
2323
import java.util.stream.Stream;
2424

2525
import static com.reajason.javaweb.integration.ContainerTool.*;
26-
import static com.reajason.javaweb.integration.DoesNotContainExceptionMatcher.doesNotContainException;
2726
import static com.reajason.javaweb.integration.ShellAssertionTool.testShellInjectAssertOk;
28-
import static org.hamcrest.MatcherAssert.assertThat;
2927

3028
/**
3129
* @author ReaJason
@@ -51,9 +49,13 @@ static void setup() {
5149

5250
static Stream<Arguments> casesProvider() {
5351
Server server = Server.GlassFish;
54-
Set<String> supportedShellTypes = Set.of(ShellType.FILTER, ShellType.LISTENER, ShellType.VALVE);
55-
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
56-
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
52+
List<String> supportedShellTypes = List.of(ShellType.FILTER, ShellType.LISTENER, ShellType.VALVE, ShellType.AGENT_FILTER_CHAIN, ShellType.CATALINA_AGENT_CONTEXT_VALVE);
53+
List<Packers> testPackers = List.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
54+
List<Triple<String, ShellTool, Packers>> unSupportedCases = List.of(
55+
Triple.of(ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar), // ClassFormatError
56+
Triple.of(ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar) // ClassFormatError
57+
);
58+
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers, unSupportedCases);
5759
}
5860

5961
@AfterAll

integration-test/src/test/java/com/reajason/javaweb/integration/glassfish/GlassFish4ContainerTest.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package com.reajason.javaweb.integration.glassfish;
22

33
import com.reajason.javaweb.integration.TestCasesProvider;
4-
import com.reajason.javaweb.memshell.ShellType;
4+
import com.reajason.javaweb.memshell.Packers;
55
import com.reajason.javaweb.memshell.Server;
66
import com.reajason.javaweb.memshell.ShellTool;
7-
import com.reajason.javaweb.memshell.Packers;
7+
import com.reajason.javaweb.memshell.ShellType;
88
import lombok.extern.slf4j.Slf4j;
99
import net.bytebuddy.jar.asm.Opcodes;
1010
import org.junit.jupiter.api.AfterAll;
@@ -16,18 +16,15 @@
1616
import org.testcontainers.containers.wait.strategy.Wait;
1717
import org.testcontainers.junit.jupiter.Container;
1818
import org.testcontainers.junit.jupiter.Testcontainers;
19-
import org.testcontainers.shaded.org.apache.commons.lang3.tuple.Triple;
2019

2120
import java.time.Duration;
22-
import java.util.Set;
21+
import java.util.List;
2322
import java.util.stream.Stream;
2423

2524
import static com.reajason.javaweb.integration.ContainerTool.*;
26-
import static com.reajason.javaweb.integration.ContainerTool.glassfishPid;
2725
import static com.reajason.javaweb.integration.DoesNotContainExceptionMatcher.doesNotContainException;
2826
import static com.reajason.javaweb.integration.ShellAssertionTool.testShellInjectAssertOk;
2927
import static org.hamcrest.MatcherAssert.assertThat;
30-
import static org.junit.jupiter.params.provider.Arguments.arguments;
3128

3229
/**
3330
* @author ReaJason
@@ -53,8 +50,8 @@ static void setup() {
5350

5451
static Stream<Arguments> casesProvider() {
5552
Server server = Server.GlassFish;
56-
Set<String> supportedShellTypes = Set.of(ShellType.FILTER, ShellType.LISTENER, ShellType.VALVE);
57-
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
53+
List<String> supportedShellTypes = List.of(ShellType.FILTER, ShellType.LISTENER, ShellType.VALVE, ShellType.AGENT_FILTER_CHAIN, ShellType.CATALINA_AGENT_CONTEXT_VALVE);
54+
List<Packers> testPackers = List.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
5855
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
5956
}
6057

integration-test/src/test/java/com/reajason/javaweb/integration/glassfish/GlassFish501ContainerTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
import org.testcontainers.junit.jupiter.Container;
1717
import org.testcontainers.junit.jupiter.Testcontainers;
1818

19-
import java.util.Set;
19+
import java.util.List;
2020
import java.util.stream.Stream;
2121

2222
import static com.reajason.javaweb.integration.ContainerTool.*;
@@ -43,8 +43,8 @@ public class GlassFish501ContainerTest {
4343

4444
static Stream<Arguments> casesProvider() {
4545
Server server = Server.GlassFish;
46-
Set<String> supportedShellTypes = Set.of(ShellType.FILTER, ShellType.LISTENER, ShellType.VALVE);
47-
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
46+
List<String> supportedShellTypes = List.of(ShellType.FILTER, ShellType.LISTENER, ShellType.VALVE, ShellType.AGENT_FILTER_CHAIN, ShellType.CATALINA_AGENT_CONTEXT_VALVE);
47+
List<Packers> testPackers = List.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
4848
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
4949
}
5050

integration-test/src/test/java/com/reajason/javaweb/integration/glassfish/GlassFish510ContainerTest.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package com.reajason.javaweb.integration.glassfish;
22

33
import com.reajason.javaweb.integration.TestCasesProvider;
4-
import com.reajason.javaweb.memshell.ShellType;
4+
import com.reajason.javaweb.memshell.Packers;
55
import com.reajason.javaweb.memshell.Server;
66
import com.reajason.javaweb.memshell.ShellTool;
7-
import com.reajason.javaweb.memshell.Packers;
7+
import com.reajason.javaweb.memshell.ShellType;
88
import lombok.extern.slf4j.Slf4j;
99
import net.bytebuddy.jar.asm.Opcodes;
1010
import org.junit.jupiter.api.AfterAll;
@@ -16,14 +16,13 @@
1616
import org.testcontainers.junit.jupiter.Container;
1717
import org.testcontainers.junit.jupiter.Testcontainers;
1818

19-
import java.util.Set;
19+
import java.util.List;
2020
import java.util.stream.Stream;
2121

2222
import static com.reajason.javaweb.integration.ContainerTool.*;
2323
import static com.reajason.javaweb.integration.DoesNotContainExceptionMatcher.doesNotContainException;
2424
import static com.reajason.javaweb.integration.ShellAssertionTool.testShellInjectAssertOk;
2525
import static org.hamcrest.MatcherAssert.assertThat;
26-
import static org.junit.jupiter.params.provider.Arguments.arguments;
2726

2827
/**
2928
* @author ReaJason
@@ -44,8 +43,8 @@ public class GlassFish510ContainerTest {
4443

4544
static Stream<Arguments> casesProvider() {
4645
Server server = Server.GlassFish;
47-
Set<String> supportedShellTypes = Set.of(ShellType.FILTER, ShellType.LISTENER, ShellType.VALVE);
48-
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
46+
List<String> supportedShellTypes = List.of(ShellType.FILTER, ShellType.LISTENER, ShellType.VALVE, ShellType.AGENT_FILTER_CHAIN, ShellType.CATALINA_AGENT_CONTEXT_VALVE);
47+
List<Packers> testPackers = List.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
4948
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
5049
}
5150

integration-test/src/test/java/com/reajason/javaweb/integration/glassfish/GlassFish6ContainerTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
import org.testcontainers.junit.jupiter.Container;
1717
import org.testcontainers.junit.jupiter.Testcontainers;
1818

19-
import java.util.Set;
19+
import java.util.List;
2020
import java.util.stream.Stream;
2121

2222
import static com.reajason.javaweb.integration.ContainerTool.*;
@@ -43,9 +43,9 @@ public class GlassFish6ContainerTest {
4343

4444
static Stream<Arguments> casesProvider() {
4545
Server server = Server.GlassFish;
46-
Set<String> supportedShellTypes = Set.of(ShellType.JAKARTA_FILTER, ShellType.JAKARTA_LISTENER, ShellType.JAKARTA_VALVE);
47-
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
48-
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
46+
List<String> supportedShellTypes = List.of(ShellType.JAKARTA_FILTER, ShellType.JAKARTA_LISTENER, ShellType.JAKARTA_VALVE, ShellType.AGENT_FILTER_CHAIN, ShellType.CATALINA_AGENT_CONTEXT_VALVE);
47+
List<Packers> testPackers = List.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
48+
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers, null, List.of(ShellTool.AntSword));
4949
}
5050

5151
@AfterAll

integration-test/src/test/java/com/reajason/javaweb/integration/glassfish/GlassFish7ContainerTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
import org.testcontainers.junit.jupiter.Container;
1717
import org.testcontainers.junit.jupiter.Testcontainers;
1818

19-
import java.util.Set;
19+
import java.util.List;
2020
import java.util.stream.Stream;
2121

2222
import static com.reajason.javaweb.integration.ContainerTool.*;
@@ -43,9 +43,9 @@ public class GlassFish7ContainerTest {
4343

4444
static Stream<Arguments> casesProvider() {
4545
Server server = Server.GlassFish;
46-
Set<String> supportedShellTypes = Set.of(ShellType.JAKARTA_FILTER, ShellType.JAKARTA_LISTENER, ShellType.JAKARTA_VALVE);
47-
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX);
48-
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
46+
List<String> supportedShellTypes = List.of(ShellType.JAKARTA_FILTER, ShellType.JAKARTA_LISTENER, ShellType.JAKARTA_VALVE, ShellType.AGENT_FILTER_CHAIN, ShellType.CATALINA_AGENT_CONTEXT_VALVE);
47+
List<Packers> testPackers = List.of(Packers.JSP, Packers.JSPX);
48+
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers, null, List.of(ShellTool.AntSword));
4949
}
5050

5151
@AfterAll

integration-test/src/test/java/com/reajason/javaweb/integration/jbossas/Jboss423ContainerTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
import org.testcontainers.junit.jupiter.Container;
1717
import org.testcontainers.junit.jupiter.Testcontainers;
1818

19-
import java.util.Set;
19+
import java.util.List;
2020
import java.util.stream.Stream;
2121

2222
import static com.reajason.javaweb.integration.ContainerTool.*;
@@ -43,9 +43,9 @@ public class Jboss423ContainerTest {
4343

4444
static Stream<Arguments> casesProvider() {
4545
Server server = Server.JBossAS;
46-
Set<String> supportedShellTypes = Set.of(ShellType.FILTER, ShellType.LISTENER, ShellType.VALVE,
46+
List<String> supportedShellTypes = List.of(ShellType.FILTER, ShellType.LISTENER, ShellType.VALVE,
4747
ShellType.AGENT_FILTER_CHAIN, ShellType.CATALINA_AGENT_CONTEXT_VALVE);
48-
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
48+
List<Packers> testPackers = List.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
4949
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
5050
}
5151

integration-test/src/test/java/com/reajason/javaweb/integration/jbossas/Jboss510ContainerTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
import org.testcontainers.junit.jupiter.Container;
1717
import org.testcontainers.junit.jupiter.Testcontainers;
1818

19-
import java.util.Set;
19+
import java.util.List;
2020
import java.util.stream.Stream;
2121

2222
import static com.reajason.javaweb.integration.ContainerTool.*;
@@ -43,11 +43,11 @@ public class Jboss510ContainerTest {
4343

4444
static Stream<Arguments> casesProvider() {
4545
Server server = Server.JBossAS;
46-
Set<String> supportedShellTypes = Set.of(ShellType.FILTER, ShellType.LISTENER, ShellType.VALVE,
46+
List<String> supportedShellTypes = List.of(ShellType.FILTER, ShellType.LISTENER, ShellType.VALVE,
4747
ShellType.AGENT_FILTER_CHAIN, ShellType.CATALINA_AGENT_CONTEXT_VALVE);
48-
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
48+
List<Packers> testPackers = List.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
4949
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers,
50-
null, Set.of(ShellTool.Behinder) // Behinder SocketTimeOuts
50+
null, List.of(ShellTool.Behinder) // Behinder SocketTimeOuts
5151
);
5252
}
5353

integration-test/src/test/java/com/reajason/javaweb/integration/jbossas/Jboss610ContainerTest.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package com.reajason.javaweb.integration.jbossas;
22

33
import com.reajason.javaweb.integration.TestCasesProvider;
4-
import com.reajason.javaweb.memshell.ShellType;
4+
import com.reajason.javaweb.memshell.Packers;
55
import com.reajason.javaweb.memshell.Server;
66
import com.reajason.javaweb.memshell.ShellTool;
7-
import com.reajason.javaweb.memshell.Packers;
7+
import com.reajason.javaweb.memshell.ShellType;
88
import lombok.extern.slf4j.Slf4j;
99
import net.bytebuddy.jar.asm.Opcodes;
1010
import org.junit.jupiter.api.AfterAll;
@@ -16,14 +16,13 @@
1616
import org.testcontainers.junit.jupiter.Container;
1717
import org.testcontainers.junit.jupiter.Testcontainers;
1818

19-
import java.util.Set;
19+
import java.util.List;
2020
import java.util.stream.Stream;
2121

2222
import static com.reajason.javaweb.integration.ContainerTool.*;
2323
import static com.reajason.javaweb.integration.DoesNotContainExceptionMatcher.doesNotContainException;
2424
import static com.reajason.javaweb.integration.ShellAssertionTool.testShellInjectAssertOk;
2525
import static org.hamcrest.MatcherAssert.assertThat;
26-
import static org.junit.jupiter.params.provider.Arguments.arguments;
2726

2827
/**
2928
* @author ReaJason
@@ -44,9 +43,9 @@ public class Jboss610ContainerTest {
4443

4544
static Stream<Arguments> casesProvider() {
4645
Server server = Server.JBossAS;
47-
Set<String> supportedShellTypes = Set.of(ShellType.FILTER, ShellType.LISTENER, ShellType.VALVE,
46+
List<String> supportedShellTypes = List.of(ShellType.FILTER, ShellType.LISTENER, ShellType.VALVE,
4847
ShellType.AGENT_FILTER_CHAIN, ShellType.CATALINA_AGENT_CONTEXT_VALVE);
49-
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
48+
List<Packers> testPackers = List.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
5049
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
5150
}
5251

0 commit comments

Comments
 (0)