Merge
This commit is contained in:
commit
bc9cd8db6b
@ -430,3 +430,5 @@ b94be69cbb1d2943b886bf2d458745756df146e4 jdk-10+9
|
||||
88d7fd969e7df0e07a53b201cfd29393ca33ede9 jdk-9+173
|
||||
5466f409346e0446ee9a6daeb7f5d75c8fc76823 jdk-9+174
|
||||
8d4ed1e06fe184c9cb08c5b708e7d6f5c066644f jdk-10+12
|
||||
8f7227c6012b0051ea4e0bcee040c627bf699b88 jdk-9+175
|
||||
d67a3f1f057f7e31e12f33ebe3667cb73d252268 jdk-10+13
|
||||
|
@ -1 +1,2 @@
|
||||
project=jdk10
|
||||
bugids=dup
|
||||
|
@ -18,14 +18,16 @@
|
||||
</header>
|
||||
<nav id="TOC">
|
||||
<ul>
|
||||
<li><a href="#using-the-run-test-framework">Using the run-test framework</a></li>
|
||||
<li><a href="#using-the-run-test-framework">Using the run-test framework</a><ul>
|
||||
<li><a href="#configuration">Configuration</a></li>
|
||||
</ul></li>
|
||||
<li><a href="#test-selection">Test selection</a><ul>
|
||||
<li><a href="#jtreg">JTreg</a></li>
|
||||
<li><a href="#jtreg">JTReg</a></li>
|
||||
<li><a href="#gtest">Gtest</a></li>
|
||||
</ul></li>
|
||||
<li><a href="#test-results-and-summary">Test results and summary</a></li>
|
||||
<li><a href="#test-suite-control">Test suite control</a><ul>
|
||||
<li><a href="#jtreg-keywords">JTreg keywords</a></li>
|
||||
<li><a href="#jtreg-keywords">JTReg keywords</a></li>
|
||||
<li><a href="#gtest-keywords">Gtest keywords</a></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
@ -41,14 +43,17 @@ $ make run-test-only TEST="gtest:LogTagSet gtest:LogTagSetDescriptions"
|
||||
$ make run-test TEST="hotspot/test:hotspot_gc" JTREG="JOBS=1;TIMEOUT=8;VM_OTIONS=-XshowSettings -Xlog:gc+ref=debug"
|
||||
$ make run-test TEST="jtreg:hotspot/test:hotspot_gc hotspot/test/native_sanity/JniVersion.java"
|
||||
$ make exploded-run-test TEST=hotspot_tier1</code></pre>
|
||||
|
||||
<h3 id="configuration">Configuration</h3>
|
||||
<p>To be able to run JTReg tests, <code>configure</code> needs to know where to find the JTReg test framework. If it is not picked up automatically by configure, use the <code>--with-jtreg=<path to jtreg home></code> option to point to the JTReg framework. Note that this option should point to the JTReg home, i.e. the top directory, containing <code>lib/jtreg.jar</code> etc. (An alternative is to set the <code>JT_HOME</code> environment variable to point to the JTReg home before running <code>configure</code>.)</p>
|
||||
<h2 id="test-selection">Test selection</h2>
|
||||
<p>All functionality is available using the run-test make target. In this use case, the test or tests to be executed is controlled using the <code>TEST</code> variable. To speed up subsequent test runs with no source code changes, run-test-only can be used instead, which do not depend on the source and test image build.</p>
|
||||
<p>For some common top-level tests, direct make targets have been generated. This includes all JTreg test groups, the hotspot gtest, and custom tests (if present). This means that <code>make run-test-tier1</code> is equivalent to <code>make run-test TEST="tier1"</code>, but the latter is more tab-completion friendly. For more complex test runs, the <code>run-test TEST="x"</code> solution needs to be used.</p>
|
||||
<p>For some common top-level tests, direct make targets have been generated. This includes all JTReg test groups, the hotspot gtest, and custom tests (if present). This means that <code>make run-test-tier1</code> is equivalent to <code>make run-test TEST="tier1"</code>, but the latter is more tab-completion friendly. For more complex test runs, the <code>run-test TEST="x"</code> solution needs to be used.</p>
|
||||
<p>The test specifications given in <code>TEST</code> is parsed into fully qualified test descriptors, which clearly and unambigously show which tests will be run. As an example, <code>:tier1</code> will expand to <code>jtreg:jdk/test:tier1 jtreg:langtools/test:tier1 jtreg:nashorn/test:tier1 jtreg:jaxp/test:tier1</code>. You can always submit a list of fully qualified test descriptors in the <code>TEST</code> variable if you want to shortcut the parser.</p>
|
||||
<h3 id="jtreg">JTreg</h3>
|
||||
<p>JTreg test groups can be specified either without a test root, e.g. <code>:tier1</code> (or <code>tier1</code>, the initial colon is optional), or with, e.g. <code>hotspot/test:tier1</code>, <code>jdk/test:jdk_util</code>.</p>
|
||||
<h3 id="jtreg">JTReg</h3>
|
||||
<p>JTReg test groups can be specified either without a test root, e.g. <code>:tier1</code> (or <code>tier1</code>, the initial colon is optional), or with, e.g. <code>hotspot/test:tier1</code>, <code>jdk/test:jdk_util</code>.</p>
|
||||
<p>When specified without a test root, all matching groups from all tests roots will be added. Otherwise, only the group from the specified test root will be added.</p>
|
||||
<p>Individual JTreg tests or directories containing JTreg tests can also be specified, like <code>hotspot/test/native_sanity/JniVersion.java</code> or <code>hotspot/test/native_sanity</code>. You can also specify an absolute path, to point to a JTreg test outside the source tree.</p>
|
||||
<p>Individual JTReg tests or directories containing JTReg tests can also be specified, like <code>hotspot/test/native_sanity/JniVersion.java</code> or <code>hotspot/test/native_sanity</code>. You can also specify an absolute path, to point to a JTReg test outside the source tree.</p>
|
||||
<p>As long as the test groups or test paths can be uniquely resolved, you do not need to enter the <code>jtreg:</code> prefix. If this is not possible, or if you want to use a fully qualified test descriptor, add <code>jtreg:</code>, e.g. <code>jtreg:hotspot/test/native_sanity</code>.</p>
|
||||
<h3 id="gtest">Gtest</h3>
|
||||
<p>Since the Hotspot Gtest suite is so quick, the default is to run all tests. This is specified by just <code>gtest</code>, or as a fully qualified test descriptor <code>gtest:all</code>.</p>
|
||||
@ -67,15 +72,15 @@ TEST FAILURE</code></pre>
|
||||
<p>Tests where the number of TOTAL tests does not equal the number of PASSed tests will be considered a test failure. These are marked with the <code>>> ... <<</code> marker for easy identification.</p>
|
||||
<p>The classification of non-passed tests differs a bit between test suites. In the summary, ERROR is used as a catch-all for tests that neither passed nor are classified as failed by the framework. This might indicate test framework error, timeout or other problems.</p>
|
||||
<p>In case of test failures, <code>make run-test</code> will exit with a non-zero exit value.</p>
|
||||
<p>All tests have their result stored in <code>build/$BUILD/test-result/$TEST_ID</code>, where TEST_ID is a path-safe conversion from the fully qualified test descriptor, e.g. for <code>jtreg:jdk/test:tier1</code> the TEST_ID is <code>jtreg_jdk_test_tier1</code>. This path is also printed in the log at the end of the test run.</p>
|
||||
<p>All tests have their result stored in <code>build/$BUILD/test-results/$TEST_ID</code>, where TEST_ID is a path-safe conversion from the fully qualified test descriptor, e.g. for <code>jtreg:jdk/test:tier1</code> the TEST_ID is <code>jtreg_jdk_test_tier1</code>. This path is also printed in the log at the end of the test run.</p>
|
||||
<p>Additional work data is stored in <code>build/$BUILD/test-support/$TEST_ID</code>. For some frameworks, this directory might contain information that is useful in determining the cause of a failed test.</p>
|
||||
<h2 id="test-suite-control">Test suite control</h2>
|
||||
<p>It is possible to control various aspects of the test suites using make control variables.</p>
|
||||
<p>These variables use a keyword=value approach to allow multiple values to be set. So, for instance, <code>JTREG="JOBS=1;TIMEOUT=8"</code> will set the JTreg concurrency level to 1 and the timeout factor to 8. This is equivalent to setting <code>JTREG_JOBS=1 JTREG_TIMEOUT=8</code>, but using the keyword format means that the <code>JTREG</code> variable is parsed and verified for correctness, so <code>JTREG="TMIEOUT=8"</code> would give an error, while <code>JTREG_TMIEOUT=8</code> would just pass unnoticed.</p>
|
||||
<p>These variables use a keyword=value approach to allow multiple values to be set. So, for instance, <code>JTREG="JOBS=1;TIMEOUT=8"</code> will set the JTReg concurrency level to 1 and the timeout factor to 8. This is equivalent to setting <code>JTREG_JOBS=1 JTREG_TIMEOUT=8</code>, but using the keyword format means that the <code>JTREG</code> variable is parsed and verified for correctness, so <code>JTREG="TMIEOUT=8"</code> would give an error, while <code>JTREG_TMIEOUT=8</code> would just pass unnoticed.</p>
|
||||
<p>To separate multiple keyword=value pairs, use <code>;</code> (semicolon). Since the shell normally eats <code>;</code>, the recommended usage is to write the assignment inside qoutes, e.g. <code>JTREG="...;..."</code>. This will also make sure spaces are preserved, as in <code>JTREG="VM_OTIONS=-XshowSettings -Xlog:gc+ref=debug"</code>.</p>
|
||||
<p>(Other ways are possible, e.g. using backslash: <code>JTREG=JOBS=1\;TIMEOUT=8</code>. Also, as a special technique, the string <code>%20</code> will be replaced with space for certain options, e.g. <code>JTREG=VM_OTIONS=-XshowSettings%20-Xlog:gc+ref=debug</code>. This can be useful if you have layers of scripts and have trouble getting proper quoting of command line arguments through.)</p>
|
||||
<p>As far as possible, the names of the keywords have been standardized between test suites.</p>
|
||||
<h3 id="jtreg-keywords">JTreg keywords</h3>
|
||||
<h3 id="jtreg-keywords">JTReg keywords</h3>
|
||||
<h4 id="jobs">JOBS</h4>
|
||||
<p>The test concurrency (<code>-concurrency</code>).</p>
|
||||
<p>Defaults to TEST_JOBS (if set by <code>--with-test-jobs=</code>), otherwise it defaults to JOBS, except for Hotspot, where the default is <em>number of CPU cores/2</em>, but never more than 12.</p>
|
||||
@ -96,15 +101,15 @@ TEST FAILURE</code></pre>
|
||||
<p>Defaults to <code>fail,error</code>.</p>
|
||||
<h4 id="max_mem">MAX_MEM</h4>
|
||||
<p>Limit memory consumption (<code>-Xmx</code> and <code>-vmoption:-Xmx</code>, or none).</p>
|
||||
<p>Limit memory consumption for JTreg test framework and VM under test. Set to 0 to disable the limits.</p>
|
||||
<p>Limit memory consumption for JTReg test framework and VM under test. Set to 0 to disable the limits.</p>
|
||||
<p>Defaults to 512m, except for hotspot, where it defaults to 0 (no limit).</p>
|
||||
<h4 id="options">OPTIONS</h4>
|
||||
<p>Additional options to the JTreg test framework.</p>
|
||||
<p>Use <code>JTREG="OPTIONS=--help all"</code> to see all available JTreg options.</p>
|
||||
<p>Additional options to the JTReg test framework.</p>
|
||||
<p>Use <code>JTREG="OPTIONS=--help all"</code> to see all available JTReg options.</p>
|
||||
<h4 id="java_options">JAVA_OPTIONS</h4>
|
||||
<p>Additional Java options to JTreg (<code>-javaoption</code>).</p>
|
||||
<p>Additional Java options to JTReg (<code>-javaoption</code>).</p>
|
||||
<h4 id="vm_options">VM_OPTIONS</h4>
|
||||
<p>Additional VM options to JTreg (<code>-vmoption</code>).</p>
|
||||
<p>Additional VM options to JTReg (<code>-vmoption</code>).</p>
|
||||
<h3 id="gtest-keywords">Gtest keywords</h3>
|
||||
<h4 id="repeat">REPEAT</h4>
|
||||
<p>The number of times to repeat the tests (<code>--gtest_repeat</code>).</p>
|
||||
|
@ -22,6 +22,15 @@ Some example command-lines:
|
||||
$ make run-test TEST="jtreg:hotspot/test:hotspot_gc hotspot/test/native_sanity/JniVersion.java"
|
||||
$ make exploded-run-test TEST=hotspot_tier1
|
||||
|
||||
### Configuration
|
||||
|
||||
To be able to run JTReg tests, `configure` needs to know where to find the
|
||||
JTReg test framework. If it is not picked up automatically by configure, use
|
||||
the `--with-jtreg=<path to jtreg home>` option to point to the JTReg framework.
|
||||
Note that this option should point to the JTReg home, i.e. the top directory,
|
||||
containing `lib/jtreg.jar` etc. (An alternative is to set the `JT_HOME`
|
||||
environment variable to point to the JTReg home before running `configure`.)
|
||||
|
||||
## Test selection
|
||||
|
||||
All functionality is available using the run-test make target. In this use
|
||||
@ -30,7 +39,7 @@ To speed up subsequent test runs with no source code changes, run-test-only can
|
||||
be used instead, which do not depend on the source and test image build.
|
||||
|
||||
For some common top-level tests, direct make targets have been generated. This
|
||||
includes all JTreg test groups, the hotspot gtest, and custom tests (if
|
||||
includes all JTReg test groups, the hotspot gtest, and custom tests (if
|
||||
present). This means that `make run-test-tier1` is equivalent to `make run-test
|
||||
TEST="tier1"`, but the latter is more tab-completion friendly. For more complex
|
||||
test runs, the `run-test TEST="x"` solution needs to be used.
|
||||
@ -42,9 +51,9 @@ jtreg:langtools/test:tier1 jtreg:nashorn/test:tier1 jtreg:jaxp/test:tier1`. You
|
||||
can always submit a list of fully qualified test descriptors in the `TEST`
|
||||
variable if you want to shortcut the parser.
|
||||
|
||||
### JTreg
|
||||
### JTReg
|
||||
|
||||
JTreg test groups can be specified either without a test root, e.g. `:tier1`
|
||||
JTReg test groups can be specified either without a test root, e.g. `:tier1`
|
||||
(or `tier1`, the initial colon is optional), or with, e.g.
|
||||
`hotspot/test:tier1`, `jdk/test:jdk_util`.
|
||||
|
||||
@ -52,10 +61,10 @@ When specified without a test root, all matching groups from all tests roots
|
||||
will be added. Otherwise, only the group from the specified test root will be
|
||||
added.
|
||||
|
||||
Individual JTreg tests or directories containing JTreg tests can also be
|
||||
Individual JTReg tests or directories containing JTReg tests can also be
|
||||
specified, like `hotspot/test/native_sanity/JniVersion.java` or
|
||||
`hotspot/test/native_sanity`. You can also specify an absolute path, to point
|
||||
to a JTreg test outside the source tree.
|
||||
to a JTReg test outside the source tree.
|
||||
|
||||
As long as the test groups or test paths can be uniquely resolved, you do not
|
||||
need to enter the `jtreg:` prefix. If this is not possible, or if you want to
|
||||
@ -99,7 +108,7 @@ error, timeout or other problems.
|
||||
|
||||
In case of test failures, `make run-test` will exit with a non-zero exit value.
|
||||
|
||||
All tests have their result stored in `build/$BUILD/test-result/$TEST_ID`,
|
||||
All tests have their result stored in `build/$BUILD/test-results/$TEST_ID`,
|
||||
where TEST_ID is a path-safe conversion from the fully qualified test
|
||||
descriptor, e.g. for `jtreg:jdk/test:tier1` the TEST_ID is
|
||||
`jtreg_jdk_test_tier1`. This path is also printed in the log at the end of the
|
||||
@ -115,7 +124,7 @@ It is possible to control various aspects of the test suites using make control
|
||||
variables.
|
||||
|
||||
These variables use a keyword=value approach to allow multiple values to be
|
||||
set. So, for instance, `JTREG="JOBS=1;TIMEOUT=8"` will set the JTreg
|
||||
set. So, for instance, `JTREG="JOBS=1;TIMEOUT=8"` will set the JTReg
|
||||
concurrency level to 1 and the timeout factor to 8. This is equivalent to
|
||||
setting `JTREG_JOBS=1 JTREG_TIMEOUT=8`, but using the keyword format means that
|
||||
the `JTREG` variable is parsed and verified for correctness, so
|
||||
@ -136,7 +145,7 @@ proper quoting of command line arguments through.)
|
||||
As far as possible, the names of the keywords have been standardized between
|
||||
test suites.
|
||||
|
||||
### JTreg keywords
|
||||
### JTReg keywords
|
||||
|
||||
#### JOBS
|
||||
The test concurrency (`-concurrency`).
|
||||
@ -174,21 +183,21 @@ Defaults to `fail,error`.
|
||||
#### MAX_MEM
|
||||
Limit memory consumption (`-Xmx` and `-vmoption:-Xmx`, or none).
|
||||
|
||||
Limit memory consumption for JTreg test framework and VM under test. Set to 0
|
||||
Limit memory consumption for JTReg test framework and VM under test. Set to 0
|
||||
to disable the limits.
|
||||
|
||||
Defaults to 512m, except for hotspot, where it defaults to 0 (no limit).
|
||||
|
||||
#### OPTIONS
|
||||
Additional options to the JTreg test framework.
|
||||
Additional options to the JTReg test framework.
|
||||
|
||||
Use `JTREG="OPTIONS=--help all"` to see all available JTreg options.
|
||||
Use `JTREG="OPTIONS=--help all"` to see all available JTReg options.
|
||||
|
||||
#### JAVA_OPTIONS
|
||||
Additional Java options to JTreg (`-javaoption`).
|
||||
Additional Java options to JTReg (`-javaoption`).
|
||||
|
||||
#### VM_OPTIONS
|
||||
Additional VM options to JTreg (`-vmoption`).
|
||||
Additional VM options to JTReg (`-vmoption`).
|
||||
|
||||
### Gtest keywords
|
||||
|
||||
|
@ -81,7 +81,6 @@ endif
|
||||
|
||||
LEGAL_NOTICES := \
|
||||
$(SUPPORT_OUTPUTDIR)/modules_legal/java.base \
|
||||
$(wildcard $(SUPPORT_OUTPUTDIR)/modules_legal/$(MODULE)) \
|
||||
$(call FindModuleLegalDirs, $(MODULE)) \
|
||||
#
|
||||
|
||||
@ -106,10 +105,10 @@ ifeq ($(MODULE), java.base)
|
||||
DEPS += $(patsubst %, $(JMODS_DIR)/%.jmod, \
|
||||
$(filter-out java.base $(ALL_UPGRADEABLE_MODULES), $(call FindAllModules)))
|
||||
|
||||
EXCLUDE_PATTERN := $(strip $(subst $(SPACE),|,$(strip $(ALL_UPGRADEABLE_MODULES))))
|
||||
EXCLUDE_PATTERN := $(strip $(subst $(SPACE),$$|,$(strip $(ALL_UPGRADEABLE_MODULES))))
|
||||
|
||||
JMOD_FLAGS += --module-path $(JMODS_DIR) \
|
||||
--hash-modules '^(?!$(EXCLUDE_PATTERN))'
|
||||
--hash-modules '^(?!$(EXCLUDE_PATTERN)$$)'
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
132
make/Docs.gmk
132
make/Docs.gmk
@ -63,7 +63,7 @@ MODULES_SOURCE_PATH := $(call PathList, $(call GetModuleSrcPath) \
|
||||
# URLs
|
||||
JAVADOC_BASE_URL := http://www.oracle.com/pls/topic/lookup?ctx=javase9&id=homepage
|
||||
BUG_SUBMIT_URL := http://bugreport.java.com/bugreport/
|
||||
COPYRIGHT_URL := {@docroot}/../legal/cpyr.html
|
||||
COPYRIGHT_URL := {@docroot}/../legal/copyright.html
|
||||
LICENSE_URL := http://www.oracle.com/technetwork/java/javase/terms/license/java9speclicense.html
|
||||
REDISTRIBUTION_URL := http://www.oracle.com/technetwork/java/redist-137594.html
|
||||
|
||||
@ -116,9 +116,9 @@ endif
|
||||
# General text snippets
|
||||
|
||||
FULL_COMPANY_NAME := Oracle and/or its affiliates
|
||||
COMPANY_ADDRESS := 500 Oracle Parkway<br>Redwood Shores, CA 94065 USA
|
||||
COMPANY_ADDRESS := 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
|
||||
JAVA_PLATFORM := Java™ Platform
|
||||
JAVA_PLATFORM := Java Platform
|
||||
|
||||
ifeq ($(IS_DRAFT), true)
|
||||
DRAFT_MARKER_STR := <br><strong>DRAFT $(VERSION_STRING)</strong>
|
||||
@ -127,51 +127,44 @@ ifeq ($(IS_DRAFT), true)
|
||||
else
|
||||
DRAFT_MARKER_TITLE := [build $(VERSION_BUILD)]
|
||||
endif
|
||||
DRAFT_TEXT := Please note that the specifications and other information \
|
||||
contained herein are not final and are subject to change. The \
|
||||
information is being made available to you solely for purpose of \
|
||||
evaluation.
|
||||
DRAFT_TEXT := This specification is not final and is subject to change. \
|
||||
Use is subject to <a href="$(LICENSE_URL)">license terms</a>.
|
||||
endif
|
||||
|
||||
JAVADOC_BOTTOM := \
|
||||
<span style="font-size:smaller"> \
|
||||
<a href="$(BUG_SUBMIT_URL)">Submit a bug or feature</a><br> \
|
||||
For further API reference and developer documentation, see \
|
||||
<a href="$(BUG_SUBMIT_URL)">Report a bug or suggest an enhancement</a><br> \
|
||||
For further API reference and developer documentation see the \
|
||||
<a href="$(JAVADOC_BASE_URL)" target="_blank">Java SE \
|
||||
Documentation</a>. That documentation contains more detailed, \
|
||||
developer-targeted descriptions, with conceptual overviews, definitions \
|
||||
Documentation</a>, which contains more detailed, \
|
||||
developer-targeted descriptions with conceptual overviews, definitions \
|
||||
of terms, workarounds, and working code examples.<br> \
|
||||
Java is a trademark or registered trademark of $(FULL_COMPANY_NAME) in \
|
||||
the US and other countries.<br> \
|
||||
<a href="$(COPYRIGHT_URL)">Copyright</a> \
|
||||
© 1993, $(COPYRIGHT_YEAR), $(FULL_COMPANY_NAME). \
|
||||
$(COMPANY_ADDRESS). All rights reserved. \
|
||||
Use is subject to <a href="$(LICENSE_URL)">license terms</a>. Also see the \
|
||||
© 1993, $(COPYRIGHT_YEAR), $(FULL_COMPANY_NAME), \
|
||||
$(COMPANY_ADDRESS).<br>All rights reserved. \
|
||||
Use is subject to <a href="$(LICENSE_URL)">license terms</a> and the \
|
||||
<a href="$(REDISTRIBUTION_URL)">documentation redistribution policy</a>. \
|
||||
$(DRAFT_MARKER_STR)</span>
|
||||
$(DRAFT_MARKER_STR) <!-- Version $(VERSION_STRING) -->
|
||||
|
||||
|
||||
JAVADOC_TOP := \
|
||||
<div style="background-color: $(HASH)EEEEEE"><div style="padding: 6px; \
|
||||
margin-top: 2px; margin-bottom: 6px; margin-left: 6px; margin-right: \
|
||||
6px; text-align: justify; font-size: 80%; font-family: Helvetica, Arial, \
|
||||
sans-serif; font-weight: normal;">$(DRAFT_TEXT)</div></div>
|
||||
<div style="padding: 6px; text-align: center; font-size: 80%; \
|
||||
font-family: DejaVu Sans, Arial, Helvetica, sans-serif; \
|
||||
font-weight: normal;">$(DRAFT_TEXT)</div>
|
||||
|
||||
################################################################################
|
||||
# JDK javadoc titles/text snippets
|
||||
|
||||
JDK_SHORT_NAME := JDK™ $(VERSION_SPECIFICATION)
|
||||
JDK_LONG_NAME := Standard Edition Development Kit (JDK™) $(VERSION_SPECIFICATION)
|
||||
JDK_SHORT_NAME := Java SE $(VERSION_SPECIFICATION) & JDK $(VERSION_SPECIFICATION)
|
||||
JDK_LONG_NAME := Java<sup>®</sup> Platform, Standard Edition \
|
||||
<span style="white-space: nowrap;">& Java Development Kit</span>
|
||||
|
||||
################################################################################
|
||||
# Java SE javadoc titles/text snippets
|
||||
|
||||
JAVASE_SHORT_NAME := SE $(VERSION_SPECIFICATION)
|
||||
JAVASE_LONG_NAME := Standard Edition $(VERSION_SPECIFICATION)
|
||||
|
||||
################################################################################
|
||||
# Index page text titles/snippets
|
||||
|
||||
JDK_INDEX_TITLE := $(JAVA_PLATFORM), $(JDK_LONG_NAME) Specification $(DRAFT_MARKER_TITLE)
|
||||
JAVASE_SHORT_NAME := Java SE $(VERSION_SPECIFICATION)
|
||||
JAVASE_LONG_NAME := Java<sup>®</sup> Platform, Standard Edition
|
||||
|
||||
################################################################################
|
||||
# Functions
|
||||
@ -204,24 +197,19 @@ define create_overview_file
|
||||
$1_OVERVIEW_TEXT := \
|
||||
<!DOCTYPE html> \
|
||||
<html><head></head><body> \
|
||||
<p>This document is the API specification for $$($1_FULL_NAME).</p> \
|
||||
#
|
||||
ifneq ($$($1_GROUPS),)
|
||||
$1_OVERVIEW_TEXT += \
|
||||
<p>For an overview of the full specification, grouped by usage, see the <a href="../index.html">$$(JAVA_PLATFORM), $$($1_LONG_NAME) Specification</a>.</p> \
|
||||
<dl> \
|
||||
#
|
||||
<p>This document is divided into \
|
||||
$$(subst 2,two,$$(subst 3,three,$$(words $$($1_GROUPS)))) sections:</p> \
|
||||
<blockquote><dl> \
|
||||
#
|
||||
$1_OVERVIEW_TEXT += $$(foreach g, $$($1_GROUPS), \
|
||||
<dt><a href="\#$$g">$$($$g_GROUP_NAME)</a></dt> \
|
||||
<dd>$$($$g_GROUP_DESCRIPTION)</dt> \
|
||||
<dt style="margin-top: 8px;"><a href="\#$$g">$$($$g_GROUP_NAME)</a></dt> \
|
||||
<dd style="margin-top: 8px;">$$($$g_GROUP_DESCRIPTION)</dt> \
|
||||
)
|
||||
$1_OVERVIEW_TEXT += \
|
||||
</dl> \
|
||||
#
|
||||
endif
|
||||
ifeq ($$(IS_DRAFT), true)
|
||||
$1_OVERVIEW_TEXT += \
|
||||
<p><strong>$$(DRAFT_TEXT)</strong></p> \
|
||||
</dl><blockquote> \
|
||||
#
|
||||
endif
|
||||
$1_OVERVIEW_TEXT += \
|
||||
@ -279,13 +267,16 @@ define SetupApiDocsGenerationBody
|
||||
$1_OPTIONS += -Xdoclint:all,$$(call CommaList, $$(addprefix -, \
|
||||
$$(JAVADOC_DISABLED_DOCLINT)))
|
||||
|
||||
$1_FULL_NAME := $$(JAVA_PLATFORM), $$($1_LONG_NAME) \
|
||||
$$(DRAFT_MARKER_TITLE)
|
||||
$1_DOC_TITLE := $$($1_FULL_NAME)<br>API Specification
|
||||
$1_WINDOW_TITLE := $$(subst ™,,$$(JAVA_PLATFORM) $$($1_SHORT_NAME)) \
|
||||
$1_DOC_TITLE := $$($1_LONG_NAME)<br>Version $$(VERSION_SPECIFICATION) API Specification
|
||||
$1_WINDOW_TITLE := $$(subst &,&,$$($1_SHORT_NAME)) \
|
||||
$$(DRAFT_MARKER_TITLE)
|
||||
$1_HEADER_TITLE := <strong>$$(JAVA_PLATFORM)<br>$$($1_SHORT_NAME)</strong> \
|
||||
$$(DRAFT_MARKER_STR)
|
||||
ifeq ($(VERSION_IS_GA), true) # Workaround stylesheet bug
|
||||
$1_HEADER_PAD := 14
|
||||
else
|
||||
$1_HEADER_PAD := 9
|
||||
endif
|
||||
$1_HEADER_TITLE := <div style="margin-top: $$($1_HEADER_PAD)px;"><strong>$$($1_SHORT_NAME)</strong> \
|
||||
$$(DRAFT_MARKER_STR)</div>
|
||||
|
||||
$1_OPTIONS += -doctitle '$$($1_DOC_TITLE)'
|
||||
$1_OPTIONS += -windowtitle '$$($1_WINDOW_TITLE)'
|
||||
@ -379,18 +370,18 @@ JavaSE_GROUP_NAME := Java SE
|
||||
JavaSE_GROUP_MODULES := $(call ColonList, $(sort java.se.ee \
|
||||
$(call FindTransitiveIndirectDepsForModules, java.se.ee)))
|
||||
JavaSE_GROUP_DESCRIPTION := \
|
||||
The Java Platform, Standard Edition ("Java SE") APIs define the core Java \
|
||||
platform for general-purpose computing. These APIs are in modules with \
|
||||
names starting with the string "java.". \
|
||||
The Java Platform, Standard Edition (Java SE) APIs define the core Java \
|
||||
platform for general-purpose computing. These APIs are in modules whose \
|
||||
names start with {@code java}. \
|
||||
#
|
||||
JDK_GROUPS += JavaSE
|
||||
|
||||
JDK_GROUP_NAME := JDK
|
||||
JDK_GROUP_MODULES := jdk.*
|
||||
JDK_GROUP_DESCRIPTION := \
|
||||
The Java Development Kit ("JDK") APIs define an implementation of the Java \
|
||||
SE Platform which may include platform-specific details. These APIs are in \
|
||||
modules with names starting with the string "jdk.". \
|
||||
The Java Development Kit (JDK) APIs are specific to the JDK and will not \
|
||||
necessarily be available in all implementations of the Java SE Platform. \
|
||||
These APIs are in modules whose names start with {@code jdk}. \
|
||||
#
|
||||
JDK_GROUPS += JDK
|
||||
|
||||
@ -401,9 +392,9 @@ ifneq ($(findstring javafx., $(IMPORTED_MODULES)), )
|
||||
JavaFX_GROUP_NAME := JavaFX
|
||||
JavaFX_GROUP_MODULES := javafx.*
|
||||
JavaFX_GROUP_DESCRIPTION := \
|
||||
The JavaFX APIs define a set of user interface (UI) controls, graphics, \
|
||||
The JavaFX APIs define a set of user-interface controls, graphics, \
|
||||
media, and web packages for developing rich client applications. These \
|
||||
APIs are in modules with names starting with the string "javafx.". \
|
||||
APIs are in modules whose names start with {@code javafx}. \
|
||||
#
|
||||
JDK_GROUPS += JavaFX
|
||||
endif
|
||||
@ -425,7 +416,7 @@ $(eval $(call SetupApiDocsGeneration, JDK_API, \
|
||||
################################################################################
|
||||
# Setup generation of the Java SE API documentation (javadoc + modulegraph)
|
||||
|
||||
# The Java SE module scope is just java.se.ee and it's transitive indirect
|
||||
# The Java SE module scope is just java.se.ee and its transitive indirect
|
||||
# exports.
|
||||
JAVASE_MODULES := java.se.ee
|
||||
|
||||
@ -442,17 +433,19 @@ $(eval $(call SetupApiDocsGeneration, JAVASE_API, \
|
||||
################################################################################
|
||||
|
||||
JDK_INDEX_HTML := $(DOCS_OUTPUTDIR)/index.html
|
||||
JDK_INDEX_TOOLS_DIR := $(TOOLS_CLASSES_DIR)/build/tools/docs
|
||||
|
||||
$(JDK_INDEX_HTML): $(BUILD_JIGSAW_TOOLS) \
|
||||
$(JDK_INDEX_TOOLS_DIR)/docs-bundle-page.html \
|
||||
$(JDK_INDEX_TOOLS_DIR)/docs-module-groups.properties
|
||||
$(call LogInfo, Generating docs bundle index page)
|
||||
$(MKDIR) -p $(@D)
|
||||
$(TOOL_GEN_DOCS_BUNDLE_PAGE) --title '$(JDK_INDEX_TITLE)' \
|
||||
--output $@
|
||||
JDK_INDEX_CONTENT := \
|
||||
<!DOCTYPE html> \
|
||||
<html lang="en"> \
|
||||
<head> \
|
||||
<meta http-equiv="refresh" content="0;url=api/index.html"> \
|
||||
</head> \
|
||||
</html>
|
||||
|
||||
JDK_INDEX_TARGETS := $(JDK_INDEX_HTML)
|
||||
$(JDK_INDEX_HTML):
|
||||
$(ECHO) '$(JDK_INDEX_CONTENT)' > $@
|
||||
|
||||
JDK_INDEX_TARGETS += $(JDK_INDEX_HTML)
|
||||
|
||||
# Copy the global resources
|
||||
GLOBAL_SPECS_RESOURCES_DIR := $(JDK_TOPDIR)/make/data/docs-resources/
|
||||
@ -463,6 +456,15 @@ $(eval $(call SetupCopyFiles, COPY_GLOBAL_RESOURCES, \
|
||||
))
|
||||
JDK_INDEX_TARGETS += $(COPY_GLOBAL_RESOURCES)
|
||||
|
||||
# Copy the legal notices distributed with the docs bundle
|
||||
DOCS_LEGAL_NOTICES := jquery.md jszip.md pako.md
|
||||
$(eval $(call SetupCopyFiles, COPY_DOCS_LEGAL_NOTICES, \
|
||||
SRC := $(LANGTOOLS_TOPDIR)/src/jdk.javadoc/share/legal, \
|
||||
FILES := $(DOCS_LEGAL_NOTICES), \
|
||||
DEST := $(DOCS_OUTPUTDIR)/legal, \
|
||||
))
|
||||
JDK_INDEX_TARGETS += $(COPY_DOCS_LEGAL_NOTICES)
|
||||
|
||||
################################################################################
|
||||
# Copy JDK specs files
|
||||
|
||||
|
@ -72,8 +72,11 @@ BOOT_MODULES += \
|
||||
jdk.naming.rmi \
|
||||
#
|
||||
|
||||
# Modules that directly or indirectly requiring upgradeable modules
|
||||
# should carefully be considered if it should be upgradeable or not.
|
||||
UPGRADEABLE_MODULES += \
|
||||
java.activation \
|
||||
java.compiler \
|
||||
java.corba \
|
||||
java.transaction \
|
||||
java.xml.bind \
|
||||
@ -82,10 +85,9 @@ UPGRADEABLE_MODULES += \
|
||||
jdk.internal.vm.compiler \
|
||||
#
|
||||
|
||||
# Modules explicitly declared as not being upgradeable even though they require
|
||||
# an upgradeable module.
|
||||
NON_UPGRADEABLE_MODULES += \
|
||||
jdk.aot \
|
||||
UPGRADEABLE_TOOL_MODULES += \
|
||||
jdk.xml.bind \
|
||||
jdk.xml.ws \
|
||||
#
|
||||
|
||||
AGGREGATOR_MODULES += \
|
||||
@ -99,7 +101,6 @@ PLATFORM_MODULES += \
|
||||
#
|
||||
|
||||
PLATFORM_MODULES += \
|
||||
java.compiler \
|
||||
java.scripting \
|
||||
java.security.jgss \
|
||||
java.smartcardio \
|
||||
@ -175,13 +176,10 @@ DOCS_MODULES += \
|
||||
jdk.policytool \
|
||||
jdk.rmic \
|
||||
jdk.scripting.nashorn \
|
||||
jdk.scripting.nashorn.shell \
|
||||
jdk.sctp \
|
||||
jdk.security.auth \
|
||||
jdk.security.jgss \
|
||||
jdk.xml.bind \
|
||||
jdk.xml.dom \
|
||||
jdk.xml.ws \
|
||||
jdk.zipfs \
|
||||
#
|
||||
|
||||
@ -384,15 +382,8 @@ FindTransitiveIndirectDepsForModules = \
|
||||
# Upgradeable modules are those that are either defined as upgradeable or that
|
||||
# require an upradeable module.
|
||||
FindAllUpgradeableModules = \
|
||||
$(filter-out $(MODULES_FILTER) $(NON_UPGRADEABLE_MODULES), \
|
||||
$(sort $(UPGRADEABLE_MODULES) $(foreach m, \
|
||||
$(filter-out $(UPGRADEABLE_MODULES), $(call FindAllModules)), \
|
||||
$(if $(filter $(UPGRADEABLE_MODULES), \
|
||||
$(call FindTransitiveDepsForModule, $m)), \
|
||||
$m \
|
||||
) \
|
||||
)) \
|
||||
)
|
||||
$(sort $(filter-out $(MODULES_FILTER), $(UPGRADEABLE_MODULES) $(UPGRADEABLE_TOOL_MODULES)))
|
||||
|
||||
|
||||
################################################################################
|
||||
|
||||
|
@ -23,10 +23,9 @@
|
||||
|
||||
package jdk.test.lib;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.io.RandomAccessFile;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public class Platform {
|
||||
@ -208,12 +207,13 @@ public class Platform {
|
||||
* Return a boolean for whether we expect to be able to attach
|
||||
* the SA to our own processes on this system.
|
||||
*/
|
||||
public static boolean shouldSAAttach() throws Exception {
|
||||
|
||||
public static boolean shouldSAAttach() throws IOException {
|
||||
if (isAix()) {
|
||||
return false; // SA not implemented.
|
||||
return false; // SA not implemented.
|
||||
} else if (isLinux()) {
|
||||
if (isS390x()) { return false; } // SA not implemented.
|
||||
if (isS390x()) {
|
||||
return false; // SA not implemented.
|
||||
}
|
||||
return canPtraceAttachLinux();
|
||||
} else if (isOSX()) {
|
||||
return canAttachOSX();
|
||||
@ -229,13 +229,15 @@ public class Platform {
|
||||
* if we are root, so return true. Then return false for an expected denial
|
||||
* if "ptrace_scope" is 1, and true otherwise.
|
||||
*/
|
||||
public static boolean canPtraceAttachLinux() throws Exception {
|
||||
|
||||
private static boolean canPtraceAttachLinux() throws IOException {
|
||||
// SELinux deny_ptrace:
|
||||
String deny_ptrace = fileAsString("/sys/fs/selinux/booleans/deny_ptrace");
|
||||
if (deny_ptrace != null && deny_ptrace.contains("1")) {
|
||||
// ptrace will be denied:
|
||||
return false;
|
||||
File deny_ptrace = new File("/sys/fs/selinux/booleans/deny_ptrace");
|
||||
if (deny_ptrace.exists()) {
|
||||
try (RandomAccessFile file = new RandomAccessFile(deny_ptrace, "r")) {
|
||||
if (file.readByte() != '0') {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// YAMA enhanced security ptrace_scope:
|
||||
@ -243,14 +245,17 @@ public class Platform {
|
||||
// 1 - restricted ptrace: a process must be a children of the inferior or user is root
|
||||
// 2 - only processes with CAP_SYS_PTRACE may use ptrace or user is root
|
||||
// 3 - no attach: no processes may use ptrace with PTRACE_ATTACH
|
||||
String ptrace_scope = fileAsString("/proc/sys/kernel/yama/ptrace_scope");
|
||||
if (ptrace_scope != null) {
|
||||
if (ptrace_scope.startsWith("3")) {
|
||||
return false;
|
||||
}
|
||||
if (!userName.equals("root") && !ptrace_scope.startsWith("0")) {
|
||||
// ptrace will be denied:
|
||||
return false;
|
||||
File ptrace_scope = new File("/proc/sys/kernel/yama/ptrace_scope");
|
||||
if (ptrace_scope.exists()) {
|
||||
try (RandomAccessFile file = new RandomAccessFile(ptrace_scope, "r")) {
|
||||
byte yama_scope = file.readByte();
|
||||
if (yama_scope == '3') {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!userName.equals("root") && yama_scope != '0') {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Otherwise expect to be permitted:
|
||||
@ -260,7 +265,7 @@ public class Platform {
|
||||
/**
|
||||
* On OSX, expect permission to attach only if we are root.
|
||||
*/
|
||||
public static boolean canAttachOSX() throws Exception {
|
||||
private static boolean canAttachOSX() {
|
||||
return userName.equals("root");
|
||||
}
|
||||
|
||||
@ -269,10 +274,4 @@ public class Platform {
|
||||
.matcher(osArch)
|
||||
.matches();
|
||||
}
|
||||
|
||||
private static String fileAsString(String filename) throws IOException {
|
||||
Path filePath = Paths.get(filename);
|
||||
if (!Files.exists(filePath)) return null;
|
||||
return new String(Files.readAllBytes(filePath));
|
||||
}
|
||||
}
|
||||
|
@ -453,7 +453,6 @@ public class WhiteBox {
|
||||
Object[] packages);
|
||||
public native void AddModuleExports(Object from_module, String pkg, Object to_module);
|
||||
public native void AddReadsModule(Object from_module, Object source_module);
|
||||
public native void AddModulePackage(Object module, String pkg);
|
||||
public native void AddModuleExportsToAllUnnamed(Object module, String pkg);
|
||||
public native void AddModuleExportsToAll(Object module, String pkg);
|
||||
public native Object GetModuleByPackageName(Object ldr, String pkg);
|
||||
|
Loading…
Reference in New Issue
Block a user