Joe,
These lines in langtools/test/TEST.groups look like they belong, with
appropriate tweaking, in langtools/test/Makefile
37 # Support for invoking tiered testing via the Makefile
38 #langtools_tier1 = :tier1
39 #langtools_tier2 = :tier2
40 #langtools_tier3 = :tier3
Or more specifically, there are no updates in langtools/test/Makefile to
tie the test targets from test/Makefile into test groups.
You probably want to add tier1 tier2 tier3 to this line in
langtools/test/Makefile
jtreg apt javac javadoc javah javap jdeps tier1 tier2 tier3:
$(JPRT_CLEAN) jtreg-tests $(JPRT_ARCHIVE_BUNDLE) jtreg-summary
@echo "Testing completed successfully"
And add some macros to set the TESTDIRS for each of tier*
all: JTREG_TESTDIRS = .
jtreg: JTREG_TESTDIRS = .
tier1: JTREG_TESTDIRS = :tier1
tier2: JTREG_TESTDIRS = :tier2
tier3: JTREG_TESTDIRS = :tier3
And, at some point, we should try and rationalize the various
*/test/Makefile.
-- Jon
On 06/02/2015 10:52 PM, joe darcy wrote:
Thanks for the pointers Jon.
A not-quite-finished version of this work is up at
http://cr.openjdk.java.net/~darcy/8075571.0/
The nashorn test makefile is copied from the jaxp one with
s/jaxp/nashorn/g.
While I'm at it, I think it is worthwhile to add support nominal
support for tier 3 tests since there are at least some tier 3 tests
we'll want to add in the future.
The top-level filtering of the langtools targets isn't quite working
as desired; a colon to indicate a test group is not getting passed
along. Some different filtering of the langtools arguments is needed?
Thanks,
-Joe
On 6/2/2015 2:21 PM, Jonathan Gibbons wrote:
Joe,
The magic you need to manipulate is lines 54-71 (approx) in
test/Makefile.
# Default test target (core)
default: jdk_core langtools_jtreg jaxp_all
# All testing
all: jdk_all langtools_all jaxp_all
# Test targets
langtools_% :
@$(NO_STOPPING)$(call SUBDIR_TEST, $(LANGTOOLS_DIR),
JT_JAVA=$(PRODUCT_HOME) JTREG_HOME=$(JT_HOME) TEST="$(subst
langtools_,,$@)" $(subst langtools_,,$@))
jdk_% core_%s svc_%:
@$(NO_STOPPING)$(call SUBDIR_TEST, $(JDK_DIR), TEST="$@" $@)
jaxp_%:
@$(NO_STOPPING)$(call SUBDIR_TEST, $(JAXP_DIR), TEST="$@" $@)
hotspot_%:
@$(NO_STOPPING)$(call SUBDIR_TEST, $(HOTSPOT_DIR), TEST="$@" $@)
These lines set up how test targets are mapped into individual
targets in the individual repos. Note the pattern-matching rules
for langtools_%, jdk_%, jaxp_%, hotspot%
To add a new top level :tier1 target, I would copy the "all" target
and add something like
tier1: jdk_tier1 langtools_tier1 jaxp_tier1
(i.e. delegating to all repos that support a :tier1 test target).
You will want to add a tier1 target into langtools/test/Makefile for
this to work, because the langtools_% target strips off the
"langtools_" prefix
For other repos, make sure there is a jdk-tier1 target, jaxp-tier1
target, etc, since no prefix stripping is done on those targets.
You might want to consider whether to (or not to) run the test
targets in parallel. Depending how the individual repo test targets
are set up, you could easily swamp your machine if you run too many
invocations of jtreg in parallel.
-- Jon
On 06/02/2015 01:04 PM, joe darcy wrote:
Hello makefile gurus,
To provide the next level of support to the tiered testing policy
[1], I'd like to get some advice on how best to tackle
JDK-8075571: Support tier1 and tier2 make targets
From the bug, currently one can invoke test groups like so:
make test-only TEST=jdk_lang
That this, this above make command will run the tests in the
":jdk_lang" test group. By applying the simple edit
diff -r df4d75f58f15 test/Makefile
--- a/test/Makefile Thu May 28 11:31:40 2015 -0700
+++ b/test/Makefile Tue Jun 02 13:00:06 2015 -0700
@@ -263,7 +263,7 @@
# ------------------------------------------------------------------
-jdk_% core_% svc_%:
+jdk_% core_% svc_% tier%:
$(ECHO) "Running tests: $@"
for each in $@; do \
$(MAKE) -j 1 TEST_SELECTION=":$$each" UNIQUE_DIR=$$each
jtreg_tests; \
to the test/Makefile, I was hoping
make test-only TEST=tier1
would in turn be able to run the ":tier1" test group. But alas, that
does not occur and I don't see what is (not) happening for that
omission to take place.
Thanks,
-Joe
[1]
http://mail.openjdk.java.net/pipermail/jdk9-dev/2015-March/001991.html