mirror of
https://github.com/openjdk/jdk.git
synced 2026-05-15 16:09:44 +00:00
Merge
This commit is contained in:
commit
f7d8bb2c70
@ -3135,20 +3135,24 @@ ShenandoahLoadReferenceBarrierNode::Strength ShenandoahLoadReferenceBarrierNode:
|
||||
case Op_CompareAndSwapS:
|
||||
case Op_CompareAndSwapN:
|
||||
case Op_CompareAndSwapP:
|
||||
case Op_CompareAndExchangeL:
|
||||
case Op_CompareAndExchangeI:
|
||||
case Op_CompareAndExchangeB:
|
||||
case Op_CompareAndExchangeS:
|
||||
case Op_CompareAndExchangeN:
|
||||
case Op_CompareAndExchangeP:
|
||||
case Op_WeakCompareAndSwapL:
|
||||
case Op_WeakCompareAndSwapI:
|
||||
case Op_WeakCompareAndSwapB:
|
||||
case Op_WeakCompareAndSwapS:
|
||||
case Op_WeakCompareAndSwapN:
|
||||
case Op_WeakCompareAndSwapP:
|
||||
case Op_ShenandoahCompareAndSwapN:
|
||||
case Op_ShenandoahCompareAndSwapP:
|
||||
case Op_ShenandoahWeakCompareAndSwapN:
|
||||
case Op_ShenandoahWeakCompareAndSwapP:
|
||||
case Op_ShenandoahCompareAndExchangeN:
|
||||
case Op_ShenandoahCompareAndExchangeP:
|
||||
case Op_CompareAndExchangeL:
|
||||
case Op_CompareAndExchangeI:
|
||||
case Op_CompareAndExchangeB:
|
||||
case Op_CompareAndExchangeS:
|
||||
case Op_WeakCompareAndSwapL:
|
||||
case Op_WeakCompareAndSwapI:
|
||||
case Op_WeakCompareAndSwapB:
|
||||
case Op_WeakCompareAndSwapS:
|
||||
case Op_GetAndSetL:
|
||||
case Op_GetAndSetI:
|
||||
case Op_GetAndSetB:
|
||||
|
||||
@ -347,7 +347,7 @@ public class HtmlConfiguration extends BaseConfiguration {
|
||||
}
|
||||
}
|
||||
}
|
||||
docPaths = new DocPaths(utils, useModuleDirectories);
|
||||
docPaths = new DocPaths(utils);
|
||||
setCreateOverview();
|
||||
setTopFile(docEnv);
|
||||
workArounds.initDocLint(doclintOpts.values(), tagletManager.getAllTagletNames());
|
||||
|
||||
@ -417,7 +417,6 @@ public class HtmlDocletWriter {
|
||||
.setCharset(configuration.charset)
|
||||
.addKeywords(metakeywords)
|
||||
.setStylesheets(configuration.getMainStylesheet(), configuration.getAdditionalStylesheets())
|
||||
.setUseModuleDirectories(configuration.useModuleDirectories)
|
||||
.setIndex(configuration.createindex, mainBodyScript)
|
||||
.addContent(extraHeadContent);
|
||||
|
||||
|
||||
@ -59,7 +59,6 @@ public class Head {
|
||||
private String description;
|
||||
private String generator;
|
||||
private boolean showTimestamp;
|
||||
private boolean useModuleDirectories;
|
||||
private DocFile mainStylesheetFile;
|
||||
private List<DocFile> additionalStylesheetFiles = Collections.emptyList();
|
||||
private boolean index;
|
||||
@ -169,17 +168,6 @@ public class Head {
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets whether the module directories should be used. This is used to set the JavaScript variable.
|
||||
*
|
||||
* @param useModuleDirectories true if the module directories should be used
|
||||
* @return this object
|
||||
*/
|
||||
public Head setUseModuleDirectories(boolean useModuleDirectories) {
|
||||
this.useModuleDirectories = useModuleDirectories;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets whether or not to include the supporting scripts and stylesheets for the
|
||||
* "search" feature.
|
||||
@ -330,7 +318,6 @@ public class Head {
|
||||
mainBodyScript.append("var pathtoroot = ")
|
||||
.appendStringLiteral(ptrPath + "/")
|
||||
.append(";\n")
|
||||
.append("var useModuleDirectories = " + useModuleDirectories + ";\n")
|
||||
.append("loadScripts(document, \'script\');");
|
||||
}
|
||||
addJQueryFile(tree, DocPaths.JSZIP_MIN);
|
||||
|
||||
@ -47,22 +47,20 @@ function getHighlightedText(item) {
|
||||
}
|
||||
function getURLPrefix(ui) {
|
||||
var urlPrefix="";
|
||||
if (useModuleDirectories) {
|
||||
var slash = "/";
|
||||
if (ui.item.category === catModules) {
|
||||
return ui.item.l + slash;
|
||||
} else if (ui.item.category === catPackages && ui.item.m) {
|
||||
return ui.item.m + slash;
|
||||
} else if ((ui.item.category === catTypes && ui.item.p) || ui.item.category === catMembers) {
|
||||
$.each(packageSearchIndex, function(index, item) {
|
||||
if (item.m && ui.item.p == item.l) {
|
||||
urlPrefix = item.m + slash;
|
||||
}
|
||||
});
|
||||
return urlPrefix;
|
||||
} else {
|
||||
return urlPrefix;
|
||||
}
|
||||
var slash = "/";
|
||||
if (ui.item.category === catModules) {
|
||||
return ui.item.l + slash;
|
||||
} else if (ui.item.category === catPackages && ui.item.m) {
|
||||
return ui.item.m + slash;
|
||||
} else if ((ui.item.category === catTypes && ui.item.p) || ui.item.category === catMembers) {
|
||||
$.each(packageSearchIndex, function(index, item) {
|
||||
if (item.m && ui.item.p == item.l) {
|
||||
urlPrefix = item.m + slash;
|
||||
}
|
||||
});
|
||||
return urlPrefix;
|
||||
} else {
|
||||
return urlPrefix;
|
||||
}
|
||||
return urlPrefix;
|
||||
}
|
||||
@ -286,11 +284,7 @@ $(function() {
|
||||
if (ui.item.l !== noResult.l) {
|
||||
var url = getURLPrefix(ui);
|
||||
if (ui.item.category === catModules) {
|
||||
if (useModuleDirectories) {
|
||||
url += "module-summary.html";
|
||||
} else {
|
||||
url = ui.item.l + "-summary.html";
|
||||
}
|
||||
url += "module-summary.html";
|
||||
} else if (ui.item.category === catPackages) {
|
||||
if (ui.item.url) {
|
||||
url = ui.item.url;
|
||||
|
||||
@ -295,12 +295,6 @@ public abstract class BaseConfiguration {
|
||||
// A list of pairs containing urls and package list
|
||||
private final List<Pair<String, String>> linkOfflineList = new ArrayList<>();
|
||||
|
||||
/**
|
||||
* Flag to enable/disable use of module directories when generating docs for modules
|
||||
* Default: on (module directories are enabled).
|
||||
*/
|
||||
public boolean useModuleDirectories = true;
|
||||
|
||||
public boolean dumpOnError = false;
|
||||
|
||||
private List<Pair<String, String>> groupPairs;
|
||||
@ -748,13 +742,6 @@ public abstract class BaseConfiguration {
|
||||
showTaglets = true;
|
||||
return true;
|
||||
}
|
||||
},
|
||||
new XOption(resources, "--no-module-directories") {
|
||||
@Override
|
||||
public boolean process(String option, List<String> args) {
|
||||
useModuleDirectories = false;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
};
|
||||
Set<Doclet.Option> set = new TreeSet<>();
|
||||
|
||||
@ -39,14 +39,12 @@ import javax.lang.model.element.TypeElement;
|
||||
*
|
||||
*/
|
||||
public class DocPaths {
|
||||
private final boolean useModuleDirectories;
|
||||
private final String moduleSeparator;
|
||||
private final Utils utils;
|
||||
|
||||
public DocPaths(Utils utils, boolean useModuleDirectories) {
|
||||
public DocPaths(Utils utils) {
|
||||
this.utils = utils;
|
||||
this.useModuleDirectories = useModuleDirectories;
|
||||
moduleSeparator = useModuleDirectories ? "/module-" : "-";
|
||||
moduleSeparator = "/module-";
|
||||
}
|
||||
|
||||
public static final DocPath DOT_DOT = DocPath.create("..");
|
||||
@ -239,12 +237,8 @@ public class DocPaths {
|
||||
}
|
||||
|
||||
DocPath pkgPath = DocPath.create(pkgElement.getQualifiedName().toString().replace('.', '/'));
|
||||
if (useModuleDirectories) {
|
||||
ModuleElement mdle = (ModuleElement) pkgElement.getEnclosingElement();
|
||||
return forModule(mdle).resolve(pkgPath);
|
||||
} else {
|
||||
return pkgPath;
|
||||
}
|
||||
ModuleElement mdle = (ModuleElement) pkgElement.getEnclosingElement();
|
||||
return forModule(mdle).resolve(pkgPath);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -402,7 +402,7 @@ public class Extern {
|
||||
moduleItems.put(moduleName, item);
|
||||
} else {
|
||||
DocPath pkgPath = DocPath.create(elemname.replace('.', '/'));
|
||||
if (configuration.useModuleDirectories && moduleName != null) {
|
||||
if (moduleName != null) {
|
||||
elempath = elempath.resolve(DocPath.create(moduleName).resolve(pkgPath));
|
||||
} else {
|
||||
elempath = elempath.resolve(pkgPath);
|
||||
|
||||
@ -308,10 +308,10 @@ public class remove004 {
|
||||
//------------------------------------------------------ testing section
|
||||
|
||||
log1(" TESTING BEGINS");
|
||||
vm.resume();
|
||||
|
||||
for (int i = 0; ; i++) {
|
||||
|
||||
vm.resume();
|
||||
breakpointForCommunication();
|
||||
|
||||
int instruction = ((IntegerValue)
|
||||
|
||||
@ -118,15 +118,15 @@ public class Client {
|
||||
String serverName = System.getProperty(Utils.PROP_SERVER_NAME);
|
||||
String appProtocols = System.getProperty(Utils.PROP_APP_PROTOCOLS);
|
||||
boolean supportsSNIOnServer
|
||||
= Utils.getBoolProperty(Utils.PROP_SUPPORTS_SNI_ON_SERVER);
|
||||
= Boolean.getBoolean(Utils.PROP_SUPPORTS_SNI_ON_SERVER);
|
||||
boolean supportsSNIOnClient
|
||||
= Utils.getBoolProperty(Utils.PROP_SUPPORTS_SNI_ON_CLIENT);
|
||||
= Boolean.getBoolean(Utils.PROP_SUPPORTS_SNI_ON_CLIENT);
|
||||
boolean supportsALPNOnServer
|
||||
= Utils.getBoolProperty(Utils.PROP_SUPPORTS_ALPN_ON_SERVER);
|
||||
= Boolean.getBoolean(Utils.PROP_SUPPORTS_ALPN_ON_SERVER);
|
||||
boolean supportsALPNOnClient
|
||||
= Utils.getBoolProperty(Utils.PROP_SUPPORTS_ALPN_ON_CLIENT);
|
||||
= Boolean.getBoolean(Utils.PROP_SUPPORTS_ALPN_ON_CLIENT);
|
||||
boolean negativeCase
|
||||
= Utils.getBoolProperty(Utils.PROP_NEGATIVE_CASE_ON_CLIENT);
|
||||
= Boolean.getBoolean(Utils.PROP_NEGATIVE_CASE_ON_CLIENT);
|
||||
System.out.println(Utils.join(Utils.PARAM_DELIMITER,
|
||||
"ClientJDK=" + System.getProperty(Utils.PROP_CLIENT_JDK),
|
||||
"Protocol=" + protocol,
|
||||
|
||||
@ -57,20 +57,33 @@ import jdk.test.lib.process.OutputAnalyzer;
|
||||
|
||||
public class Compatibility {
|
||||
|
||||
public static void main(String[] args) throws Throwable {
|
||||
String javaSecurityFile
|
||||
= System.getProperty("test.src") + "/java.security";
|
||||
boolean debug = Utils.getBoolProperty("debug");
|
||||
protected List<UseCase> getUseCases() {
|
||||
return UseCase.getAllUseCases();
|
||||
}
|
||||
|
||||
Set<JdkInfo> jdkInfos = jdkInfoList();
|
||||
protected Set<JdkInfo> getJdkInfos() {
|
||||
return jdkInfoList();
|
||||
}
|
||||
|
||||
System.out.println("Test start");
|
||||
protected List<TestCase> runTest() throws Exception {
|
||||
Set<JdkInfo> jdkInfos = getJdkInfos();
|
||||
|
||||
List<TestCase> testCases = new ArrayList<>();
|
||||
ExecutorService executor = Executors.newCachedThreadPool();
|
||||
PrintStream origStdOut = System.out;
|
||||
PrintStream origStdErr = System.err;
|
||||
|
||||
boolean debug = Boolean.getBoolean("debug");
|
||||
|
||||
String securityPropertiesFile = System.getProperty(
|
||||
"test.security.properties",
|
||||
System.getProperty("test.src") + "/java.security");
|
||||
System.out.println("security properties: " + securityPropertiesFile);
|
||||
|
||||
// If true, server and client CANNOT be a same JDK
|
||||
boolean disallowSameEndpoint = Boolean.getBoolean("disallowSameEndpoint");
|
||||
System.out.println("disallowSameEndpoint: " + disallowSameEndpoint);
|
||||
|
||||
try (PrintStream printStream = new PrintStream(
|
||||
new FileOutputStream(Utils.TEST_LOG, true))) {
|
||||
System.setOut(printStream);
|
||||
@ -79,13 +92,13 @@ public class Compatibility {
|
||||
System.out.println(Utils.startHtml());
|
||||
System.out.println(Utils.startPre());
|
||||
|
||||
for (UseCase useCase : UseCase.getAllUseCases()) {
|
||||
for (UseCase useCase : getUseCases()) {
|
||||
for (JdkInfo serverJdk : jdkInfos) {
|
||||
Map<String, String> props = new LinkedHashMap<>();
|
||||
if (debug) {
|
||||
props.put("javax.net.debug", "all");
|
||||
}
|
||||
props.put("java.security.properties", javaSecurityFile);
|
||||
props.put("java.security.properties", securityPropertiesFile);
|
||||
|
||||
props.put(Utils.PROP_PROTOCOL, useCase.protocol.name);
|
||||
props.put(Utils.PROP_CIPHER_SUITE, useCase.cipherSuite.name());
|
||||
@ -105,6 +118,10 @@ public class Compatibility {
|
||||
serverJdk.supportsALPN + "");
|
||||
|
||||
for (JdkInfo clientJdk : jdkInfos) {
|
||||
if (disallowSameEndpoint && clientJdk == serverJdk) {
|
||||
continue;
|
||||
}
|
||||
|
||||
TestCase testCase = new TestCase(serverJdk, clientJdk,
|
||||
useCase);
|
||||
System.out.println(Utils.anchorName(testCase.toString(),
|
||||
@ -162,119 +179,11 @@ public class Compatibility {
|
||||
System.setErr(origStdErr);
|
||||
executor.shutdown();
|
||||
|
||||
System.out.println("Test end");
|
||||
System.out.println("Report is being generated...");
|
||||
boolean failed = generateReport(testCases);
|
||||
System.out.println("Report is generated.");
|
||||
if (failed) {
|
||||
throw new RuntimeException("At least one case failed. "
|
||||
+ "Please check logs for more details.");
|
||||
}
|
||||
}
|
||||
|
||||
private static Status getStatus(String log) {
|
||||
if (log.contains(Status.UNEXPECTED_SUCCESS.name())) {
|
||||
return Status.UNEXPECTED_SUCCESS;
|
||||
} else if (log.contains(Status.SUCCESS.name())) {
|
||||
return Status.SUCCESS;
|
||||
} else if (log.contains(Status.EXPECTED_FAIL.name())) {
|
||||
return Status.EXPECTED_FAIL;
|
||||
} else if (log.contains(Status.TIMEOUT.name())) {
|
||||
return Status.TIMEOUT;
|
||||
} else {
|
||||
return Status.FAIL;
|
||||
}
|
||||
}
|
||||
|
||||
private static Status caseStatus(Status serverStatus, Status clientStatus) {
|
||||
if (clientStatus == null || clientStatus == Status.TIMEOUT) {
|
||||
return serverStatus == Status.EXPECTED_FAIL
|
||||
? Status.EXPECTED_FAIL
|
||||
: Status.FAIL;
|
||||
} else if (serverStatus == Status.TIMEOUT) {
|
||||
return clientStatus == Status.EXPECTED_FAIL
|
||||
? Status.EXPECTED_FAIL
|
||||
: Status.FAIL;
|
||||
} else {
|
||||
return serverStatus == clientStatus
|
||||
? serverStatus
|
||||
: Status.FAIL;
|
||||
}
|
||||
}
|
||||
|
||||
// Retrieves JDK info from the file which is specified by jdkListFile.
|
||||
// If no such file or no JDK is specified by the file, the current testing
|
||||
// JDK will be used.
|
||||
private static Set<JdkInfo> jdkInfoList() throws Throwable {
|
||||
List<String> jdkList = jdkList("jdkListFile");
|
||||
if (jdkList.size() == 0) {
|
||||
jdkList.add(System.getProperty("test.jdk"));
|
||||
}
|
||||
|
||||
Set<JdkInfo> jdkInfoList = new LinkedHashSet<>();
|
||||
for (String jdkPath : jdkList) {
|
||||
JdkInfo jdkInfo = new JdkInfo(jdkPath);
|
||||
// JDK version must be unique.
|
||||
if (!jdkInfoList.add(jdkInfo)) {
|
||||
System.out.println("The JDK version is duplicate: " + jdkPath);
|
||||
}
|
||||
}
|
||||
return jdkInfoList;
|
||||
}
|
||||
|
||||
private static List<String> jdkList(String listFileProp) throws IOException {
|
||||
String listFile = System.getProperty(listFileProp);
|
||||
System.out.println(listFileProp + "=" + listFile);
|
||||
if (listFile != null && Files.exists(Paths.get(listFile))) {
|
||||
try (Stream<String> lines = Files.lines(Paths.get(listFile))) {
|
||||
return lines.filter(line -> {
|
||||
return !line.trim().isEmpty();
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
} else {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
}
|
||||
|
||||
// Checks if server is already launched, and returns server port.
|
||||
private static int waitForServerStarted()
|
||||
throws IOException, InterruptedException {
|
||||
System.out.print("Waiting for server");
|
||||
long deadline = System.currentTimeMillis() + Utils.TIMEOUT;
|
||||
int port;
|
||||
while ((port = getServerPort()) == -1
|
||||
&& System.currentTimeMillis() < deadline) {
|
||||
System.out.print(".");
|
||||
TimeUnit.SECONDS.sleep(1);
|
||||
}
|
||||
System.out.println();
|
||||
|
||||
return port;
|
||||
}
|
||||
|
||||
// Retrieves the latest server port from port.log.
|
||||
private static int getServerPort() throws IOException {
|
||||
if (!Files.exists(Paths.get(Utils.PORT_LOG))) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
try (Stream<String> lines = Files.lines(Paths.get(Utils.PORT_LOG))) {
|
||||
return Integer.valueOf(lines.findFirst().get());
|
||||
}
|
||||
}
|
||||
|
||||
private static OutputAnalyzer runServer(String jdkPath,
|
||||
Map<String, String> props) {
|
||||
return ProcessUtils.java(jdkPath, props, Server.class);
|
||||
}
|
||||
|
||||
private static OutputAnalyzer runClient(String jdkPath,
|
||||
Map<String, String> props) {
|
||||
return ProcessUtils.java(jdkPath, props, Client.class);
|
||||
return testCases;
|
||||
}
|
||||
|
||||
// Generates the test result report.
|
||||
private static boolean generateReport(List<TestCase> testCases)
|
||||
protected boolean generateReport(List<TestCase> testCases)
|
||||
throws IOException {
|
||||
boolean failed = false;
|
||||
StringBuilder report = new StringBuilder();
|
||||
@ -321,6 +230,124 @@ public class Compatibility {
|
||||
return failed;
|
||||
}
|
||||
|
||||
protected void run() throws Exception {
|
||||
System.out.println("Test start");
|
||||
List<TestCase> testCases= runTest();
|
||||
System.out.println("Test end");
|
||||
|
||||
boolean failed = generateReport(testCases);
|
||||
System.out.println("Report was generated.");
|
||||
|
||||
if (failed) {
|
||||
throw new RuntimeException("At least one case failed. "
|
||||
+ "Please check logs for more details.");
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws Throwable {
|
||||
new Compatibility().run();;
|
||||
}
|
||||
|
||||
private static Status getStatus(String log) {
|
||||
if (log.contains(Status.UNEXPECTED_SUCCESS.name())) {
|
||||
return Status.UNEXPECTED_SUCCESS;
|
||||
} else if (log.contains(Status.SUCCESS.name())) {
|
||||
return Status.SUCCESS;
|
||||
} else if (log.contains(Status.EXPECTED_FAIL.name())) {
|
||||
return Status.EXPECTED_FAIL;
|
||||
} else if (log.contains(Status.TIMEOUT.name())) {
|
||||
return Status.TIMEOUT;
|
||||
} else {
|
||||
return Status.FAIL;
|
||||
}
|
||||
}
|
||||
|
||||
private static Status caseStatus(Status serverStatus, Status clientStatus) {
|
||||
if (clientStatus == null || clientStatus == Status.TIMEOUT) {
|
||||
return serverStatus == Status.EXPECTED_FAIL
|
||||
? Status.EXPECTED_FAIL
|
||||
: Status.FAIL;
|
||||
} else if (serverStatus == Status.TIMEOUT) {
|
||||
return clientStatus == Status.EXPECTED_FAIL
|
||||
? Status.EXPECTED_FAIL
|
||||
: Status.FAIL;
|
||||
} else {
|
||||
return serverStatus == clientStatus
|
||||
? serverStatus
|
||||
: Status.FAIL;
|
||||
}
|
||||
}
|
||||
|
||||
// Retrieves JDK info from the file which is specified by jdkListFile.
|
||||
// And the current testing JDK, which is specified by test.jdk, always be used.
|
||||
private static Set<JdkInfo> jdkInfoList() {
|
||||
List<String> jdkList = jdkList();
|
||||
jdkList.add(System.getProperty("test.jdk"));
|
||||
|
||||
Set<JdkInfo> jdkInfoList = new LinkedHashSet<>();
|
||||
for (String jdkPath : jdkList) {
|
||||
JdkInfo jdkInfo = new JdkInfo(jdkPath);
|
||||
// JDK version must be unique.
|
||||
if (!jdkInfoList.add(jdkInfo)) {
|
||||
System.out.println("The JDK version is duplicate: " + jdkPath);
|
||||
}
|
||||
}
|
||||
return jdkInfoList;
|
||||
}
|
||||
|
||||
private static List<String> jdkList() {
|
||||
String listFile = System.getProperty("jdkListFile");
|
||||
System.out.println("jdk list file: " + listFile);
|
||||
if (listFile != null && Files.exists(Paths.get(listFile))) {
|
||||
try (Stream<String> lines = Files.lines(Paths.get(listFile))) {
|
||||
return lines.filter(line -> {
|
||||
return !line.trim().isEmpty();
|
||||
}).collect(Collectors.toList());
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException("Cannot get jdk list", e);
|
||||
}
|
||||
} else {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
}
|
||||
|
||||
// Checks if server is already launched, and returns server port.
|
||||
private static int waitForServerStarted()
|
||||
throws IOException, InterruptedException {
|
||||
System.out.print("Waiting for server");
|
||||
long deadline = System.currentTimeMillis() + Utils.TIMEOUT;
|
||||
int port;
|
||||
while ((port = getServerPort()) == -1
|
||||
&& System.currentTimeMillis() < deadline) {
|
||||
System.out.print(".");
|
||||
TimeUnit.SECONDS.sleep(1);
|
||||
}
|
||||
System.out.println();
|
||||
|
||||
return port;
|
||||
}
|
||||
|
||||
// Retrieves the latest server port from port.log.
|
||||
private static int getServerPort() throws IOException {
|
||||
if (!Files.exists(Paths.get(Utils.PORT_LOG))) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
try (Stream<String> lines = Files.lines(Paths.get(Utils.PORT_LOG))) {
|
||||
return Integer.valueOf(lines.findFirst().get());
|
||||
}
|
||||
}
|
||||
|
||||
private static OutputAnalyzer runServer(String jdkPath,
|
||||
Map<String, String> props) {
|
||||
return ProcessUtils.java(jdkPath, props, Server.class);
|
||||
}
|
||||
|
||||
private static OutputAnalyzer runClient(String jdkPath,
|
||||
Map<String, String> props) {
|
||||
return ProcessUtils.java(jdkPath, props, Client.class);
|
||||
}
|
||||
|
||||
private static void generateFile(String path, String content)
|
||||
throws IOException {
|
||||
try(FileWriter writer = new FileWriter(new File(path))) {
|
||||
|
||||
@ -36,7 +36,7 @@ public class JdkInfo {
|
||||
public final boolean supportsSNI;
|
||||
public final boolean supportsALPN;
|
||||
|
||||
public JdkInfo(String jdkPath) throws Throwable {
|
||||
public JdkInfo(String jdkPath) {
|
||||
this.jdkPath = jdkPath;
|
||||
|
||||
String output = jdkAttributes(jdkPath);
|
||||
@ -54,7 +54,7 @@ public class JdkInfo {
|
||||
}
|
||||
|
||||
// Determines the specific attributes for the specified JDK.
|
||||
private static String jdkAttributes(String jdkPath) throws Throwable {
|
||||
private static String jdkAttributes(String jdkPath) {
|
||||
return ProcessUtils.java(jdkPath, null, JdkUtils.class).getOutput();
|
||||
}
|
||||
|
||||
|
||||
@ -103,12 +103,12 @@ public class Server {
|
||||
String protocol = System.getProperty(Utils.PROP_PROTOCOL);
|
||||
String cipherSuite = System.getProperty(Utils.PROP_CIPHER_SUITE);
|
||||
boolean clientAuth
|
||||
= Utils.getBoolProperty(Utils.PROP_CLIENT_AUTH);
|
||||
= Boolean.getBoolean(Utils.PROP_CLIENT_AUTH);
|
||||
String appProtocols = System.getProperty(Utils.PROP_APP_PROTOCOLS);
|
||||
boolean supportsALPN
|
||||
= Utils.getBoolProperty(Utils.PROP_SUPPORTS_ALPN_ON_SERVER);
|
||||
= Boolean.getBoolean(Utils.PROP_SUPPORTS_ALPN_ON_SERVER);
|
||||
boolean negativeCase
|
||||
= Utils.getBoolProperty(Utils.PROP_NEGATIVE_CASE_ON_SERVER);
|
||||
= Boolean.getBoolean(Utils.PROP_NEGATIVE_CASE_ON_SERVER);
|
||||
|
||||
System.out.println(Utils.join(Utils.PARAM_DELIMITER,
|
||||
"ServerJDK=" + System.getProperty(Utils.PROP_SERVER_JDK),
|
||||
|
||||
@ -30,10 +30,10 @@ import java.util.List;
|
||||
public class UseCase {
|
||||
|
||||
private static final boolean FULL_CASES
|
||||
= Utils.getBoolProperty("fullCases");
|
||||
= Boolean.getBoolean("fullCases");
|
||||
|
||||
public static final boolean FULL_CIPHER_SUITES
|
||||
= Utils.getBoolProperty("fullCipherSuites");
|
||||
= Boolean.getBoolean("fullCipherSuites");
|
||||
|
||||
public static final Protocol[] PROTOCOLS = new Protocol[] {
|
||||
Protocol.TLSV1,
|
||||
@ -129,7 +129,7 @@ public class UseCase {
|
||||
}
|
||||
|
||||
private static final Object[][] PARAMS = new Object[][] {
|
||||
FULL_CASES ? PROTOCOLS : PROTOCOLS,
|
||||
PROTOCOLS,
|
||||
FULL_CASES ? CIPHER_SUITES : MANDATORY_CIPHER_SUITES,
|
||||
FULL_CASES ? new Boolean[] { false, true } : new Boolean[] { true },
|
||||
FULL_CASES
|
||||
|
||||
@ -166,10 +166,6 @@ public class Utils {
|
||||
return bool ? "Y" : "N";
|
||||
}
|
||||
|
||||
public static boolean getBoolProperty(String prop) {
|
||||
return Boolean.valueOf(System.getProperty(prop));
|
||||
}
|
||||
|
||||
public static Status handleException(Exception exception,
|
||||
boolean negativeCase) {
|
||||
Status status;
|
||||
|
||||
@ -23,7 +23,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 8195795 8201396 8196202
|
||||
* @bug 8195795 8201396 8196202 8215582
|
||||
* @summary test the use of module directories in output,
|
||||
* and the --no-module-directories option
|
||||
* @modules jdk.javadoc/jdk.javadoc.internal.api
|
||||
@ -76,32 +76,12 @@ public class TestModuleDirs extends JavadocTester {
|
||||
.classes("package pa; public class A {}")
|
||||
.exports("pa")
|
||||
.write(src);
|
||||
new ModuleBuilder(tb, "mb")
|
||||
.classes("package pb; public class B {}")
|
||||
.exports("pb")
|
||||
.write(src);
|
||||
|
||||
javadoc("-d", base.resolve("api").toString(),
|
||||
"-quiet",
|
||||
"--module-source-path", src.toString(),
|
||||
"--no-module-directories",
|
||||
"--module", "ma,mb");
|
||||
|
||||
checkExit(Exit.OK);
|
||||
checkFiles(true,
|
||||
"ma-summary.html",
|
||||
"pa/package-summary.html");
|
||||
checkFiles(false,
|
||||
"ma/module-summary.html",
|
||||
"ma/pa/package-summary.html");
|
||||
checkOutput("ma-summary.html", false,
|
||||
"<ul class=\"navList\" id=\"allclasses_navbar_top\">\n"
|
||||
+ "<li><a href=\"allclasses-noframe.html\">All Classes</a></li>\n"
|
||||
+ "</ul>\n");
|
||||
checkOutput("pa/package-summary.html", true,
|
||||
"<li><a href=\"../deprecated-list.html\">Deprecated</a></li>\n"
|
||||
+ "<li><a href=\"../index-all.html\">Index</a></li>");
|
||||
|
||||
checkExit(Exit.ERROR);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@ -290,23 +290,9 @@ public class TestSearch extends JavadocTester {
|
||||
"type-search-index.js");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNoModuleDirectories() {
|
||||
javadoc("-d", "out-noMdlDir",
|
||||
"--no-module-directories",
|
||||
"-Xdoclint:none",
|
||||
"-sourcepath", testSrc,
|
||||
"-use",
|
||||
"pkg", "pkg1", "pkg2", "pkg3");
|
||||
checkExit(Exit.OK);
|
||||
checkSearchOutput(true, false);
|
||||
checkSearchJS();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testURLEncoding() {
|
||||
javadoc("-d", "out-encode-html5",
|
||||
"--no-module-directories",
|
||||
"-Xdoclint:none",
|
||||
"-sourcepath", testSrc,
|
||||
"-use",
|
||||
@ -320,7 +306,6 @@ public class TestSearch extends JavadocTester {
|
||||
public void testJapaneseLocale() {
|
||||
javadoc("-locale", "ja_JP",
|
||||
"-d", "out-jp",
|
||||
"--no-module-directories",
|
||||
"-Xdoclint:none",
|
||||
"-sourcepath", testSrc,
|
||||
"-use",
|
||||
@ -339,7 +324,6 @@ public class TestSearch extends JavadocTester {
|
||||
public void testChineseLocale() {
|
||||
javadoc("-locale", "zh_CN",
|
||||
"-d", "out-cn",
|
||||
"--no-module-directories",
|
||||
"-Xdoclint:none",
|
||||
"-sourcepath", testSrc,
|
||||
"-use",
|
||||
@ -396,7 +380,6 @@ public class TestSearch extends JavadocTester {
|
||||
"<script type=\"text/javascript\" src=\"script-dir/jquery-migrate-3.0.1.js\"></script>\n",
|
||||
"<script type=\"text/javascript\" src=\"script-dir/jquery-ui.js\"></script>",
|
||||
"var pathtoroot = \"./\";\n"
|
||||
+ "var useModuleDirectories = " + moduleDirectoriesVar + ";\n"
|
||||
+ "loadScripts(document, 'script');",
|
||||
"<ul class=\"navListSearch\">\n",
|
||||
"<li><label for=\"search\">SEARCH:</label>\n"
|
||||
@ -632,22 +615,20 @@ public class TestSearch extends JavadocTester {
|
||||
+ " });",
|
||||
"function getURLPrefix(ui) {\n"
|
||||
+ " var urlPrefix=\"\";\n"
|
||||
+ " if (useModuleDirectories) {\n"
|
||||
+ " var slash = \"/\";\n"
|
||||
+ " if (ui.item.category === catModules) {\n"
|
||||
+ " return ui.item.l + slash;\n"
|
||||
+ " } else if (ui.item.category === catPackages && ui.item.m) {\n"
|
||||
+ " return ui.item.m + slash;\n"
|
||||
+ " } else if ((ui.item.category === catTypes && ui.item.p) || ui.item.category === catMembers) {\n"
|
||||
+ " $.each(packageSearchIndex, function(index, item) {\n"
|
||||
+ " if (item.m && ui.item.p == item.l) {\n"
|
||||
+ " urlPrefix = item.m + slash;\n"
|
||||
+ " }\n"
|
||||
+ " });\n"
|
||||
+ " return urlPrefix;\n"
|
||||
+ " } else {\n"
|
||||
+ " return urlPrefix;\n"
|
||||
+ " }\n"
|
||||
+ " var slash = \"/\";\n"
|
||||
+ " if (ui.item.category === catModules) {\n"
|
||||
+ " return ui.item.l + slash;\n"
|
||||
+ " } else if (ui.item.category === catPackages && ui.item.m) {\n"
|
||||
+ " return ui.item.m + slash;\n"
|
||||
+ " } else if ((ui.item.category === catTypes && ui.item.p) || ui.item.category === catMembers) {\n"
|
||||
+ " $.each(packageSearchIndex, function(index, item) {\n"
|
||||
+ " if (item.m && ui.item.p == item.l) {\n"
|
||||
+ " urlPrefix = item.m + slash;\n"
|
||||
+ " }\n"
|
||||
+ " });\n"
|
||||
+ " return urlPrefix;\n"
|
||||
+ " } else {\n"
|
||||
+ " return urlPrefix;\n"
|
||||
+ " }\n"
|
||||
+ " return urlPrefix;\n"
|
||||
+ "}",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user