From 3433fdbf1b8f17e42bbbb653ec7c97996734ecc7 Mon Sep 17 00:00:00 2001 From: Andrew Lu Date: Tue, 12 Mar 2024 09:25:29 +0000 Subject: [PATCH] 8314283: Support for NSS tests on aarch64 platforms Backport-of: 2a8016096000de5836251f2ca9bc8ad6479e6942 --- .../security/pkcs11/KeyStore/ClientAuth.java | 4 ++ test/jdk/sun/security/pkcs11/PKCS11Test.java | 51 ++++++++++++------- 2 files changed, 38 insertions(+), 17 deletions(-) diff --git a/test/jdk/sun/security/pkcs11/KeyStore/ClientAuth.java b/test/jdk/sun/security/pkcs11/KeyStore/ClientAuth.java index 259f9ed33e4..1af1258d173 100644 --- a/test/jdk/sun/security/pkcs11/KeyStore/ClientAuth.java +++ b/test/jdk/sun/security/pkcs11/KeyStore/ClientAuth.java @@ -389,6 +389,10 @@ void startClient (boolean newThread) { * Our client thread just died. */ System.err.println("Client died..."); + // if the exception is thrown before connecting to the + // server, the test will time out and the exception will + // be lost/hidden. + e.printStackTrace(System.err); clientException = e; } }); diff --git a/test/jdk/sun/security/pkcs11/PKCS11Test.java b/test/jdk/sun/security/pkcs11/PKCS11Test.java index 9c61ffe47cf..8b207144b57 100644 --- a/test/jdk/sun/security/pkcs11/PKCS11Test.java +++ b/test/jdk/sun/security/pkcs11/PKCS11Test.java @@ -74,6 +74,11 @@ public abstract class PKCS11Test { private static final String PKCS11_REL_PATH = "sun/security/pkcs11"; private static final char[] HEX_DIGITS = "0123456789abcdef".toCharArray(); + // Version of the NSS artifact. This coincides with the version of + // the NSS version + private static final String NSS_BUNDLE_VERSION = "3.91"; + private static final String NSSLIB = "jpg.tests.jdk.nsslib"; + static double nss_version = -1; static ECCState nss_ecc_status = ECCState.Basic; @@ -744,18 +749,21 @@ static byte[] generateData(int length) { private static String fetchNssLib(String osId) { switch (osId) { - case "Windows-x86-32": - return fetchNssLib(WINDOWS_X86.class); - case "Windows-amd64-64": return fetchNssLib(WINDOWS_X64.class); case "MacOSX-x86_64-64": return fetchNssLib(MACOSX_X64.class); + case "MacOSX-aarch64-64": + return fetchNssLib(MACOSX_AARCH64.class); + case "Linux-amd64-64": return fetchNssLib(LINUX_X64.class); + case "Linux-aarch64-64": + return fetchNssLib(LINUX_AARCH64.class); + default: return null; } @@ -765,8 +773,8 @@ private static String fetchNssLib(Class clazz) { String path = null; try { path = ArtifactResolver.resolve(clazz).entrySet().stream() - .findAny().get().getValue() + File.separator + "nsslib" - + File.separator; + .findAny().get().getValue() + File.separator + "nss" + + File.separator + "lib" + File.separator; } catch (ArtifactResolverException e) { Throwable cause = e.getCause(); if (cause == null) { @@ -868,34 +876,43 @@ protected void copyNssCertKeyToClassesDir(Path dbPath) throws IOException { public static enum ECCState {None, Basic, Extended} @Artifact( - organization = "jpg.tests.jdk.nsslib", + organization = NSSLIB, name = "nsslib-windows_x64", - revision = "3.46-VS2017", + revision = NSS_BUNDLE_VERSION, extension = "zip") private static class WINDOWS_X64 { } @Artifact( - organization = "jpg.tests.jdk.nsslib", - name = "nsslib-windows_x86", - revision = "3.46-VS2017", + organization = NSSLIB, + name = "nsslib-macosx_x64", + revision = NSS_BUNDLE_VERSION, extension = "zip") - private static class WINDOWS_X86 { + private static class MACOSX_X64 { } @Artifact( - organization = "jpg.tests.jdk.nsslib", - name = "nsslib-macosx_x64", - revision = "3.46", + organization = NSSLIB, + name = "nsslib-macosx_aarch64", + revision = NSS_BUNDLE_VERSION, extension = "zip") - private static class MACOSX_X64 { + private static class MACOSX_AARCH64 { } @Artifact( - organization = "jpg.tests.jdk.nsslib", + organization = NSSLIB, name = "nsslib-linux_x64", - revision = "3.46", + revision = NSS_BUNDLE_VERSION, extension = "zip") private static class LINUX_X64 { } + + @Artifact( + organization = NSSLIB, + name = "nsslib-linux_aarch64", + revision = NSS_BUNDLE_VERSION, + extension = "zip" + ) + private static class LINUX_AARCH64{ + } }