8133318: Exclude intermittent failing PKCS11 tests on Solaris SPARC 11.1 and earlier

Reviewed-by: mullan
This commit is contained in:
Vinnie Ryan 2015-08-12 14:38:09 +01:00
parent ebed974436
commit cdb7f50a4b
10 changed files with 461 additions and 7 deletions

View File

@ -630,4 +630,18 @@ public abstract class PKCS11Test {
return algorithms;
}
/**
* Get the identifier for the operating system distribution
*/
public String getDistro() {
try (BufferedReader in =
new BufferedReader(new InputStreamReader(
Runtime.getRuntime().exec("uname -v").getInputStream()))) {
return in.readLine();
} catch (Exception e) {
return "";
}
}
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -42,6 +42,22 @@ public class ByteBuffers extends PKCS11Test {
}
public void main(Provider p) throws Exception {
/*
* Use Solaris SPARC 11.2 or later to avoid an intermittent failure
* when running SunPKCS11-Solaris provider (8044554)
*/
if (p.getName().equals("SunPKCS11-Solaris") &&
System.getProperty("os.name").equals("SunOS") &&
System.getProperty("os.arch").equals("sparcv9") &&
System.getProperty("os.version").compareTo("5.11") <= 0 &&
getDistro().compareTo("11.2") < 0) {
System.out.println("SunPKCS11-Solaris provider requires " +
"Solaris SPARC 11.2 or later, skipping");
return;
}
Random random = new Random();
int n = 10 * 1024;
byte[] t = new byte[n];

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -28,6 +28,306 @@
* @author Andreas Sterbenz
* @library ..
* @key randomness
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
*/
import java.util.*;
@ -41,6 +341,22 @@ public class ReinitSignature extends PKCS11Test {
}
public void main(Provider p) throws Exception {
/*
* Use Solaris SPARC 11.2 or later to avoid an intermittent failure
* when running SunPKCS11-Solaris (8044554)
*/
if (p.getName().equals("SunPKCS11-Solaris") &&
System.getProperty("os.name").equals("SunOS") &&
System.getProperty("os.arch").equals("sparcv9") &&
System.getProperty("os.version").compareTo("5.11") <= 0 &&
getDistro().compareTo("11.2") < 0) {
System.out.println("SunPKCS11-Solaris provider requires " +
"Solaris SPARC 11.2 or later, skipping");
return;
}
KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", p);
kpg.initialize(512);
KeyPair kp = kpg.generateKeyPair();

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -110,6 +110,21 @@ public class TestDSA extends PKCS11Test {
System.out.println("Testing provider " + provider + "...");
/*
* Use Solaris SPARC 11.2 or later to avoid an intermittent failure
* when running SunPKCS11-Solaris (8044554)
*/
if (provider.getName().equals("SunPKCS11-Solaris") &&
System.getProperty("os.name").equals("SunOS") &&
System.getProperty("os.arch").equals("sparcv9") &&
System.getProperty("os.version").compareTo("5.11") <= 0 &&
getDistro().compareTo("11.2") < 0) {
System.out.println("SunPKCS11-Solaris provider requires " +
"Solaris SPARC 11.2 or later, skipping");
return;
}
if (provider.getService("Signature", "SHA1withDSA") == null) {
System.out.println("DSA not supported, skipping");
return;

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -46,6 +46,21 @@ public class TestDSAKeyLength extends PKCS11Test {
return;
}
/*
* Use Solaris SPARC 11.2 or later to avoid an intermittent failure
* when running SunPKCS11-Solaris (8044554)
*/
if (provider.getName().equals("SunPKCS11-Solaris") &&
System.getProperty("os.name").equals("SunOS") &&
System.getProperty("os.arch").equals("sparcv9") &&
System.getProperty("os.version").compareTo("5.11") <= 0 &&
getDistro().compareTo("11.2") < 0) {
System.out.println("SunPKCS11-Solaris provider requires " +
"Solaris SPARC 11.2 or later, skipping");
return;
}
KeyPairGenerator kpg = KeyPairGenerator.getInstance("DSA", "SUN");
kpg.initialize(2048, new SecureRandom());
KeyPair pair = kpg.generateKeyPair();

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -36,6 +36,22 @@ public class TestRSAKeyLength extends PKCS11Test {
main(new TestRSAKeyLength());
}
public void main(Provider p) throws Exception {
/*
* Use Solaris SPARC 11.2 or later to avoid an intermittent failure
* when running SunPKCS11-Solaris (8044554)
*/
if (p.getName().equals("SunPKCS11-Solaris") &&
System.getProperty("os.name").equals("SunOS") &&
System.getProperty("os.arch").equals("sparcv9") &&
System.getProperty("os.version").compareTo("5.11") <= 0 &&
getDistro().compareTo("11.2") < 0) {
System.out.println("SunPKCS11-Solaris provider requires " +
"Solaris SPARC 11.2 or later, skipping");
return;
}
boolean isValidKeyLength[] = { true, true, true, false, false };
String algos[] = { "SHA1withRSA", "SHA224withRSA", "SHA256withRSA",
"SHA384withRSA", "SHA512withRSA" };

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2006, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -58,6 +58,21 @@ public class TestCurves extends PKCS11Test {
return;
}
/*
* Use Solaris SPARC 11.2 or later to avoid an intermittent failure
* when running SunPKCS11-Solaris (8044554)
*/
if (p.getName().equals("SunPKCS11-Solaris") &&
System.getProperty("os.name").equals("SunOS") &&
System.getProperty("os.arch").equals("sparcv9") &&
System.getProperty("os.version").compareTo("5.11") <= 0 &&
getDistro().compareTo("11.2") < 0) {
System.out.println("SunPKCS11-Solaris provider requires " +
"Solaris SPARC 11.2 or later, skipping");
return;
}
// Check if this is sparc for later failure avoidance.
boolean sparc = false;
if (System.getProperty("os.arch").equals("sparcv9")) {

View File

@ -123,6 +123,21 @@ public class TestECDSA extends PKCS11Test {
return;
}
/*
* Use Solaris SPARC 11.2 or later to avoid an intermittent failure
* when running SunPKCS11-Solaris (8044554)
*/
if (provider.getName().equals("SunPKCS11-Solaris") &&
System.getProperty("os.name").equals("SunOS") &&
System.getProperty("os.arch").equals("sparcv9") &&
System.getProperty("os.version").compareTo("5.11") <= 0 &&
getDistro().compareTo("11.2") < 0) {
System.out.println("SunPKCS11-Solaris provider requires " +
"Solaris SPARC 11.2 or later, skipping");
return;
}
/*
* PKCS11Test.main will remove this provider if needed
*/

View File

@ -47,6 +47,22 @@ public class TestCACerts extends PKCS11Test {
}
public void main(Provider p) throws Exception {
/*
* Use Solaris SPARC 11.2 or later to avoid an intermittent failure
* when running SunPKCS11-Solaris (8044554)
*/
if (p.getName().equals("SunPKCS11-Solaris") &&
System.getProperty("os.name").equals("SunOS") &&
System.getProperty("os.arch").equals("sparcv9") &&
System.getProperty("os.version").compareTo("5.11") <= 0 &&
getDistro().compareTo("11.2") < 0) {
System.out.println("SunPKCS11-Solaris provider requires " +
"Solaris SPARC 11.2 or later, skipping");
return;
}
long start = System.currentTimeMillis();
Providers.setAt(p, 1);
try {

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -97,6 +97,22 @@ public class TestSignatures extends PKCS11Test {
}
public void main(Provider p) throws Exception {
/*
* Use Solaris SPARC 11.2 or later to avoid an intermittent failure
* when running SunPKCS11-Solaris (8044554)
*/
if (p.getName().equals("SunPKCS11-Solaris") &&
System.getProperty("os.name").equals("SunOS") &&
System.getProperty("os.arch").equals("sparcv9") &&
System.getProperty("os.version").compareTo("5.11") <= 0 &&
getDistro().compareTo("11.2") < 0) {
System.out.println("SunPKCS11-Solaris provider requires " +
"Solaris SPARC 11.2 or later, skipping");
return;
}
long start = System.currentTimeMillis();
provider = p;
data = new byte[2048];