From 92d2d19200bc7e14539b361f6dc05151cdd651e6 Mon Sep 17 00:00:00 2001 From: David Hook Date: Tue, 20 Jun 2023 12:43:31 +1000 Subject: [PATCH] fixed some tests to still work on Java 5. added service clause. moved version to gradle.properties --- ant/bc+-build.xml | 4 +- ant/jdk15+.xml | 1 + build.gradle | 2 - build1-5to1-8 | 27 ++++++-- build1-8+ | 8 +-- gradle.properties | 3 +- .../jsse/provider/test/SSLUtils.java | 21 ++++-- .../jsse/provider/test/AllTests.java | 65 +++++++++++++++++++ 8 files changed, 110 insertions(+), 21 deletions(-) create mode 100644 tls/src/test/jdk1.5/org/bouncycastle/jsse/provider/test/AllTests.java diff --git a/ant/bc+-build.xml b/ant/bc+-build.xml index fcfbdf7d9e..3d779b05ee 100644 --- a/ant/bc+-build.xml +++ b/ant/bc+-build.xml @@ -995,7 +995,7 @@ - + @@ -1007,6 +1007,8 @@ + + diff --git a/ant/jdk15+.xml b/ant/jdk15+.xml index a81dd04ae2..4ba0b8b33a 100644 --- a/ant/jdk15+.xml +++ b/ant/jdk15+.xml @@ -42,6 +42,7 @@ + diff --git a/build.gradle b/build.gradle index d5d6996d1c..b500e6f956 100644 --- a/build.gradle +++ b/build.gradle @@ -164,8 +164,6 @@ subprojects { targetCompatibility = 1.8 } - version = '1.74' - task testFull(type:Test) { systemProperties = [ 'bc.test.data.home': bcTestDataHome, diff --git a/build1-5to1-8 b/build1-5to1-8 index c8c074671d..cea656a8a8 100644 --- a/build1-5to1-8 +++ b/build1-5to1-8 @@ -10,6 +10,10 @@ if [ "${JDKPATH}" = "" ] then JDKPATH=/usr/lib/jvm/java-8-openjdk-amd64 fi +if [ "${JDK5PATH}" = "" ] +then + JDK5PATH=/usr/lib/jvm/java-1.5.0-oracle-i586/ +fi JAVA_HOME=$JDKPATH export JAVA_HOME @@ -19,6 +23,15 @@ export PATH if [ "$1" = "test" ] then + # + # Note: always do a full build before running test + # + JAVA_HOME=$JDK5PATH + export JAVA_HOME + + PATH=$JDK5PATH/bin:$PATH + export PATH + ant -f ant/jdk15+.xml test elif [ "$1" = "clean" ] then @@ -29,14 +42,14 @@ else ant -f ant/jdk15+.xml build ant -f ant/jdk15+.xml zip-src fi -fi - -if [ -f build/artifacts/jdk1.5/jars/bcprov-jdk15on*.jar ] -then - tar cf - prov/src/main/resources/META-INF | (cd build/artifacts/jdk1.5/jars/; tar xf -) + if [ -f build/artifacts/jdk1.5/jars/bcprov-jdk15to18*.jar ] + then + tar cf - prov/src/main/resources/META-INF | (cd build/artifacts/jdk1.5/jars/; tar xf -) cd build/artifacts/jdk1.5/jars/ mv prov/src/main/resources/META-INF . - jar uf bcprov-jdk15on*.jar META-INF - jar uf bcprov-ext-jdk15on*.jar META-INF + jar uf bcprov-jdk15to18*.jar META-INF + jar uf bcprov-ext-jdk15to18*.jar META-INF rm -r prov META-INF + fi fi + diff --git a/build1-8+ b/build1-8+ index 9c848ca5ea..94c8a3f32d 100644 --- a/build1-8+ +++ b/build1-8+ @@ -29,14 +29,14 @@ else ant -f ant/jdk18+.xml build ant -f ant/jdk18+.xml zip-src fi -fi - -if [ -f build/artifacts/jdk1.8/jars/bcprov-jdk15on*.jar ] -then + if [ -f build/artifacts/jdk1.8/jars/bcprov-jdk18on*.jar ] + then tar cf - prov/src/main/resources/META-INF | (cd build/artifacts/jdk1.8/jars/; tar xf -) cd build/artifacts/jdk1.8/jars/ mv prov/src/main/resources/META-INF . jar uf bcprov-jdk18on*.jar META-INF jar uf bcprov-ext-jdk18on*.jar META-INF rm -r prov META-INF + fi fi + diff --git a/gradle.properties b/gradle.properties index de166998ff..8a89256adc 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1 +1,2 @@ -org.gradle.jvmargs=-Xmx2g \ No newline at end of file +org.gradle.jvmargs=-Xmx2g +version=1.75 diff --git a/tls/src/test/java/org/bouncycastle/jsse/provider/test/SSLUtils.java b/tls/src/test/java/org/bouncycastle/jsse/provider/test/SSLUtils.java index 01babfe5f6..f64d9ba28e 100644 --- a/tls/src/test/java/org/bouncycastle/jsse/provider/test/SSLUtils.java +++ b/tls/src/test/java/org/bouncycastle/jsse/provider/test/SSLUtils.java @@ -59,15 +59,23 @@ public void run() { try { - KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance("PKIX"); + boolean isJdk15 = System.getProperty("java.version").indexOf("1.5.") == 0; + + KeyManagerFactory keyManagerFactory = isJdk15 ? + KeyManagerFactory.getInstance("PKIX", ProviderUtils.PROVIDER_NAME_BCJSSE) : + KeyManagerFactory.getInstance("PKIX"); keyManagerFactory.init(keyStore, password); - TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance("PKIX"); + TrustManagerFactory trustManagerFactory = isJdk15 ? + TrustManagerFactory.getInstance("PKIX", ProviderUtils.PROVIDER_NAME_BCJSSE) : + TrustManagerFactory.getInstance("PKIX"); trustManagerFactory.init(serverStore); - SSLContext context = SSLContext.getInstance("TLS"); + SSLContext context = isJdk15 ? + SSLContext.getInstance("TLS", ProviderUtils.PROVIDER_NAME_BCJSSE) : + SSLContext.getInstance("TLS"); context.init(keyManagerFactory.getKeyManagers(), trustManagerFactory.getTrustManagers(), null); @@ -92,9 +100,10 @@ public void run() ss.close(); } - catch (Exception e) + catch (Throwable e) { - e.printStackTrace(); + Thread.currentThread().interrupt(); + latch.countDown(); } } }; @@ -109,7 +118,7 @@ public void run() } catch (InterruptedException e) { - + e.printStackTrace(); } } } diff --git a/tls/src/test/jdk1.5/org/bouncycastle/jsse/provider/test/AllTests.java b/tls/src/test/jdk1.5/org/bouncycastle/jsse/provider/test/AllTests.java new file mode 100644 index 0000000000..887f0afeb6 --- /dev/null +++ b/tls/src/test/jdk1.5/org/bouncycastle/jsse/provider/test/AllTests.java @@ -0,0 +1,65 @@ +package org.bouncycastle.jsse.provider.test; + +import junit.extensions.TestSetup; +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; +import org.bouncycastle.test.PrintTestResult; + +public class AllTests + extends TestCase +{ + public static void main(String[] args) + throws Exception + { + PrintTestResult.printResult( junit.textui.TestRunner.run(suite())); + } + + public static Test suite() + throws Exception + { + TestSuite suite = new TestSuite("JSSE tests"); +// +// suite.addTestSuite(BasicClientAuthTlsTest.class); +// suite.addTestSuite(BasicTlsTest.class); + suite.addTestSuite(ConfigTest.class); +// suite.addTestSuite(ECDSACredentialsTest.class); +// suite.addTestSuite(EdDSACredentialsTest.class); + suite.addTestSuite(InstanceTest.class); + suite.addTestSuite(KeyManagerFactoryTest.class); + + return new BCTestSetup(suite); + } + + static class BCTestSetup + extends TestSetup + { + public BCTestSetup(Test test) + { + super(test); + } + + protected void setUp() + { + + } + + protected void tearDown() + { + + } + } + + private static boolean hasClass(String name) + { + try + { + AllTests.class.getClassLoader().loadClass(name); + return true; + } + catch (Exception e) + { + return false; + } + } +}