diff --git a/jdk/test/sun/security/krb5/auto/ReplayCacheTestProc.java b/jdk/test/sun/security/krb5/auto/ReplayCacheTestProc.java index f11f6498471..2009fcf7331 100644 --- a/jdk/test/sun/security/krb5/auto/ReplayCacheTestProc.java +++ b/jdk/test/sun/security/krb5/auto/ReplayCacheTestProc.java @@ -27,7 +27,10 @@ * @summary More krb5 tests * @library ../../../../java/security/testlibrary/ /test/lib * @compile -XDignore.symbol.file ReplayCacheTestProc.java - * @run main/othervm/timeout=300 -Dsun.net.spi.nameservice.provider.1=ns,mock ReplayCacheTestProc + * @run main/othervm/timeout=300 -Dsun.net.spi.nameservice.provider.1=ns,mock + * -Dtest.libs=J ReplayCacheTestProc + * @run main/othervm/timeout=300 -Dsun.net.spi.nameservice.provider.1=ns,mock + * -Dtest.libs=N ReplayCacheTestProc */ import java.io.*; @@ -43,6 +46,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import jdk.test.lib.Asserts; import jdk.test.lib.Platform; import sun.security.jgss.GSSUtil; import sun.security.krb5.internal.rcache.AuthTime; @@ -51,9 +55,8 @@ * This test runs multiple acceptor Procs to mimic AP-REQ replays. * These system properties are supported: * - * - test.libs on what types of acceptors to use + * - test.libs on what types of acceptors to use. Cannot be null. * Format: CSV of (J|N|N=|J=) - * Default: J,N on Solaris and Linux where N is available, or J * Example: J,N,N14=/krb5-1.14/lib/libgssapi_krb5.so,J8=/java8/bin/java * * - test.runs on manual runs. If empty, a iterate through all pattern @@ -117,6 +120,16 @@ public static void main0(String[] args) throws Exception { uid = -1; } + // User-provided libs + String userLibs = System.getProperty("test.libs"); + Asserts.assertNotNull(userLibs, "test.libs property must be provided"); + libs = userLibs.split(","); + if (Arrays.asList(libs).contains("N") && !isNativeLibAvailable()) { + // Skip test when native GSS libs are not available in running platform + System.out.println("Native mode not available - skipped"); + return; + } + KDC kdc = KDC.create(OneKDC.REALM, HOST, 0, true); for (int i=0; i