author | tbell |
Fri, 07 Oct 2016 20:48:39 -0700 | |
changeset 41449 | de8df2220540 |
parent 39102 | 5a820f7e00b9 |
child 41520 | b73242db5c5b |
permissions | -rw-r--r-- |
10 | 1 |
# |
5214 | 2 |
# Makefile to run jtreg and other tests |
3 |
# |
|
4 |
||
5 |
# Product builds and langtools builds |
|
6 |
# |
|
7 |
# A full product build (or "control" build) creates a complete JDK image. |
|
8 |
# To test a product build, set TESTJAVA to the path for the image. |
|
10 | 9 |
# |
20602
88692440ebd1
8024842: Define ABS_TEST_OUTPUT_DIR via TEST_OUTPUT_DIR
mduigou
parents:
15384
diff
changeset
|
10 |
# A langtools build just builds the langtools components of a JDK. |
5214 | 11 |
# To test a langtools build, set TESTJAVA to the path for a recent JDK |
12 |
# build, and set TESTBOOTCLASSPATH to the compiled langtools classes -- |
|
13 |
# for example build/classes or dist/lib/classes.jar. |
|
14 |
||
15 |
# JPRT |
|
16 |
# JPRT may invoke this Makefile directly, as part of a langtools build, |
|
17 |
# or indirectly, via FOREST/test/Makefile, as part of a control build. |
|
10 | 18 |
|
19 |
# Get OS/ARCH specifics |
|
20 |
OSNAME = $(shell uname -s) |
|
21 |
ifeq ($(OSNAME), SunOS) |
|
10947
47788da3eb3f
7101933: langtools jtreg tests do not work with jprt on windows
jjh
parents:
5652
diff
changeset
|
22 |
SLASH_JAVA = /java |
10 | 23 |
PLATFORM = solaris |
24 |
ARCH = $(shell uname -p) |
|
25 |
ifeq ($(ARCH), i386) |
|
26 |
ARCH=i586 |
|
27 |
endif |
|
28 |
endif |
|
29 |
ifeq ($(OSNAME), Linux) |
|
10947
47788da3eb3f
7101933: langtools jtreg tests do not work with jprt on windows
jjh
parents:
5652
diff
changeset
|
30 |
SLASH_JAVA = /java |
10 | 31 |
PLATFORM = linux |
32 |
ARCH = $(shell uname -m) |
|
33 |
ifeq ($(ARCH), i386) |
|
34 |
ARCH=i586 |
|
35 |
endif |
|
36 |
endif |
|
12084
b367473ef0f1
7113349: Initial changeset for Macosx port to jdk
michaelm
parents:
10947
diff
changeset
|
37 |
ifeq ($(OSNAME), Darwin) |
b367473ef0f1
7113349: Initial changeset for Macosx port to jdk
michaelm
parents:
10947
diff
changeset
|
38 |
PLATFORM = bsd |
b367473ef0f1
7113349: Initial changeset for Macosx port to jdk
michaelm
parents:
10947
diff
changeset
|
39 |
ARCH = $(shell uname -m) |
b367473ef0f1
7113349: Initial changeset for Macosx port to jdk
michaelm
parents:
10947
diff
changeset
|
40 |
ifeq ($(ARCH), i386) |
b367473ef0f1
7113349: Initial changeset for Macosx port to jdk
michaelm
parents:
10947
diff
changeset
|
41 |
ARCH=i586 |
b367473ef0f1
7113349: Initial changeset for Macosx port to jdk
michaelm
parents:
10947
diff
changeset
|
42 |
endif |
b367473ef0f1
7113349: Initial changeset for Macosx port to jdk
michaelm
parents:
10947
diff
changeset
|
43 |
endif |
10 | 44 |
ifeq ($(OSNAME), Windows_NT) |
10947
47788da3eb3f
7101933: langtools jtreg tests do not work with jprt on windows
jjh
parents:
5652
diff
changeset
|
45 |
# MKS |
47788da3eb3f
7101933: langtools jtreg tests do not work with jprt on windows
jjh
parents:
5652
diff
changeset
|
46 |
PLATFORM=windows |
47788da3eb3f
7101933: langtools jtreg tests do not work with jprt on windows
jjh
parents:
5652
diff
changeset
|
47 |
endif |
47788da3eb3f
7101933: langtools jtreg tests do not work with jprt on windows
jjh
parents:
5652
diff
changeset
|
48 |
ifeq ($(PLATFORM),) |
10 | 49 |
PLATFORM = windows |
10947
47788da3eb3f
7101933: langtools jtreg tests do not work with jprt on windows
jjh
parents:
5652
diff
changeset
|
50 |
CYGPATH = | cygpath -m -s -f - |
47788da3eb3f
7101933: langtools jtreg tests do not work with jprt on windows
jjh
parents:
5652
diff
changeset
|
51 |
endif |
47788da3eb3f
7101933: langtools jtreg tests do not work with jprt on windows
jjh
parents:
5652
diff
changeset
|
52 |
|
47788da3eb3f
7101933: langtools jtreg tests do not work with jprt on windows
jjh
parents:
5652
diff
changeset
|
53 |
ifeq ($(PLATFORM), windows) |
47788da3eb3f
7101933: langtools jtreg tests do not work with jprt on windows
jjh
parents:
5652
diff
changeset
|
54 |
SLASH_JAVA = J: |
10 | 55 |
ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),ia64) |
56 |
ARCH=ia64 |
|
57 |
else |
|
58 |
ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),AMD64) |
|
59 |
ARCH=x64 |
|
60 |
else |
|
61 |
ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),EM64T) |
|
62 |
ARCH=x64 |
|
63 |
else |
|
64 |
ARCH=i586 |
|
65 |
endif |
|
66 |
endif |
|
67 |
endif |
|
5652
89482b760ef7
6954901: langtools/test/Makefile should check for bin/javac(.exe) instead of lib/tools.jar
jjg
parents:
5647
diff
changeset
|
68 |
EXE_SUFFIX=.exe |
10 | 69 |
endif |
70 |
||
71 |
# Root of this test area (important to use full paths in some places) |
|
10947
47788da3eb3f
7101933: langtools jtreg tests do not work with jprt on windows
jjh
parents:
5652
diff
changeset
|
72 |
TEST_ROOT := $(shell pwd $(CYGPATH) ) |
10 | 73 |
|
5214 | 74 |
# Default bundle of all test results (passed or not) (JPRT only) |
75 |
ifdef JPRT_JOB_ID |
|
76 |
JPRT_CLEAN = clean |
|
77 |
JPRT_ARCHIVE_BUNDLE = $(TEST_ROOT)/JPRT_ARCHIVE_BUNDLE.zip |
|
78 |
endif |
|
10 | 79 |
|
80 |
ifeq ($(PLATFORM), windows) |
|
81 |
SLASH_JAVA = J: |
|
82 |
else |
|
83 |
SLASH_JAVA = /java |
|
84 |
endif |
|
85 |
||
86 |
# Default JTREG to run |
|
39102
5a820f7e00b9
8158992: langtools/test/Makefile: improve support for control via variables
dlsmith
parents:
37941
diff
changeset
|
87 |
ifndef JTREG_HOME |
5a820f7e00b9
8158992: langtools/test/Makefile: improve support for control via variables
dlsmith
parents:
37941
diff
changeset
|
88 |
ifdef JPRT_JTREG_HOME |
5a820f7e00b9
8158992: langtools/test/Makefile: improve support for control via variables
dlsmith
parents:
37941
diff
changeset
|
89 |
JTREG_HOME = $(JPRT_JTREG_HOME) |
5a820f7e00b9
8158992: langtools/test/Makefile: improve support for control via variables
dlsmith
parents:
37941
diff
changeset
|
90 |
else ifdef JT_HOME |
5a820f7e00b9
8158992: langtools/test/Makefile: improve support for control via variables
dlsmith
parents:
37941
diff
changeset
|
91 |
JTREG_HOME = $(JT_HOME) |
5a820f7e00b9
8158992: langtools/test/Makefile: improve support for control via variables
dlsmith
parents:
37941
diff
changeset
|
92 |
else |
5a820f7e00b9
8158992: langtools/test/Makefile: improve support for control via variables
dlsmith
parents:
37941
diff
changeset
|
93 |
JTREG_HOME = $(SLASH_JAVA)/re/jtreg/4.2/promoted/latest/ |
5a820f7e00b9
8158992: langtools/test/Makefile: improve support for control via variables
dlsmith
parents:
37941
diff
changeset
|
94 |
endif |
3779 | 95 |
endif |
28141
a9bd48f9cf07
8066808: langtools/test/Makefile should not use OS-specific jtreg binary
jjg
parents:
28140
diff
changeset
|
96 |
JTREG = $(JTREG_HOME)/bin/jtreg |
a9bd48f9cf07
8066808: langtools/test/Makefile should not use OS-specific jtreg binary
jjg
parents:
28140
diff
changeset
|
97 |
JTDIFF = $(JTREG_HOME)/bin/jtdiff |
10 | 98 |
|
36526 | 99 |
# Problematic tests to be excluded |
100 |
PROBLEM_LISTS=ProblemList.txt |
|
101 |
||
102 |
# Create exclude list for this platform and arch |
|
103 |
ifdef NO_EXCLUDES |
|
104 |
JTREG_EXCLUSIONS = |
|
105 |
else |
|
106 |
JTREG_EXCLUSIONS = $(PROBLEM_LISTS:%=-exclude:%) |
|
107 |
endif |
|
108 |
||
5214 | 109 |
# Default JCK to run |
39102
5a820f7e00b9
8158992: langtools/test/Makefile: improve support for control via variables
dlsmith
parents:
37941
diff
changeset
|
110 |
ifndef JCK_HOME |
5a820f7e00b9
8158992: langtools/test/Makefile: improve support for control via variables
dlsmith
parents:
37941
diff
changeset
|
111 |
ifdef JPRT_JCK_HOME |
5a820f7e00b9
8158992: langtools/test/Makefile: improve support for control via variables
dlsmith
parents:
37941
diff
changeset
|
112 |
JCK_HOME = $(JPRT_JCK_HOME) |
5a820f7e00b9
8158992: langtools/test/Makefile: improve support for control via variables
dlsmith
parents:
37941
diff
changeset
|
113 |
else |
5a820f7e00b9
8158992: langtools/test/Makefile: improve support for control via variables
dlsmith
parents:
37941
diff
changeset
|
114 |
JCK_HOME = $(SLASH_JAVA)/re/jck/8/promoted/latest/binaries |
5a820f7e00b9
8158992: langtools/test/Makefile: improve support for control via variables
dlsmith
parents:
37941
diff
changeset
|
115 |
endif |
5214 | 116 |
endif |
117 |
||
118 |
# Default JDK for JTREG and JCK |
|
119 |
# |
|
28140
1fa50caeb63b
8066807: langtools/test/Makefile should use -agentvm not -samevm
jjg
parents:
27382
diff
changeset
|
120 |
# JT_JAVA is the version of java used to run jtreg/JCK. |
5214 | 121 |
# |
37941 | 122 |
ifndef JT_JAVA |
123 |
ifdef JPRT_JAVA_HOME |
|
124 |
JT_JAVA = $(JPRT_JAVA_HOME) |
|
125 |
else |
|
126 |
JT_JAVA = $(SLASH_JAVA)/re/jdk/1.9.0/archive/fcs/binaries/$(PLATFORM)-$(ARCH) |
|
127 |
endif |
|
10 | 128 |
endif |
129 |
||
130 |
# Default JDK to test |
|
3779 | 131 |
ifdef JPRT_IMPORT_PRODUCT_HOME |
132 |
TESTJAVA = $(JPRT_IMPORT_PRODUCT_HOME) |
|
133 |
else |
|
28140
1fa50caeb63b
8066807: langtools/test/Makefile should use -agentvm not -samevm
jjg
parents:
27382
diff
changeset
|
134 |
TESTJAVA = $(SLASH_JAVA)/re/jdk/1.9.0/promoted/latest/binaries/$(PLATFORM)-$(ARCH) |
3779 | 135 |
endif |
136 |
||
20602
88692440ebd1
8024842: Define ABS_TEST_OUTPUT_DIR via TEST_OUTPUT_DIR
mduigou
parents:
15384
diff
changeset
|
137 |
# PRODUCT_HOME is a JPRT variable pointing to a directory containing the output from |
5214 | 138 |
# make/Makefile |
139 |
# For langtools, this is a directory containing build and dist |
|
20602
88692440ebd1
8024842: Define ABS_TEST_OUTPUT_DIR via TEST_OUTPUT_DIR
mduigou
parents:
15384
diff
changeset
|
140 |
# For a control build, this is build/$(PRODUCT)-$(ARCH)/XYZ-image |
5652
89482b760ef7
6954901: langtools/test/Makefile should check for bin/javac(.exe) instead of lib/tools.jar
jjg
parents:
5647
diff
changeset
|
141 |
# (i.e, j2sdk-image or jdk-module-image) |
5214 | 142 |
ifdef PRODUCT_HOME |
143 |
ifeq ($(shell [ -r $(PRODUCT_HOME)/dist/lib/classes.jar ]; echo $$?),0) |
|
144 |
TESTBOOTCLASSPATH = $(PRODUCT_HOME)/dist/lib/classes.jar |
|
145 |
endif |
|
5652
89482b760ef7
6954901: langtools/test/Makefile should check for bin/javac(.exe) instead of lib/tools.jar
jjg
parents:
5647
diff
changeset
|
146 |
ifeq ($(shell [ -r $(PRODUCT_HOME)/bin/javac$(EXE_SUFFIX) ]; echo $$?),0) |
5214 | 147 |
TESTJAVA = $(PRODUCT_HOME) |
148 |
endif |
|
149 |
endif |
|
150 |
||
151 |
ifdef TESTBOOTCLASSPATH |
|
152 |
JTREG_OPTIONS += -Xbootclasspath/p:$(TESTBOOTCLASSPATH) |
|
153 |
### In the following, -refvmoptions is an undocumented option |
|
20602
88692440ebd1
8024842: Define ABS_TEST_OUTPUT_DIR via TEST_OUTPUT_DIR
mduigou
parents:
15384
diff
changeset
|
154 |
### The following does not work JCK 7 b30 2/6/2010. Awaiting b31. |
5214 | 155 |
JCK_OPTIONS += \ |
156 |
-vmoptions:-Xbootclasspath/p:$(TESTBOOTCLASSPATH) \ |
|
157 |
-refvmoptions:-Xbootclasspath/p:$(TESTBOOTCLASSPATH) |
|
158 |
endif |
|
159 |
||
41449
de8df2220540
8166648: jib make run-test for langtools results in intermittent failures on windows-x86
tbell
parents:
39102
diff
changeset
|
160 |
ifeq ($(ARCH_DATA_MODEL),32) |
de8df2220540
8166648: jib make run-test for langtools results in intermittent failures on windows-x86
tbell
parents:
39102
diff
changeset
|
161 |
# Set the GC options for test vms |
de8df2220540
8166648: jib make run-test for langtools results in intermittent failures on windows-x86
tbell
parents:
39102
diff
changeset
|
162 |
JTREG_GC_OPTION = -vmoption:-XX:+UseSerialGC |
de8df2220540
8166648: jib make run-test for langtools results in intermittent failures on windows-x86
tbell
parents:
39102
diff
changeset
|
163 |
JTREG_OPTIONS += $(JTREG_GC_OPTION) |
de8df2220540
8166648: jib make run-test for langtools results in intermittent failures on windows-x86
tbell
parents:
39102
diff
changeset
|
164 |
endif |
de8df2220540
8166648: jib make run-test for langtools results in intermittent failures on windows-x86
tbell
parents:
39102
diff
changeset
|
165 |
# Set the max memory for jtreg target test JVMs |
de8df2220540
8166648: jib make run-test for langtools results in intermittent failures on windows-x86
tbell
parents:
39102
diff
changeset
|
166 |
JTREG_TESTVM_MEMORY_OPTION = -vmoption:-Xmx768m |
de8df2220540
8166648: jib make run-test for langtools results in intermittent failures on windows-x86
tbell
parents:
39102
diff
changeset
|
167 |
JTREG_OPTIONS += $(JTREG_TESTVM_MEMORY_OPTION) |
de8df2220540
8166648: jib make run-test for langtools results in intermittent failures on windows-x86
tbell
parents:
39102
diff
changeset
|
168 |
|
37941 | 169 |
ifdef EXTRA_JTREG_OPTIONS |
170 |
JTREG_OPTIONS += $(EXTRA_JTREG_OPTIONS) |
|
171 |
endif |
|
172 |
||
20602
88692440ebd1
8024842: Define ABS_TEST_OUTPUT_DIR via TEST_OUTPUT_DIR
mduigou
parents:
15384
diff
changeset
|
173 |
# Concurrency is the number of tests that can execute at once. |
5214 | 174 |
# On an otherwise empty machine, suggest setting to (#cpus + 2) |
175 |
# If unset, the default is (#cpus) |
|
176 |
### RFE: determine and use #cpus |
|
14546
7e2a1569de76
8003357: Add support for jtreg -concurrency to langtools/test/Makefile
jjh
parents:
12084
diff
changeset
|
177 |
ifdef CONCURRENCY |
7e2a1569de76
8003357: Add support for jtreg -concurrency to langtools/test/Makefile
jjh
parents:
12084
diff
changeset
|
178 |
JTREG_OPTIONS += -agentvm -concurrency:$(CONCURRENCY) |
7e2a1569de76
8003357: Add support for jtreg -concurrency to langtools/test/Makefile
jjh
parents:
12084
diff
changeset
|
179 |
else |
28140
1fa50caeb63b
8066807: langtools/test/Makefile should use -agentvm not -samevm
jjg
parents:
27382
diff
changeset
|
180 |
JTREG_OPTIONS += -agentvm |
14546
7e2a1569de76
8003357: Add support for jtreg -concurrency to langtools/test/Makefile
jjh
parents:
12084
diff
changeset
|
181 |
endif |
7e2a1569de76
8003357: Add support for jtreg -concurrency to langtools/test/Makefile
jjh
parents:
12084
diff
changeset
|
182 |
|
5214 | 183 |
ifdef JCK_CONCURRENCY |
184 |
JCK_OPTIONS += -concurrency:$(JCK_CONCURRENCY) |
|
185 |
endif |
|
186 |
||
187 |
# JCK is executed using "Multi-JVM Group Mode", which is a hybrid |
|
188 |
# of otherVM and sameVM modes. New JVMs are created and reused for |
|
189 |
# a number of tests, then eventually discarded and a new one started. |
|
190 |
# This amortizes the JVM startup time. The "group size" defines |
|
191 |
# how many tests are run in a JVM before it is replaced. |
|
192 |
# If unset, the default is 100. |
|
193 |
JCK_GROUP_SIZE = 1000 |
|
194 |
ifdef JCK_GROUP_SIZE |
|
195 |
JCK_COMPILER_OPTIONS += \ |
|
196 |
-jtoptions:-Ejck.env.compiler.testCompile.groupMode.groupSize=$(JCK_GROUP_SIZE) \ |
|
197 |
-jtoptions:-Ejck.env.compiler.compRefExecute.groupMode.groupSize=$(JCK_GROUP_SIZE) |
|
198 |
### The following is not supported. Awaiting RFE 6924287 |
|
199 |
### 6924287: Jck4Jdk: Allow to configure test group size for group mode via simple command line option |
|
200 |
### JCK_RUNTIME_OPTIONS += \ |
|
201 |
### -jtoptions:-Ejck.env.runtime.testCompile.groupMode.groupSize=$(JCK_GROUP_SIZE) |
|
202 |
endif |
|
203 |
||
5647
9a0b03523aa9
6952188: update timeout for langtools jtreg tests on JPRT
jjg
parents:
5214
diff
changeset
|
204 |
# Timeouts -- by default, increase test timeouts when running on JPRT |
9a0b03523aa9
6952188: update timeout for langtools jtreg tests on JPRT
jjg
parents:
5214
diff
changeset
|
205 |
ifdef JPRT_JOB_ID |
9a0b03523aa9
6952188: update timeout for langtools jtreg tests on JPRT
jjg
parents:
5214
diff
changeset
|
206 |
ifndef JTREG_TIMEOUT_FACTOR |
9a0b03523aa9
6952188: update timeout for langtools jtreg tests on JPRT
jjg
parents:
5214
diff
changeset
|
207 |
JTREG_TIMEOUT_FACTOR = 3 |
9a0b03523aa9
6952188: update timeout for langtools jtreg tests on JPRT
jjg
parents:
5214
diff
changeset
|
208 |
endif |
9a0b03523aa9
6952188: update timeout for langtools jtreg tests on JPRT
jjg
parents:
5214
diff
changeset
|
209 |
endif |
9a0b03523aa9
6952188: update timeout for langtools jtreg tests on JPRT
jjg
parents:
5214
diff
changeset
|
210 |
ifdef JTREG_TIMEOUT_FACTOR |
9a0b03523aa9
6952188: update timeout for langtools jtreg tests on JPRT
jjg
parents:
5214
diff
changeset
|
211 |
JTREG_OPTIONS += -timeoutFactor:$(JTREG_TIMEOUT_FACTOR) |
9a0b03523aa9
6952188: update timeout for langtools jtreg tests on JPRT
jjg
parents:
5214
diff
changeset
|
212 |
endif |
9a0b03523aa9
6952188: update timeout for langtools jtreg tests on JPRT
jjg
parents:
5214
diff
changeset
|
213 |
|
27382
60a3693d0d87
8062449: Update langtools/test/Makefile to use JCK 9
dlsmith
parents:
24405
diff
changeset
|
214 |
ifdef JCK_TIMEOUT_FACTOR |
60a3693d0d87
8062449: Update langtools/test/Makefile to use JCK 9
dlsmith
parents:
24405
diff
changeset
|
215 |
JCK_OPTIONS += -timeout:$(JCK_TIMEOUT_FACTOR) |
60a3693d0d87
8062449: Update langtools/test/Makefile to use JCK 9
dlsmith
parents:
24405
diff
changeset
|
216 |
endif |
60a3693d0d87
8062449: Update langtools/test/Makefile to use JCK 9
dlsmith
parents:
24405
diff
changeset
|
217 |
|
24405
71b654b695b7
8042882: Support verbosity options in langtools testing
dlsmith
parents:
20602
diff
changeset
|
218 |
# Default verbosity setting for jtreg |
39102
5a820f7e00b9
8158992: langtools/test/Makefile: improve support for control via variables
dlsmith
parents:
37941
diff
changeset
|
219 |
JTREG_VERBOSE ?= fail,error,nopass |
24405
71b654b695b7
8042882: Support verbosity options in langtools testing
dlsmith
parents:
20602
diff
changeset
|
220 |
|
71b654b695b7
8042882: Support verbosity options in langtools testing
dlsmith
parents:
20602
diff
changeset
|
221 |
# Default verbosity setting for jck |
39102
5a820f7e00b9
8158992: langtools/test/Makefile: improve support for control via variables
dlsmith
parents:
37941
diff
changeset
|
222 |
JCK_VERBOSE ?= non-pass |
24405
71b654b695b7
8042882: Support verbosity options in langtools testing
dlsmith
parents:
20602
diff
changeset
|
223 |
|
5214 | 224 |
# Assertions: some tests show failures when assertions are enabled. |
225 |
# Since javac is typically loaded via the bootclassloader (either via TESTJAVA |
|
226 |
# or TESTBOOTCLASSPATH), you may need -esa to enable assertions in javac. |
|
227 |
JTREG_OPTIONS += $(ASSERTION_OPTIONS) |
|
228 |
JCK_OPTIONS += $(ASSERTION_OPTIONS:%=-vmoptions:%) |
|
229 |
||
230 |
# Include shared options |
|
231 |
JCK_COMPILER_OPTIONS += $(JCK_OPTIONS) |
|
232 |
JCK_RUNTIME_OPTIONS += $(JCK_OPTIONS) |
|
233 |
||
234 |
# Exit codes: |
|
235 |
# jtreg, jck: 0: OK, 1: tests failed, 2: tests error; 3+: SERIOUS |
|
236 |
FATAL_JTREG_EXIT = 3 |
|
237 |
FATAL_JCK_EXIT = 3 |
|
238 |
# jtdiff: 0: OK, 1: differences found; 2+: SERIOUS |
|
239 |
FATAL_JTDIFF_EXIT = 2 |
|
240 |
# |
|
241 |
# Exit -- used for final "normal" exit from "make". Redefine to "true" to avoid |
|
242 |
# having make exit with non-zero return code. |
|
243 |
EXIT = exit |
|
20602
88692440ebd1
8024842: Define ABS_TEST_OUTPUT_DIR via TEST_OUTPUT_DIR
mduigou
parents:
15384
diff
changeset
|
244 |
# Function to exit shell if exit code of preceding command is greater than or equal |
5214 | 245 |
# to a given level. Redefine function or preceding FATAL_*_EXIT codes as needed. |
246 |
EXIT_IF_FATAL = status=$$?; if [ $$status -ge $(1) ]; then exit $$status ; fi |
|
10 | 247 |
|
248 |
# Root of all test results |
|
5214 | 249 |
TEST_OUTPUT_DIR = $(TEST_ROOT)/../build/$(PLATFORM)-$(ARCH)/test/langtools |
250 |
ABS_TEST_OUTPUT_DIR := \ |
|
20602
88692440ebd1
8024842: Define ABS_TEST_OUTPUT_DIR via TEST_OUTPUT_DIR
mduigou
parents:
15384
diff
changeset
|
251 |
$(shell mkdir -p $(TEST_OUTPUT_DIR); \ |
88692440ebd1
8024842: Define ABS_TEST_OUTPUT_DIR via TEST_OUTPUT_DIR
mduigou
parents:
15384
diff
changeset
|
252 |
cd $(TEST_OUTPUT_DIR); \ |
10947
47788da3eb3f
7101933: langtools jtreg tests do not work with jprt on windows
jjh
parents:
5652
diff
changeset
|
253 |
pwd $(CYGPATH)) |
5214 | 254 |
# Subdirectories for different test runs |
255 |
JTREG_OUTPUT_DIR = $(ABS_TEST_OUTPUT_DIR)/jtreg |
|
256 |
JCK_COMPILER_OUTPUT_DIR = $(ABS_TEST_OUTPUT_DIR)/jck-compiler |
|
257 |
JCK_RUNTIME_OUTPUT_DIR = $(ABS_TEST_OUTPUT_DIR)/jck-runtime-Xcompile |
|
10 | 258 |
|
5214 | 259 |
# Default make rule -- warning, may take a while |
260 |
all: $(JPRT_CLEAN) jtreg-tests jck-compiler-tests jck-runtime-tests $(JPRT_ARCHIVE_BUNDLE) all-summary |
|
261 |
@echo "Testing completed successfully" |
|
262 |
||
15030
2d8dec41f029
8003562: Provide a CLI tool to analyze class dependencies
mchung
parents:
14546
diff
changeset
|
263 |
jtreg apt javac javadoc javah javap jdeps: $(JPRT_CLEAN) jtreg-tests $(JPRT_ARCHIVE_BUNDLE) jtreg-summary |
5214 | 264 |
@echo "Testing completed successfully" |
265 |
||
266 |
jck-compiler: $(JPRT_CLEAN) jck-compiler-tests $(JPRT_ARCHIVE_BUNDLE) jck-compiler-summary |
|
267 |
@echo "Testing completed successfully" |
|
268 |
||
269 |
jck-runtime: $(JPRT_CLEAN) jck-runtime-tests $(JPRT_ARCHIVE_BUNDLE) jck-runtime-summary |
|
10 | 270 |
@echo "Testing completed successfully" |
271 |
||
39102
5a820f7e00b9
8158992: langtools/test/Makefile: improve support for control via variables
dlsmith
parents:
37941
diff
changeset
|
272 |
# a way to select tests from outside |
5a820f7e00b9
8158992: langtools/test/Makefile: improve support for control via variables
dlsmith
parents:
37941
diff
changeset
|
273 |
# works for targets 'jtreg', 'jck-compiler', and 'jck-runtime' |
5a820f7e00b9
8158992: langtools/test/Makefile: improve support for control via variables
dlsmith
parents:
37941
diff
changeset
|
274 |
ifdef TEST_SELECTION |
5a820f7e00b9
8158992: langtools/test/Makefile: improve support for control via variables
dlsmith
parents:
37941
diff
changeset
|
275 |
JTREG_TESTDIRS = $(TEST_SELECTION) |
5a820f7e00b9
8158992: langtools/test/Makefile: improve support for control via variables
dlsmith
parents:
37941
diff
changeset
|
276 |
JCK_COMPILER_TESTDIRS = $(TEST_SELECTION) |
5a820f7e00b9
8158992: langtools/test/Makefile: improve support for control via variables
dlsmith
parents:
37941
diff
changeset
|
277 |
JCK_RUNTIME_TESTDIRS = $(TEST_SELECTION) |
5a820f7e00b9
8158992: langtools/test/Makefile: improve support for control via variables
dlsmith
parents:
37941
diff
changeset
|
278 |
endif |
5a820f7e00b9
8158992: langtools/test/Makefile: improve support for control via variables
dlsmith
parents:
37941
diff
changeset
|
279 |
|
10 | 280 |
# for use with JPRT -testrule |
5214 | 281 |
all: JTREG_TESTDIRS = . |
39102
5a820f7e00b9
8158992: langtools/test/Makefile: improve support for control via variables
dlsmith
parents:
37941
diff
changeset
|
282 |
jtreg: JTREG_TESTDIRS ?= . |
5214 | 283 |
apt: JTREG_TESTDIRS = tools/apt |
284 |
javac: JTREG_TESTDIRS = tools/javac |
|
285 |
javadoc: JTREG_TESTDIRS = tools/javadoc com/sun/javadoc |
|
286 |
javah: JTREG_TESTDIRS = tools/javah |
|
287 |
javap: JTREG_TESTDIRS = tools/javap |
|
15030
2d8dec41f029
8003562: Provide a CLI tool to analyze class dependencies
mchung
parents:
14546
diff
changeset
|
288 |
jdeps: JTREG_TESTDIRS = tools/jdeps |
5214 | 289 |
|
37941 | 290 |
|
5214 | 291 |
# Run jtreg tests |
292 |
# |
|
293 |
# JTREG_HOME |
|
294 |
# Installed location of jtreg |
|
295 |
# JT_JAVA |
|
296 |
# Version of java used to run jtreg. Should normally be the same as TESTJAVA |
|
297 |
# TESTJAVA |
|
20602
88692440ebd1
8024842: Define ABS_TEST_OUTPUT_DIR via TEST_OUTPUT_DIR
mduigou
parents:
15384
diff
changeset
|
298 |
# Version of java to be tested. |
24405
71b654b695b7
8042882: Support verbosity options in langtools testing
dlsmith
parents:
20602
diff
changeset
|
299 |
# JTREG_VERBOSE |
71b654b695b7
8042882: Support verbosity options in langtools testing
dlsmith
parents:
20602
diff
changeset
|
300 |
# Verbosity setting for jtreg |
5214 | 301 |
# JTREG_OPTIONS |
302 |
# Additional options for jtreg |
|
303 |
# JTREG_TESTDIRS |
|
304 |
# Directories of tests to be run |
|
305 |
# JTREG_OUTPUT_DIR |
|
306 |
# Where to write the results |
|
307 |
# JTREG_REFERENCE |
|
308 |
# (Optional) reference results (e.g. work, report or summary.txt) |
|
309 |
# |
|
12084
b367473ef0f1
7113349: Initial changeset for Macosx port to jdk
michaelm
parents:
10947
diff
changeset
|
310 |
jtreg_tests: jtreg-tests |
5214 | 311 |
jtreg-tests: check-jtreg FRC |
312 |
@rm -f -r $(JTREG_OUTPUT_DIR)/JTwork $(JTREG_OUTPUT_DIR)/JTreport \ |
|
313 |
$(JTREG_OUTPUT_DIR)/diff.html $(JTREG_OUTPUT_DIR)/status.txt |
|
314 |
@mkdir -p $(JTREG_OUTPUT_DIR) |
|
315 |
JT_JAVA=$(JT_JAVA) $(JTREG) \ |
|
24405
71b654b695b7
8042882: Support verbosity options in langtools testing
dlsmith
parents:
20602
diff
changeset
|
316 |
-a -ignore:quiet $(if $(JTREG_VERBOSE),-v:$(JTREG_VERBOSE)) \ |
37941 | 317 |
-r:$(JTREG_OUTPUT_DIR)/JTreport \ |
318 |
-w:$(JTREG_OUTPUT_DIR)/JTwork \ |
|
319 |
-jdk:$(TESTJAVA) \ |
|
320 |
$(JAVA_ARGS:%=-vmoption:%) \ |
|
321 |
$(JTREG_EXCLUSIONS) \ |
|
5214 | 322 |
$(JTREG_OPTIONS) \ |
37941 | 323 |
$(JTREG_TESTDIRS) \ |
5214 | 324 |
|| ( $(call EXIT_IF_FATAL,$(FATAL_JTREG_EXIT)) ; \ |
325 |
echo $$status > $(JTREG_OUTPUT_DIR)/status.txt \ |
|
326 |
) |
|
327 |
ifdef JTREG_REFERENCE |
|
328 |
JT_JAVA=$(JT_JAVA) $(JTDIFF) -o $(JTREG_OUTPUT_DIR)/diff.html \ |
|
329 |
$(JTREG_REFERENCE) $(JTREG_OUTPUT_DIR)/JTreport \ |
|
330 |
|| ( $(call EXIT_IF_FATAL,$(FATAL_JTDIFF_EXIT)) ) |
|
331 |
endif |
|
332 |
||
333 |
jtreg-summary: FRC |
|
27382
60a3693d0d87
8062449: Update langtools/test/Makefile to use JCK 9
dlsmith
parents:
24405
diff
changeset
|
334 |
@if [ -r $(JTREG_OUTPUT_DIR)/status.txt ]; then \ |
5214 | 335 |
echo ; echo "Summary of jtreg test failures" ; \ |
336 |
cat $(JTREG_OUTPUT_DIR)/JTreport/text/summary.txt | \ |
|
337 |
grep -v 'Not run' | grep -v 'Passed' ; \ |
|
338 |
echo ; \ |
|
339 |
$(EXIT) `cat $(JTREG_OUTPUT_DIR)/status.txt` ; \ |
|
340 |
fi |
|
10 | 341 |
|
342 |
# Check to make sure these directories exist |
|
10947
47788da3eb3f
7101933: langtools jtreg tests do not work with jprt on windows
jjh
parents:
5652
diff
changeset
|
343 |
check-jtreg: $(PRODUCT_HOME) $(JTREG) |
5214 | 344 |
|
345 |
||
346 |
# Run JCK-compiler tests |
|
347 |
# |
|
348 |
# JCK_HOME |
|
349 |
# Installed location of JCK: should include JCK-compiler, and JCK-extras |
|
10947
47788da3eb3f
7101933: langtools jtreg tests do not work with jprt on windows
jjh
parents:
5652
diff
changeset
|
350 |
# Default is JCK 8. |
5214 | 351 |
# JT_JAVA |
352 |
# Version of java used to run JCK. Should normally be the same as TESTJAVA |
|
10947
47788da3eb3f
7101933: langtools jtreg tests do not work with jprt on windows
jjh
parents:
5652
diff
changeset
|
353 |
# Default is JDK 7 |
5214 | 354 |
# TESTJAVA |
20602
88692440ebd1
8024842: Define ABS_TEST_OUTPUT_DIR via TEST_OUTPUT_DIR
mduigou
parents:
15384
diff
changeset
|
355 |
# Version of java to be tested. |
24405
71b654b695b7
8042882: Support verbosity options in langtools testing
dlsmith
parents:
20602
diff
changeset
|
356 |
# JCK_VERBOSE |
71b654b695b7
8042882: Support verbosity options in langtools testing
dlsmith
parents:
20602
diff
changeset
|
357 |
# Verbosity setting for jtjck |
5214 | 358 |
# JCK_COMPILER_OPTIONS |
359 |
# Additional options for JCK-compiler |
|
360 |
# JCK_COMPILER_TESTDIRS |
|
361 |
# Directories of tests to be run |
|
362 |
# JCK_COMPILER_OUTPUT_DIR |
|
363 |
# Where to write the results |
|
364 |
# JCK_COMPILER_REFERENCE |
|
365 |
# (Optional) reference results (e.g. work, report or summary.txt) |
|
366 |
# |
|
367 |
jck-compiler-tests: check-jck FRC |
|
368 |
@rm -f -r $(JCK_COMPILER_OUTPUT_DIR)/work $(JCK_COMPILER_OUTPUT_DIR)/report \ |
|
369 |
$(JCK_COMPILER_OUTPUT_DIR)/diff.html $(JCK_COMPILER_OUTPUT_DIR)/status.txt |
|
370 |
@mkdir -p $(JCK_COMPILER_OUTPUT_DIR) |
|
24405
71b654b695b7
8042882: Support verbosity options in langtools testing
dlsmith
parents:
20602
diff
changeset
|
371 |
$(JT_JAVA)/bin/java -Xmx512m \ |
27382
60a3693d0d87
8062449: Update langtools/test/Makefile to use JCK 9
dlsmith
parents:
24405
diff
changeset
|
372 |
-jar $(JCK_HOME)/JCK-compiler-9/lib/jtjck.jar \ |
60a3693d0d87
8062449: Update langtools/test/Makefile to use JCK 9
dlsmith
parents:
24405
diff
changeset
|
373 |
$(if $(JCK_VERBOSE),$(if $(filter $(JCK_VERBOSE),summary),-v,-v:$(JCK_VERBOSE))) \ |
5214 | 374 |
-r:$(JCK_COMPILER_OUTPUT_DIR)/report \ |
375 |
-w:$(JCK_COMPILER_OUTPUT_DIR)/work \ |
|
376 |
-jdk:$(TESTJAVA) \ |
|
377 |
$(JCK_COMPILER_OPTIONS) \ |
|
378 |
$(JCK_COMPILER_TESTDIRS) \ |
|
379 |
|| ( $(call EXIT_IF_FATAL,$(FATAL_JCK_EXIT)) ; \ |
|
380 |
echo $$status > $(JCK_COMPILER_OUTPUT_DIR)/status.txt \ |
|
381 |
) |
|
382 |
ifdef JCK_COMPILER_REFERENCE |
|
383 |
JT_JAVA=$(JT_JAVA) $(JTDIFF) -o $(JCK_COMPILER_OUTPUT_DIR)/diff.html \ |
|
384 |
$(JCK_COMPILER_REFERENCE) $(JCK_COMPILER_OUTPUT_DIR)/report \ |
|
385 |
|| ( $(call EXIT_IF_FATAL,$(FATAL_JTDIFF_EXIT)) ) |
|
386 |
endif |
|
387 |
||
388 |
jck-compiler-summary: FRC |
|
27382
60a3693d0d87
8062449: Update langtools/test/Makefile to use JCK 9
dlsmith
parents:
24405
diff
changeset
|
389 |
@if [ -r $(JCK_COMPILER_OUTPUT_DIR)/status.txt ]; then \ |
5214 | 390 |
echo ; echo "Summary of JCK-compiler test failures" ; \ |
391 |
cat $(JCK_COMPILER_OUTPUT_DIR)/report/text/summary.txt | \ |
|
392 |
grep -v 'Not run' | grep -v 'Passed' ; \ |
|
393 |
echo ; \ |
|
394 |
$(EXIT) `cat $(JCK_COMPILER_OUTPUT_DIR)/status.txt` ; \ |
|
395 |
fi |
|
10 | 396 |
|
5214 | 397 |
# Run JCK-runtime tests in -Xcompile mode |
398 |
# This is a special mode to test javac by compiling the tests in the JCK-runtime test suite |
|
399 |
# Normal JCK-runtime invocation belongs in the jdk/ repository. |
|
400 |
# |
|
401 |
# JCK_HOME |
|
402 |
# Installed location of JCK: should include JCK-compiler, JCK-runtime and JCK-extras |
|
403 |
# JT_JAVA |
|
404 |
# Version of java used to run JCK. Should normally be the same as TESTJAVA |
|
405 |
# TESTJAVA |
|
20602
88692440ebd1
8024842: Define ABS_TEST_OUTPUT_DIR via TEST_OUTPUT_DIR
mduigou
parents:
15384
diff
changeset
|
406 |
# Version of java to be tested. |
24405
71b654b695b7
8042882: Support verbosity options in langtools testing
dlsmith
parents:
20602
diff
changeset
|
407 |
# JCK_VERBOSE |
71b654b695b7
8042882: Support verbosity options in langtools testing
dlsmith
parents:
20602
diff
changeset
|
408 |
# Verbosity setting for jtjck |
5214 | 409 |
# JCK_RUNTIME_OPTIONS |
410 |
# Additional options for JCK-runtime |
|
411 |
# JCK_RUNTIME_TESTDIRS |
|
412 |
# Directories of tests to be run |
|
413 |
# JCK_RUNTIME_OUTPUT_DIR |
|
414 |
# Where to write the results |
|
415 |
# JCK_RUNTIME_REFERENCE |
|
416 |
# (Optional) reference results (e.g. work, report or summary.txt) |
|
417 |
# |
|
418 |
jck-runtime-tests: check-jck FRC |
|
419 |
@rm -f -r $(JCK_RUNTIME_OUTPUT_DIR)/work $(JCK_RUNTIME_OUTPUT_DIR)/report \ |
|
420 |
$(JCK_RUNTIME_OUTPUT_DIR)/diff.html $(JCK_RUNTIME_OUTPUT_DIR)/status.txt |
|
421 |
@mkdir -p $(JCK_RUNTIME_OUTPUT_DIR) |
|
24405
71b654b695b7
8042882: Support verbosity options in langtools testing
dlsmith
parents:
20602
diff
changeset
|
422 |
$(JT_JAVA)/bin/java -Xmx512m \ |
27382
60a3693d0d87
8062449: Update langtools/test/Makefile to use JCK 9
dlsmith
parents:
24405
diff
changeset
|
423 |
-jar $(JCK_HOME)/JCK-runtime-9/lib/jtjck.jar \ |
60a3693d0d87
8062449: Update langtools/test/Makefile to use JCK 9
dlsmith
parents:
24405
diff
changeset
|
424 |
$(if $(JCK_VERBOSE),$(if $(filter $(JCK_VERBOSE),summary),-v,-v:$(JCK_VERBOSE))) \ |
5214 | 425 |
-r:$(JCK_RUNTIME_OUTPUT_DIR)/report \ |
426 |
-w:$(JCK_RUNTIME_OUTPUT_DIR)/work \ |
|
427 |
-jdk:$(TESTJAVA) \ |
|
428 |
-Xcompile \ |
|
429 |
$(JCK_RUNTIME_OPTIONS) \ |
|
430 |
$(JCK_RUNTIME_TESTDIRS) \ |
|
431 |
|| ( $(call EXIT_IF_FATAL,$(FATAL_JCK_EXIT)) ; \ |
|
432 |
echo $$status > $(JCK_RUNTIME_OUTPUT_DIR)/status.txt \ |
|
433 |
) |
|
434 |
ifdef JCK_RUNTIME_REFERENCE |
|
435 |
JT_JAVA=$(JT_JAVA) $(JTDIFF) -o $(JCK_RUNTIME_OUTPUT_DIR)/diff.html \ |
|
436 |
$(JCK_RUNTIME_REFERENCE) $(JCK_RUNTIME_OUTPUT_DIR)/report \ |
|
437 |
|| ( $(call EXIT_IF_FATAL,$(FATAL_JTDIFF_EXIT)) ) |
|
438 |
endif |
|
439 |
||
440 |
jck-runtime-summary: FRC |
|
27382
60a3693d0d87
8062449: Update langtools/test/Makefile to use JCK 9
dlsmith
parents:
24405
diff
changeset
|
441 |
@if [ -r $(JCK_RUNTIME_OUTPUT_DIR)/status.txt ]; then \ |
5214 | 442 |
echo ; echo "Summary of JCK-runtime test failures" ; \ |
443 |
cat $(JCK_RUNTIME_OUTPUT_DIR)/report/text/summary.txt | \ |
|
444 |
grep -v 'Not run' | grep -v 'Passed' ; \ |
|
445 |
echo ; \ |
|
446 |
$(EXIT) `cat $(JCK_RUNTIME_OUTPUT_DIR)/status.txt` ; \ |
|
447 |
fi |
|
448 |
||
449 |
# Check to make sure these directories exist |
|
35352
5558ce88298a
8147930: Langtools test Makefile still requires special make in Cygwin
erikj
parents:
28141
diff
changeset
|
450 |
check-jck: |
39102
5a820f7e00b9
8158992: langtools/test/Makefile: improve support for control via variables
dlsmith
parents:
37941
diff
changeset
|
451 |
@if [ ! -d '$(JCK_HOME)' ]; then \ |
35354
a9c8e2634f92
8147995: 8147930 uses incorrect whitespace in langtools/test/Makefile
jjg
parents:
35352
diff
changeset
|
452 |
echo "JCK_HOME $(JCK_HOME) missing" ; \ |
a9c8e2634f92
8147995: 8147930 uses incorrect whitespace in langtools/test/Makefile
jjg
parents:
35352
diff
changeset
|
453 |
$(EXIT) 1 ; \ |
a9c8e2634f92
8147995: 8147930 uses incorrect whitespace in langtools/test/Makefile
jjg
parents:
35352
diff
changeset
|
454 |
fi |
39102
5a820f7e00b9
8158992: langtools/test/Makefile: improve support for control via variables
dlsmith
parents:
37941
diff
changeset
|
455 |
@if [ ! -d '$(PRODUCT_HOME)' ]; then \ |
35354
a9c8e2634f92
8147995: 8147930 uses incorrect whitespace in langtools/test/Makefile
jjg
parents:
35352
diff
changeset
|
456 |
echo "PRODUCT_HOME $(PRODUCT_HOME) missing" ; \ |
a9c8e2634f92
8147995: 8147930 uses incorrect whitespace in langtools/test/Makefile
jjg
parents:
35352
diff
changeset
|
457 |
$(EXIT) 1 ; \ |
a9c8e2634f92
8147995: 8147930 uses incorrect whitespace in langtools/test/Makefile
jjg
parents:
35352
diff
changeset
|
458 |
fi |
5214 | 459 |
|
460 |
all-summary: FRC |
|
27382
60a3693d0d87
8062449: Update langtools/test/Makefile to use JCK 9
dlsmith
parents:
24405
diff
changeset
|
461 |
@if [ -n "`find $(TEST_OUTPUT_DIR) -name status.txt`" ]; then |
5214 | 462 |
echo ; echo "Summary of test failures" ; \ |
463 |
cat `find $(TEST_OUTPUT_DIR) -name summary.txt` | \ |
|
464 |
grep -v 'Not run' | grep -v 'Passed' ; \ |
|
465 |
echo ; \ |
|
466 |
$(EXIT) 1 |
|
467 |
fi |
|
10 | 468 |
|
469 |
# Bundle up the results |
|
470 |
$(JPRT_ARCHIVE_BUNDLE): FRC |
|
471 |
@rm -f $@ |
|
472 |
@mkdir -p $(@D) |
|
473 |
( cd $(TEST_OUTPUT_DIR) && zip -q -r $@ . ) |
|
474 |
||
475 |
# Cleanup |
|
476 |
clean: |
|
477 |
rm -f $(JPRT_ARCHIVE_BUNDLE) |
|
478 |
||
479 |
# Used to force a target rules to run |
|
480 |
FRC: |
|
481 |
||
482 |
# Phony targets (e.g. these are not filenames) |
|
5214 | 483 |
.PHONY: all clean \ |
15030
2d8dec41f029
8003562: Provide a CLI tool to analyze class dependencies
mchung
parents:
14546
diff
changeset
|
484 |
jtreg javac javadoc javah javap jdeps jtreg-tests jtreg-summary check-jtreg \ |
5214 | 485 |
jck-compiler jck-compiler-tests jck-compiler-summary \ |
486 |
jck-runtime jck-runtime-tests jck-runtime-summary check-jck |
|
10 | 487 |
|
5214 | 488 |
# No use of suffix rules |
489 |
.SUFFIXES: |
|
490 |