author | ihse |
Thu, 30 Nov 2017 00:31:24 +0100 | |
branch | ihse-testmakefiles-branch |
changeset 55921 | 60356323be38 |
parent 55915 | edbc895d637b |
child 55926 | 61412cf6fc17 |
permissions | -rw-r--r-- |
4947 | 1 |
# |
55893 | 2 |
# Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved. |
4947 | 3 |
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 |
# |
|
5 |
# This code is free software; you can redistribute it and/or modify it |
|
6 |
# under the terms of the GNU General Public License version 2 only, as |
|
5499 | 7 |
# published by the Free Software Foundation. Oracle designates this |
4947 | 8 |
# particular file as subject to the "Classpath" exception as provided |
5499 | 9 |
# by Oracle in the LICENSE file that accompanied this code. |
4947 | 10 |
# |
11 |
# This code is distributed in the hope that it will be useful, but WITHOUT |
|
12 |
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
13 |
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
14 |
# version 2 for more details (a copy is included in the LICENSE file that |
|
15 |
# accompanied this code). |
|
16 |
# |
|
17 |
# You should have received a copy of the GNU General Public License version |
|
18 |
# 2 along with this work; if not, write to the Free Software Foundation, |
|
19 |
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
|
20 |
# |
|
5499 | 21 |
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
22 |
# or visit www.oracle.com if you need additional information or have any |
|
23 |
# questions. |
|
4947 | 24 |
# |
25 |
||
26 |
# |
|
27 |
# Makefile to run tests from multiple sibling directories |
|
28 |
# |
|
29 |
||
55893 | 30 |
# Locate this Makefile |
31 |
ifeq ($(filter /%, $(lastword $(MAKEFILE_LIST))),) |
|
32 |
makefile_path := $(CURDIR)/$(strip $(lastword $(MAKEFILE_LIST))) |
|
33 |
else |
|
34 |
makefile_path := $(lastword $(MAKEFILE_LIST)) |
|
35 |
endif |
|
36 |
TOPDIR ?= $(strip $(patsubst %/test/, %, $(dir $(makefile_path)))) |
|
37 |
||
4947 | 38 |
# Macro to run a test target in a subdir |
39 |
define SUBDIR_TEST # subdirectory target |
|
40 |
if [ -d $1 ] ; then \ |
|
47218 | 41 |
if [ -r $1/Makefile ] ; then \ |
42 |
$(MAKE) --no-print-directory -k -C $1 $2 ; \ |
|
4947 | 43 |
else \ |
47218 | 44 |
echo "ERROR: File does not exist: $1/Makefile"; \ |
5115
204e24e427b0
6936788: Minor adjustment to top repo test/Makefile, missing non-zero exit case
ohair
parents:
5112
diff
changeset
|
45 |
exit 1; \ |
4947 | 46 |
fi; \ |
47 |
else \ |
|
48 |
echo "WARNING: No testing done, directory does not exist: $1"; \ |
|
49 |
fi |
|
50 |
endef |
|
51 |
||
15577
0ed5f9a7f454
8006595: Use jdk/test/Makefile targets in preference to local definitions
mduigou
parents:
15173
diff
changeset
|
52 |
# Default test target (core) |
28006
ebad70f3aa9f
8065673: XML Test Colo: Add test build system for JAXP tests
joehw
parents:
25461
diff
changeset
|
53 |
default: jdk_core langtools_jtreg jaxp_all |
11242 | 54 |
|
55 |
# All testing |
|
28006
ebad70f3aa9f
8065673: XML Test Colo: Add test build system for JAXP tests
joehw
parents:
25461
diff
changeset
|
56 |
all: jdk_all langtools_all jaxp_all |
4947 | 57 |
|
34594
7e0595aab028
8139272: Add configure variable to set concurrency for jtreg tests
ehelin
parents:
32565
diff
changeset
|
58 |
ifeq ($(TEST_JOBS), 0) |
47938 | 59 |
JDK_TEST_JOBS=$(JOBS) |
34594
7e0595aab028
8139272: Add configure variable to set concurrency for jtreg tests
ehelin
parents:
32565
diff
changeset
|
60 |
else |
7e0595aab028
8139272: Add configure variable to set concurrency for jtreg tests
ehelin
parents:
32565
diff
changeset
|
61 |
JDK_TEST_JOBS=$(TEST_JOBS) |
7e0595aab028
8139272: Add configure variable to set concurrency for jtreg tests
ehelin
parents:
32565
diff
changeset
|
62 |
endif |
4947 | 63 |
# Test targets |
19520
527f461b65a3
8023491: Remove target names from test/Makefile and defer to sub-repo makefiles.
mduigou
parents:
15577
diff
changeset
|
64 |
langtools_% : |
47221
3b201865d5c1
8187642: The consolidated repo test makefile disables CONCURRENCY setting to jtreg
erikj
parents:
47218
diff
changeset
|
65 |
@$(NO_STOPPING)$(call SUBDIR_TEST, langtools, \ |
3b201865d5c1
8187642: The consolidated repo test makefile disables CONCURRENCY setting to jtreg
erikj
parents:
47218
diff
changeset
|
66 |
$(if $(JDK_TEST_JOBS), CONCURRENCY=$(JDK_TEST_JOBS)) \ |
47218 | 67 |
JT_JAVA=$(PRODUCT_HOME) JTREG_HOME=$(JT_HOME) \ |
68 |
TEST="$(subst langtools_,,$@)" $(subst langtools_,,$@)) |
|
15577
0ed5f9a7f454
8006595: Use jdk/test/Makefile targets in preference to local definitions
mduigou
parents:
15173
diff
changeset
|
69 |
|
21760
9f542d8601a8
8028478: Re-visit JPRT testsets to make it easier to run subsets of the tests
alanb
parents:
19522
diff
changeset
|
70 |
jdk_% core_%s svc_%: |
47221
3b201865d5c1
8187642: The consolidated repo test makefile disables CONCURRENCY setting to jtreg
erikj
parents:
47218
diff
changeset
|
71 |
@$(NO_STOPPING)$(call SUBDIR_TEST, jdk, \ |
3b201865d5c1
8187642: The consolidated repo test makefile disables CONCURRENCY setting to jtreg
erikj
parents:
47218
diff
changeset
|
72 |
$(if $(JDK_TEST_JOBS), CONCURRENCY=$(JDK_TEST_JOBS)) TEST="$@" $@) |
4947 | 73 |
|
28006
ebad70f3aa9f
8065673: XML Test Colo: Add test build system for JAXP tests
joehw
parents:
25461
diff
changeset
|
74 |
jaxp_%: |
47221
3b201865d5c1
8187642: The consolidated repo test makefile disables CONCURRENCY setting to jtreg
erikj
parents:
47218
diff
changeset
|
75 |
@$(NO_STOPPING)$(call SUBDIR_TEST, jaxp, \ |
3b201865d5c1
8187642: The consolidated repo test makefile disables CONCURRENCY setting to jtreg
erikj
parents:
47218
diff
changeset
|
76 |
$(if $(JDK_TEST_JOBS), CONCURRENCY=$(JDK_TEST_JOBS)) TEST="$@" $@) |
47218 | 77 |
|
78 |
nashorn_%: |
|
47221
3b201865d5c1
8187642: The consolidated repo test makefile disables CONCURRENCY setting to jtreg
erikj
parents:
47218
diff
changeset
|
79 |
@$(NO_STOPPING)$(call SUBDIR_TEST, nashorn, \ |
3b201865d5c1
8187642: The consolidated repo test makefile disables CONCURRENCY setting to jtreg
erikj
parents:
47218
diff
changeset
|
80 |
$(if $(JDK_TEST_JOBS), CONCURRENCY=$(JDK_TEST_JOBS)) TEST="$@" $@) |
28006
ebad70f3aa9f
8065673: XML Test Colo: Add test build system for JAXP tests
joehw
parents:
25461
diff
changeset
|
81 |
|
41648
12f2a158f88b
8166738: Enable concurrency in Hotspot jtreg testing
ctornqvi
parents:
37863
diff
changeset
|
82 |
SUB_MAKE_ARGS := |
12f2a158f88b
8166738: Enable concurrency in Hotspot jtreg testing
ctornqvi
parents:
37863
diff
changeset
|
83 |
ifneq ($(TEST_JOBS), 0) |
12f2a158f88b
8166738: Enable concurrency in Hotspot jtreg testing
ctornqvi
parents:
37863
diff
changeset
|
84 |
ifneq ($(TEST_JOBS), ) |
12f2a158f88b
8166738: Enable concurrency in Hotspot jtreg testing
ctornqvi
parents:
37863
diff
changeset
|
85 |
SUB_MAKE_ARGS += CONCURRENCY=$(TEST_JOBS) |
12f2a158f88b
8166738: Enable concurrency in Hotspot jtreg testing
ctornqvi
parents:
37863
diff
changeset
|
86 |
endif |
34594
7e0595aab028
8139272: Add configure variable to set concurrency for jtreg tests
ehelin
parents:
32565
diff
changeset
|
87 |
endif |
24419
b06dcd11db3f
8042804: Support invoking Hotspot tests from top level
mikael
parents:
21760
diff
changeset
|
88 |
hotspot_%: |
47218 | 89 |
@$(NO_STOPPING)$(call SUBDIR_TEST, hotspot/jtreg, $(SUB_MAKE_ARGS) TEST="$@" $@) |
24419
b06dcd11db3f
8042804: Support invoking Hotspot tests from top level
mikael
parents:
21760
diff
changeset
|
90 |
|
25461
2842cbf0da97
8050825: Support running regression tests using jtreg_tests+TESTDIRS from top level
mikael
parents:
24419
diff
changeset
|
91 |
# |
2842cbf0da97
8050825: Support running regression tests using jtreg_tests+TESTDIRS from top level
mikael
parents:
24419
diff
changeset
|
92 |
# jtreg_tests |
2842cbf0da97
8050825: Support running regression tests using jtreg_tests+TESTDIRS from top level
mikael
parents:
24419
diff
changeset
|
93 |
# |
2842cbf0da97
8050825: Support running regression tests using jtreg_tests+TESTDIRS from top level
mikael
parents:
24419
diff
changeset
|
94 |
# Invocation: |
2842cbf0da97
8050825: Support running regression tests using jtreg_tests+TESTDIRS from top level
mikael
parents:
24419
diff
changeset
|
95 |
# |
37863 | 96 |
# make jtreg_tests TESTDIRS=<test-dirs> TEST_SELECTION=<path to test or jtreg group> TEST_OUTPUT_DIR=<path> |
25461
2842cbf0da97
8050825: Support running regression tests using jtreg_tests+TESTDIRS from top level
mikael
parents:
24419
diff
changeset
|
97 |
# |
2842cbf0da97
8050825: Support running regression tests using jtreg_tests+TESTDIRS from top level
mikael
parents:
24419
diff
changeset
|
98 |
# where <test-dirs> is something like '../<component>/test/runtime', |
2842cbf0da97
8050825: Support running regression tests using jtreg_tests+TESTDIRS from top level
mikael
parents:
24419
diff
changeset
|
99 |
# <component> in turn being one of the top level directories (for |
2842cbf0da97
8050825: Support running regression tests using jtreg_tests+TESTDIRS from top level
mikael
parents:
24419
diff
changeset
|
100 |
# example 'hotspot'). |
2842cbf0da97
8050825: Support running regression tests using jtreg_tests+TESTDIRS from top level
mikael
parents:
24419
diff
changeset
|
101 |
# |
2842cbf0da97
8050825: Support running regression tests using jtreg_tests+TESTDIRS from top level
mikael
parents:
24419
diff
changeset
|
102 |
# The below will strip the path prefix and delegate to the |
2842cbf0da97
8050825: Support running regression tests using jtreg_tests+TESTDIRS from top level
mikael
parents:
24419
diff
changeset
|
103 |
# corresponding ../<component>/test/Makefile. |
2842cbf0da97
8050825: Support running regression tests using jtreg_tests+TESTDIRS from top level
mikael
parents:
24419
diff
changeset
|
104 |
|
2842cbf0da97
8050825: Support running regression tests using jtreg_tests+TESTDIRS from top level
mikael
parents:
24419
diff
changeset
|
105 |
ifneq ($(TESTDIRS),) |
47218 | 106 |
# Extract the component from ../test/<component>/... |
107 |
TESTDIRS_NORM := $(patsubst test/%, %, $(patsubst ../%, %, $(TESTDIRS))) |
|
108 |
COMPONENT := $(word 1,$(subst /, ,$(TESTDIRS_NORM))) |
|
25461
2842cbf0da97
8050825: Support running regression tests using jtreg_tests+TESTDIRS from top level
mikael
parents:
24419
diff
changeset
|
109 |
|
47218 | 110 |
# Strip off the ../<component>/test prefix and pass the rest as TESTDIRS |
111 |
# to the delegate Makefile |
|
112 |
# The hotspot tests are in a subdir "java". Accept paths both including |
|
113 |
# and excluding this extra subdir |
|
114 |
TESTDIRS_TESTS := $(patsubst $(COMPONENT)/%,%,$(patsubst hotspot/jtreg/%,%, \ |
|
115 |
$(patsubst ../%, %, $(TESTDIRS_NORM)))) |
|
25461
2842cbf0da97
8050825: Support running regression tests using jtreg_tests+TESTDIRS from top level
mikael
parents:
24419
diff
changeset
|
116 |
endif |
2842cbf0da97
8050825: Support running regression tests using jtreg_tests+TESTDIRS from top level
mikael
parents:
24419
diff
changeset
|
117 |
|
55893 | 118 |
ifneq ($(USE_RUN_TEST), ) |
55899 | 119 |
MKDIR=mkdir |
120 |
MV=mv |
|
121 |
HEAD=head |
|
122 |
||
55893 | 123 |
jtreg_tests: |
55899 | 124 |
cd $(TOPDIR) && \ |
55893 | 125 |
$(MAKE) --no-print-directory -r -R -I make/common/ -f make/RunTestsPrebuilt.gmk \ |
126 |
run-test-prebuilt OUTPUTDIR=$(TEST_OUTPUT_DIR) BOOT_JDK=$(JT_JAVA) \ |
|
127 |
JT_HOME=$(JT_HOME) JDK_IMAGE_DIR=$(PRODUCT_HOME) \ |
|
55899 | 128 |
TEST_IMAGE_DIR=$(TEST_IMAGE_DIR) TEST="$(patsubst ../%,%,$(TESTDIRS)):$(TEST_SELECTION)" |
129 |
$(MKDIR) -p $(TEST_OUTPUT_DIR)/jtreg |
|
130 |
$(MV) $(TEST_OUTPUT_DIR)/test-results/`$(HEAD) -n 1 $(TEST_OUTPUT_DIR)/test-support/test-last-ids.txt` $(TEST_OUTPUT_DIR)/jtreg/JTreport |
|
131 |
$(MV) $(TEST_OUTPUT_DIR)/test-support/`$(HEAD) -n 1 $(TEST_OUTPUT_DIR)/test-support/test-last-ids.txt` $(TEST_OUTPUT_DIR)/jtreg/JTwork |
|
55915 | 132 |
$(MV) $(TEST_OUTPUT_DIR)/jtreg/JTreport/exitcode.txt $(TEST_OUTPUT_DIR)/jtreg/exitcode.txt |
55921 | 133 |
$(RM) -f $(MAKESUPPORT_OUTPUTDIR)/exit-with-error |
55893 | 134 |
else |
135 |
jtreg_tests: |
|
47218 | 136 |
$(MAKE) --no-print-directory TESTDIRS=$(TESTDIRS_TESTS) \ |
137 |
$(COMPONENT)_jtreg_tests |
|
55893 | 138 |
endif |
4947 | 139 |
################################################################ |
140 |
||
141 |
# Phony targets (e.g. these are not filenames) |
|
19520
527f461b65a3
8023491: Remove target names from test/Makefile and defer to sub-repo makefiles.
mduigou
parents:
15577
diff
changeset
|
142 |
.PHONY: all clean |
4947 | 143 |
|
144 |
################################################################ |