summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--expectations/knownfailures.txt5
-rw-r--r--luni/src/test/java/libcore/java/security/KeyPairGeneratorTest.java120
2 files changed, 70 insertions, 55 deletions
diff --git a/expectations/knownfailures.txt b/expectations/knownfailures.txt
index 108fa6e..e0b4d38 100644
--- a/expectations/knownfailures.txt
+++ b/expectations/knownfailures.txt
@@ -1441,10 +1441,5 @@
description: "Known failure in GregorianCalendarTest",
bug: 12778197,
name: "org.apache.harmony.tests.java.util.GregorianCalendarTest#test_computeTime"
-},
-{
- description: "Large test that ends in a timeout during CTS runs",
- bug: 5513723,
- name: "libcore.java.security.KeyPairGeneratorTest#test_getInstance"
}
]
diff --git a/luni/src/test/java/libcore/java/security/KeyPairGeneratorTest.java b/luni/src/test/java/libcore/java/security/KeyPairGeneratorTest.java
index d0b46ed..55e088f 100644
--- a/luni/src/test/java/libcore/java/security/KeyPairGeneratorTest.java
+++ b/luni/src/test/java/libcore/java/security/KeyPairGeneratorTest.java
@@ -53,59 +53,81 @@ import junit.framework.TestCase;
public class KeyPairGeneratorTest extends TestCase {
- public void test_getInstance() throws Exception {
- Provider[] providers = Security.getProviders();
- for (Provider provider : providers) {
- Set<Provider.Service> services = provider.getServices();
- for (Provider.Service service : services) {
- String type = service.getType();
- if (!type.equals("KeyPairGenerator")) {
- continue;
- }
- String algorithm = service.getAlgorithm();
+ public void test_providerCount() {
+ // If this fails remember to add/remove _provider methods below. This test is sharded
+ // because it takes so long.
+ assertEquals(4, Security.getProviders().length);
+ }
- // AndroidKeyStore is tested in CTS.
- if ("AndroidKeyStore".equals(provider.getName())) {
- continue;
- }
+ public void test_getInstance_provider0() throws Exception {
+ test_getInstance(Security.getProviders()[0]);
+ }
- AlgorithmParameterSpec params = null;
+ public void test_getInstance_provider1() throws Exception {
+ test_getInstance(Security.getProviders()[1]);
+ }
- // TODO: detect if we're running in vogar and run the full test
- if ("DH".equals(algorithm)) {
- params = getDHParams();
- }
+ public void test_getInstance_provider2() throws Exception {
+ test_getInstance(Security.getProviders()[2]);
+ }
- try {
- // KeyPairGenerator.getInstance(String)
- KeyPairGenerator kpg1 = KeyPairGenerator.getInstance(algorithm);
- assertEquals(algorithm, kpg1.getAlgorithm());
- if (params != null) {
- kpg1.initialize(params);
- }
- test_KeyPairGenerator(kpg1);
-
- // KeyPairGenerator.getInstance(String, Provider)
- KeyPairGenerator kpg2 = KeyPairGenerator.getInstance(algorithm, provider);
- assertEquals(algorithm, kpg2.getAlgorithm());
- assertEquals(provider, kpg2.getProvider());
- if (params != null) {
- kpg2.initialize(params);
- }
- test_KeyPairGenerator(kpg2);
-
- // KeyPairGenerator.getInstance(String, String)
- KeyPairGenerator kpg3 = KeyPairGenerator.getInstance(algorithm,
- provider.getName());
- assertEquals(algorithm, kpg3.getAlgorithm());
- assertEquals(provider, kpg3.getProvider());
- if (params != null) {
- kpg3.initialize(params);
- }
- test_KeyPairGenerator(kpg3);
- } catch (Exception e) {
- throw new Exception("Problem testing KeyPairGenerator." + algorithm, e);
+ public void test_getInstance_provider3() throws Exception {
+ test_getInstance(Security.getProviders()[3]);
+ }
+
+ private void test_getInstance(Provider provider) throws Exception {
+ Set<Provider.Service> services = provider.getServices();
+ for (Provider.Service service : services) {
+ String type = service.getType();
+ if (!type.equals("KeyPairGenerator")) {
+ continue;
+ }
+ String algorithm = service.getAlgorithm();
+
+ // AndroidKeyStore is tested in CTS.
+ if ("AndroidKeyStore".equals(provider.getName())) {
+ continue;
+ }
+
+ AlgorithmParameterSpec params = null;
+
+ // TODO: detect if we're running in vogar and run the full test
+ if ("DH".equals(algorithm)) {
+ // Disabled because this takes too long on devices.
+ // TODO: Re-enable DH test. http://b/5513723.
+ // params = getDHParams();
+ continue;
+ }
+
+ try {
+ // KeyPairGenerator.getInstance(String)
+ KeyPairGenerator kpg1 = KeyPairGenerator.getInstance(algorithm);
+ assertEquals(algorithm, kpg1.getAlgorithm());
+ if (params != null) {
+ kpg1.initialize(params);
}
+ test_KeyPairGenerator(kpg1);
+
+ // KeyPairGenerator.getInstance(String, Provider)
+ KeyPairGenerator kpg2 = KeyPairGenerator.getInstance(algorithm, provider);
+ assertEquals(algorithm, kpg2.getAlgorithm());
+ assertEquals(provider, kpg2.getProvider());
+ if (params != null) {
+ kpg2.initialize(params);
+ }
+ test_KeyPairGenerator(kpg2);
+
+ // KeyPairGenerator.getInstance(String, String)
+ KeyPairGenerator kpg3 = KeyPairGenerator.getInstance(algorithm,
+ provider.getName());
+ assertEquals(algorithm, kpg3.getAlgorithm());
+ assertEquals(provider, kpg3.getProvider());
+ if (params != null) {
+ kpg3.initialize(params);
+ }
+ test_KeyPairGenerator(kpg3);
+ } catch (Exception e) {
+ throw new Exception("Problem testing KeyPairGenerator." + algorithm, e);
}
}
}
@@ -341,8 +363,6 @@ public class KeyPairGeneratorTest extends TestCase {
public void testDSAGeneratorWithParams() throws Exception {
final DSAParameterSpec dsaSpec = new DSAParameterSpec(DSA_P, DSA_Q, DSA_G);
- boolean failure = false;
-
final Provider[] providers = Security.getProviders();
for (final Provider p : providers) {
Service s = p.getService("KeyPairGenerator", "DSA");