8342270: Test sun/security/pkcs11/Provider/RequiredMechCheck.java needs write access to src tree
Reviewed-by: rhalade, erikj
This commit is contained in:
parent
78b378ad03
commit
342fe42555
@ -54,12 +54,14 @@ import java.util.Properties;
|
||||
import java.util.ServiceConfigurationError;
|
||||
import java.util.ServiceLoader;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import javax.crypto.SecretKey;
|
||||
import javax.crypto.spec.SecretKeySpec;
|
||||
|
||||
import jdk.test.lib.Platform;
|
||||
import jdk.test.lib.Utils;
|
||||
import jdk.test.lib.artifacts.Artifact;
|
||||
import jdk.test.lib.artifacts.ArtifactResolver;
|
||||
import jdk.test.lib.artifacts.ArtifactResolverException;
|
||||
@ -496,14 +498,13 @@ public abstract class PKCS11Test {
|
||||
return null;
|
||||
}
|
||||
|
||||
String base = getBase();
|
||||
|
||||
String nssConfigDir = copyNssFiles();
|
||||
String libfile = libdir + System.mapLibraryName(nss_library);
|
||||
|
||||
String customDBdir = System.getProperty("CUSTOM_DB_DIR");
|
||||
String dbdir = (customDBdir != null) ?
|
||||
customDBdir :
|
||||
base + SEP + "nss" + SEP + "db";
|
||||
nssConfigDir + SEP + "db";
|
||||
// NSS always wants forward slashes for the config path
|
||||
dbdir = dbdir.replace('\\', '/');
|
||||
|
||||
@ -513,7 +514,7 @@ public abstract class PKCS11Test {
|
||||
System.setProperty("pkcs11test.nss.db", dbdir);
|
||||
return (customConfig != null) ?
|
||||
customConfig :
|
||||
base + SEP + "nss" + SEP + customConfigName;
|
||||
nssConfigDir + SEP + customConfigName;
|
||||
}
|
||||
|
||||
// Generate a vector of supported elliptic curves of a given provider
|
||||
@ -796,6 +797,31 @@ public abstract class PKCS11Test {
|
||||
}
|
||||
}
|
||||
|
||||
//Copy the nss config files to the current directory for tests. Returns the destination path
|
||||
private static String copyNssFiles() throws Exception {
|
||||
String nss = "nss";
|
||||
String db = "db";
|
||||
Path nssDirSource = Path.of(getBase()).resolve(nss);
|
||||
Path nssDirDestination = Path.of(".").resolve(nss);
|
||||
|
||||
// copy files from nss directory
|
||||
copyFiles(nssDirSource, nssDirDestination);
|
||||
// copy files from nss/db directory
|
||||
copyFiles(nssDirSource.resolve(db), nssDirDestination.resolve(db));
|
||||
return nssDirDestination.toString();
|
||||
}
|
||||
|
||||
private static void copyFiles(Path dirSource, Path dirDestination) throws IOException {
|
||||
List<Path> sourceFiles = Arrays
|
||||
.stream(dirSource.toFile().listFiles())
|
||||
.filter(File::isFile)
|
||||
.map(File::toPath)
|
||||
.collect(Collectors.toList());
|
||||
List<Path> destFiles = Utils.copyFiles(sourceFiles, dirDestination,
|
||||
StandardCopyOption.REPLACE_EXISTING);
|
||||
destFiles.forEach((Path file) -> file.toFile().setWritable(true));
|
||||
}
|
||||
|
||||
public abstract void main(Provider p) throws Exception;
|
||||
|
||||
protected boolean skipTest(Provider p) {
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2021, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2021, 2024, 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
|
||||
@ -27,6 +27,7 @@
|
||||
# @library /test/lib/
|
||||
# @build jdk.test.lib.util.ForceGC
|
||||
# jdk.test.lib.Platform
|
||||
# jdk.test.lib.Utils
|
||||
# @run shell MultipleLogins.sh
|
||||
|
||||
# set a few environment variables so that the shell-script can run stand-alone
|
||||
|
Loading…
x
Reference in New Issue
Block a user