diff options
author | Neil Fuller <nfuller@google.com> | 2014-06-09 09:09:56 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2014-06-09 09:09:56 +0000 |
commit | 7450e1e23f96732b33f0cc04a235357a5ceadf89 (patch) | |
tree | 8c48896ce679f57bdf9568bc2514baa07fca2a14 | |
parent | d6e67fd7082cf8c6ef5544dc740f9052add21538 (diff) | |
parent | 7408f7d9a38c16d2b93731f4c8d32256c80131a5 (diff) | |
download | libcore-7450e1e23f96732b33f0cc04a235357a5ceadf89.zip libcore-7450e1e23f96732b33f0cc04a235357a5ceadf89.tar.gz libcore-7450e1e23f96732b33f0cc04a235357a5ceadf89.tar.bz2 |
Merge "Shard the _getInstance test and skip the DH tests."
-rw-r--r-- | expectations/knownfailures.txt | 5 | ||||
-rw-r--r-- | luni/src/test/java/libcore/java/security/KeyPairGeneratorTest.java | 120 |
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"); |