Merge "Pass the Java caller's location to Runtime.nativeLoad."
diff --git a/luni/src/test/java/libcore/java/security/ProviderTest.java b/luni/src/test/java/libcore/java/security/ProviderTest.java
index 64ea0e6..a9a5318 100644
--- a/luni/src/test/java/libcore/java/security/ProviderTest.java
+++ b/luni/src/test/java/libcore/java/security/ProviderTest.java
@@ -213,6 +213,32 @@
assertEquals("Missing classes", Collections.EMPTY_LIST, missing);
}
+ // This tests the CDD requirement that specifies the first seven security providers
+ // (section 3.5, [C-0-9] as of P).
+ public void testProviderList() {
+ Provider[] providers = Security.getProviders();
+ assertTrue(providers.length >= 7);
+ assertProviderProperties(providers[0], "AndroidNSSP",
+ "android.security.net.config.NetworkSecurityConfigProvider");
+ assertProviderProperties(providers[1], "AndroidOpenSSL",
+ "com.android.org.conscrypt.OpenSSLProvider");
+ assertProviderProperties(providers[2], "CertPathProvider",
+ "sun.security.provider.CertPathProvider");
+ assertProviderProperties(providers[3], "AndroidKeyStoreBCWorkaround",
+ "android.security.keystore.AndroidKeyStoreBCWorkaroundProvider");
+ assertProviderProperties(providers[4], "BC",
+ "com.android.org.bouncycastle.jce.provider.BouncyCastleProvider");
+ assertProviderProperties(providers[5], "HarmonyJSSE",
+ "com.android.org.conscrypt.JSSEProvider");
+ assertProviderProperties(providers[6], "AndroidKeyStore",
+ "android.security.keystore.AndroidKeyStoreProvider");
+ }
+
+ private void assertProviderProperties(Provider p, String name, String className) {
+ assertEquals(name, p.getName());
+ assertEquals(className, p.getClass().getName());
+ }
+
private static final Pattern alias = Pattern.compile("Alg\\.Alias\\.([^.]*)\\.(.*)");
/**