Mercurial > hg > openjdk > jdk7 > jdk
changeset 4012:131ed7967996
7035115: sun/security/pkcs11/Provider/ConfigShortPath.java compilation failed
Summary: Updated the test to use reflection and skip when SunPKCS11 provider not present.
Reviewed-by: weijun
author | valeriep |
---|---|
date | Fri, 15 Apr 2011 15:56:12 -0700 |
parents | 2d89d0d1e0ff |
children | 54d9513f87a4 |
files | test/sun/security/pkcs11/Provider/ConfigShortPath.java |
diffstat | 1 files changed, 20 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/test/sun/security/pkcs11/Provider/ConfigShortPath.java Thu Apr 14 21:27:10 2011 -0700 +++ b/test/sun/security/pkcs11/Provider/ConfigShortPath.java Fri Apr 15 15:56:12 2011 -0700 @@ -29,23 +29,36 @@ import java.security.*; import java.io.*; +import java.lang.reflect.*; public class ConfigShortPath { private static final String[] configNames = { "csp.cfg", "cspPlus.cfg" }; - public static void main(String[] args) { + public static void main(String[] args) throws Exception { + Constructor cons = null; + try { + Class clazz = Class.forName("sun.security.pkcs11.SunPKCS11"); + cons = clazz.getConstructor(String.class); + } catch (Exception ex) { + System.out.println("Skipping test - no PKCS11 provider available"); + return; + } String testSrc = System.getProperty("test.src", "."); for (int i = 0; i < configNames.length; i++) { String configFile = testSrc + File.separator + configNames[i]; + System.out.println("Testing against " + configFile); try { - Provider p = new sun.security.pkcs11.SunPKCS11(configFile); - } catch (ProviderException pe) { - String cause = pe.getCause().getMessage(); - if (cause.indexOf("Unexpected token") != -1) { - // re-throw to indicate test failure - throw pe; + Object obj = cons.newInstance(configFile); + } catch (InvocationTargetException ite) { + Throwable cause = ite.getCause(); + if (cause instanceof ProviderException) { + String causeMsg = cause.getCause().getMessage(); + // Indicate failure if due to parsing config + if (causeMsg.indexOf("Unexpected token") != -1) { + throw (ProviderException) cause; + } } } }