Skip to content

Commit ae9f035

Browse files
authored
Merge pull request #31700 from KyleAure/bb304880-kerberos-tests-windows
2 parents 70c105f + fbd9cd8 commit ae9f035

File tree

7 files changed

+45
-23
lines changed

7 files changed

+45
-23
lines changed

dev/com.ibm.ws.jdbc_fat_krb5/fat/src/com/ibm/ws/jdbc/fat/krb5/DB2KerberosTest.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.junit.BeforeClass;
2828
import org.junit.ClassRule;
2929
import org.junit.Test;
30+
import org.junit.rules.RuleChain;
3031
import org.junit.runner.RunWith;
3132

3233
import com.ibm.websphere.simplicity.ShrinkHelper;
@@ -36,6 +37,7 @@
3637
import com.ibm.websphere.simplicity.log.Log;
3738
import com.ibm.ws.jdbc.fat.krb5.containers.DB2KerberosContainer;
3839
import com.ibm.ws.jdbc.fat.krb5.containers.KerberosContainer;
40+
import com.ibm.ws.jdbc.fat.krb5.rules.KerberosPlatformRule;
3941

4042
import componenttest.annotation.AllowedFFDC;
4143
import componenttest.annotation.Server;
@@ -57,9 +59,11 @@ public class DB2KerberosTest extends FATServletClient {
5759

5860
public static final String APP_NAME = "krb5-db2-app";
5961

60-
@ClassRule
6162
public static final DB2KerberosContainer db2 = new DB2KerberosContainer(FATSuite.network);
6263

64+
@ClassRule
65+
public static RuleChain chain = RuleChain.outerRule(KerberosPlatformRule.instance()).around(db2);
66+
6367
@Server("com.ibm.ws.jdbc.fat.krb5")
6468
@TestServlet(servlet = DB2KerberosTestServlet.class, contextRoot = APP_NAME)
6569
public static LibertyServer server;

dev/com.ibm.ws.jdbc_fat_krb5/fat/src/com/ibm/ws/jdbc/fat/krb5/ErrorPathTest.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import org.junit.BeforeClass;
2323
import org.junit.ClassRule;
2424
import org.junit.Test;
25+
import org.junit.rules.RuleChain;
2526
import org.junit.runner.RunWith;
2627

2728
import com.ibm.websphere.simplicity.ShrinkHelper;
@@ -30,6 +31,7 @@
3031
import com.ibm.websphere.simplicity.config.ServerConfiguration;
3132
import com.ibm.websphere.simplicity.log.Log;
3233
import com.ibm.ws.jdbc.fat.krb5.containers.DB2KerberosContainer;
34+
import com.ibm.ws.jdbc.fat.krb5.rules.KerberosPlatformRule;
3335

3436
import componenttest.annotation.AllowedFFDC;
3537
import componenttest.annotation.Server;
@@ -48,9 +50,11 @@ public class ErrorPathTest extends FATServletClient {
4850
@Server("com.ibm.ws.jdbc.fat.krb5")
4951
public static LibertyServer server;
5052

51-
@ClassRule
5253
public static final DB2KerberosContainer db2 = DB2KerberosTest.db2;
5354

55+
@ClassRule
56+
public static RuleChain chain = RuleChain.outerRule(KerberosPlatformRule.instance()).around(db2);
57+
5458
private static final String APP_NAME = DB2KerberosTest.APP_NAME;
5559

5660
private static ServerConfiguration originalConfig;

dev/com.ibm.ws.jdbc_fat_krb5/fat/src/com/ibm/ws/jdbc/fat/krb5/FATSuite.java

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414

1515
import org.junit.AfterClass;
1616
import org.junit.BeforeClass;
17-
import org.junit.ClassRule;
1817
import org.junit.runner.RunWith;
1918
import org.junit.runners.Suite;
2019
import org.junit.runners.Suite.SuiteClasses;
@@ -37,34 +36,42 @@
3736
})
3837
public class FATSuite extends TestContainerSuite {
3938

39+
static {
40+
Log.info(FATSuite.class, "<init>", "Setting overrideDefaultTLS to true, needed for IBM JDK 8 support.");
41+
java.lang.System.setProperty("com.ibm.jsse2.overrideDefaultTLS", "true");
42+
}
43+
4044
public static Network network;
4145
public static KerberosContainer krb5;
4246

43-
@ClassRule
44-
public static KerberosPlatformRule krbRule = new KerberosPlatformRule();
45-
4647
@BeforeClass
47-
public static void startKerberos() throws Exception {
48-
network = Network.newNetwork();
49-
krb5 = new KerberosContainer(network);
50-
krb5.start();
48+
public static void setup() throws Exception {
49+
// Manually apply rule so that the AlwaysPassesTest runs since having zero test results is considered an error
50+
if (KerberosPlatformRule.shouldRun(null)) {
51+
network = Network.newNetwork();
52+
krb5 = new KerberosContainer(network);
53+
krb5.start();
54+
}
5155
}
5256

5357
@AfterClass
54-
public static void tearDown() throws Exception {
58+
public static void teardown() throws Exception {
59+
if (krb5 == null && network == null) {
60+
return; // Nothing to cleanup
61+
}
62+
5563
Exception firstError = null;
5664

5765
try {
5866
krb5.stop();
59-
network.close();
6067
} catch (Exception e) {
61-
if (firstError == null)
62-
firstError = e;
63-
Log.error(FATSuite.class, "tearDown", e);
68+
firstError = e;
69+
Log.error(FATSuite.class, "teardown", e);
70+
} finally {
71+
network.close();
6472
}
6573

6674
if (firstError != null)
6775
throw firstError;
6876
}
69-
7077
}

dev/com.ibm.ws.jdbc_fat_krb5/fat/src/com/ibm/ws/jdbc/fat/krb5/OracleKerberosTest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import com.ibm.websphere.simplicity.log.Log;
3333
import com.ibm.ws.jdbc.fat.krb5.containers.OracleKerberosContainer;
3434
import com.ibm.ws.jdbc.fat.krb5.rules.IBMJava8Rule;
35+
import com.ibm.ws.jdbc.fat.krb5.rules.KerberosPlatformRule;
3536

3637
import componenttest.annotation.AllowedFFDC;
3738
import componenttest.annotation.MaximumJavaLevel;
@@ -60,12 +61,10 @@ public class OracleKerberosTest extends FATServletClient {
6061
@TestServlet(servlet = OracleKerberosTestServlet.class, contextRoot = APP_NAME)
6162
public static LibertyServer server;
6263

63-
public static IBMJava8Rule skipOnIBMJava8 = new IBMJava8Rule();
64-
6564
public static OracleKerberosContainer oracle = new OracleKerberosContainer(FATSuite.network);
6665

6766
@ClassRule
68-
public static RuleChain chain = RuleChain.outerRule(skipOnIBMJava8).around(oracle);
67+
public static RuleChain chain = RuleChain.outerRule(KerberosPlatformRule.instance()).around(IBMJava8Rule.instance()).around(oracle);
6968

7069
@BeforeClass
7170
public static void setUp() throws Exception {

dev/com.ibm.ws.jdbc_fat_krb5/fat/src/com/ibm/ws/jdbc/fat/krb5/PostgresKerberosTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525

2626
import com.ibm.websphere.simplicity.ShrinkHelper;
2727
import com.ibm.ws.jdbc.fat.krb5.containers.PostgresKerberosContainer;
28+
import com.ibm.ws.jdbc.fat.krb5.rules.KerberosPlatformRule;
2829

2930
import componenttest.annotation.Server;
3031
import componenttest.annotation.TestServlet;
@@ -58,7 +59,7 @@ public class PostgresKerberosTest extends FATServletClient {
5859
.fullFATOnly());
5960

6061
@ClassRule
61-
public static RuleChain chain = RuleChain.outerRule(postgresql).around(repeat);
62+
public static RuleChain chain = RuleChain.outerRule(KerberosPlatformRule.instance()).around(postgresql).around(repeat);
6263

6364
@BeforeClass
6465
public static void setUp() throws Exception {

dev/com.ibm.ws.jdbc_fat_krb5/fat/src/com/ibm/ws/jdbc/fat/krb5/rules/IBMJava8Rule.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,19 @@
2727
*/
2828
public class IBMJava8Rule implements TestRule {
2929

30+
public static IBMJava8Rule instance() {
31+
return new IBMJava8Rule();
32+
}
33+
3034
@Override
3135
public Statement apply(Statement stmt, Description desc) {
3236
return new Statement() {
3337
@Override
3438
public void evaluate() throws Throwable {
3539
if (shouldRun(desc)) {
3640
stmt.evaluate();
41+
} else {
42+
Log.info(IBMJava8Rule.class, "evaluate", "Rule chain broken, skipping next statement: " + stmt.toString());
3743
}
3844
}
3945
};

dev/com.ibm.ws.jdbc_fat_krb5/fat/src/com/ibm/ws/jdbc/fat/krb5/rules/KerberosPlatformRule.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,8 @@
3636
*/
3737
public class KerberosPlatformRule implements TestRule {
3838

39-
static {
40-
// Needed for IBM JDK 8 support.
41-
java.lang.System.setProperty("com.ibm.jsse2.overrideDefaultTLS", "true");
39+
public static KerberosPlatformRule instance() {
40+
return new KerberosPlatformRule();
4241
}
4342

4443
@Override
@@ -48,6 +47,8 @@ public Statement apply(Statement stmt, Description desc) {
4847
public void evaluate() throws Throwable {
4948
if (shouldRun(desc)) {
5049
stmt.evaluate();
50+
} else {
51+
Log.info(KerberosPlatformRule.class, "evaluate", "Rule chain broken, skipping next statement: " + stmt.toString());
5152
}
5253
}
5354
};

0 commit comments

Comments
 (0)