5 # Product builds and langtools builds |
5 # Product builds and langtools builds |
6 # |
6 # |
7 # A full product build (or "control" build) creates a complete JDK image. |
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. |
8 # To test a product build, set TESTJAVA to the path for the image. |
9 # |
9 # |
10 # A langtools build just builds the langtools components of a JDK. |
10 # A langtools build just builds the langtools components of a JDK. |
11 # To test a langtools build, set TESTJAVA to the path for a recent JDK |
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 -- |
12 # build, and set TESTBOOTCLASSPATH to the compiled langtools classes -- |
13 # for example build/classes or dist/lib/classes.jar. |
13 # for example build/classes or dist/lib/classes.jar. |
14 |
14 |
15 # JPRT |
15 # JPRT |
120 TESTJAVA = $(JPRT_IMPORT_PRODUCT_HOME) |
120 TESTJAVA = $(JPRT_IMPORT_PRODUCT_HOME) |
121 else |
121 else |
122 TESTJAVA = $(SLASH_JAVA)/re/jdk/1.7.0/promoted/latest/binaries/$(PLATFORM)-$(ARCH) |
122 TESTJAVA = $(SLASH_JAVA)/re/jdk/1.7.0/promoted/latest/binaries/$(PLATFORM)-$(ARCH) |
123 endif |
123 endif |
124 |
124 |
125 # PRODUCT_HOME is a JPRT variable pointing to a directory containing the output from |
125 # PRODUCT_HOME is a JPRT variable pointing to a directory containing the output from |
126 # make/Makefile |
126 # make/Makefile |
127 # For langtools, this is a directory containing build and dist |
127 # For langtools, this is a directory containing build and dist |
128 # For a control build, this is build/$(PRODUCT)-$(ARCH)/XYZ-image |
128 # For a control build, this is build/$(PRODUCT)-$(ARCH)/XYZ-image |
129 # (i.e, j2sdk-image or jdk-module-image) |
129 # (i.e, j2sdk-image or jdk-module-image) |
130 ifdef PRODUCT_HOME |
130 ifdef PRODUCT_HOME |
131 ifeq ($(shell [ -r $(PRODUCT_HOME)/dist/lib/classes.jar ]; echo $$?),0) |
131 ifeq ($(shell [ -r $(PRODUCT_HOME)/dist/lib/classes.jar ]; echo $$?),0) |
132 TESTBOOTCLASSPATH = $(PRODUCT_HOME)/dist/lib/classes.jar |
132 TESTBOOTCLASSPATH = $(PRODUCT_HOME)/dist/lib/classes.jar |
133 endif |
133 endif |
137 endif |
137 endif |
138 |
138 |
139 ifdef TESTBOOTCLASSPATH |
139 ifdef TESTBOOTCLASSPATH |
140 JTREG_OPTIONS += -Xbootclasspath/p:$(TESTBOOTCLASSPATH) |
140 JTREG_OPTIONS += -Xbootclasspath/p:$(TESTBOOTCLASSPATH) |
141 ### In the following, -refvmoptions is an undocumented option |
141 ### In the following, -refvmoptions is an undocumented option |
142 ### The following does not work JCK 7 b30 2/6/2010. Awaiting b31. |
142 ### The following does not work JCK 7 b30 2/6/2010. Awaiting b31. |
143 JCK_OPTIONS += \ |
143 JCK_OPTIONS += \ |
144 -vmoptions:-Xbootclasspath/p:$(TESTBOOTCLASSPATH) \ |
144 -vmoptions:-Xbootclasspath/p:$(TESTBOOTCLASSPATH) \ |
145 -refvmoptions:-Xbootclasspath/p:$(TESTBOOTCLASSPATH) |
145 -refvmoptions:-Xbootclasspath/p:$(TESTBOOTCLASSPATH) |
146 endif |
146 endif |
147 |
147 |
148 # Concurrency is the number of tests that can execute at once. |
148 # Concurrency is the number of tests that can execute at once. |
149 # On an otherwise empty machine, suggest setting to (#cpus + 2) |
149 # On an otherwise empty machine, suggest setting to (#cpus + 2) |
150 # If unset, the default is (#cpus) |
150 # If unset, the default is (#cpus) |
151 ### RFE: determine and use #cpus |
151 ### RFE: determine and use #cpus |
152 ifdef CONCURRENCY |
152 ifdef CONCURRENCY |
153 JTREG_OPTIONS += -agentvm -concurrency:$(CONCURRENCY) |
153 JTREG_OPTIONS += -agentvm -concurrency:$(CONCURRENCY) |
204 FATAL_JTDIFF_EXIT = 2 |
204 FATAL_JTDIFF_EXIT = 2 |
205 # |
205 # |
206 # Exit -- used for final "normal" exit from "make". Redefine to "true" to avoid |
206 # Exit -- used for final "normal" exit from "make". Redefine to "true" to avoid |
207 # having make exit with non-zero return code. |
207 # having make exit with non-zero return code. |
208 EXIT = exit |
208 EXIT = exit |
209 # Function to exit shell if exit code of preceding command is greater than or equal |
209 # Function to exit shell if exit code of preceding command is greater than or equal |
210 # to a given level. Redefine function or preceding FATAL_*_EXIT codes as needed. |
210 # to a given level. Redefine function or preceding FATAL_*_EXIT codes as needed. |
211 EXIT_IF_FATAL = status=$$?; if [ $$status -ge $(1) ]; then exit $$status ; fi |
211 EXIT_IF_FATAL = status=$$?; if [ $$status -ge $(1) ]; then exit $$status ; fi |
212 |
212 |
213 # The test directories to run |
213 # The test directories to run |
214 DEFAULT_TESTDIRS = . |
214 DEFAULT_TESTDIRS = . |
215 TESTDIRS = $(DEFAULT_TESTDIRS) |
215 TESTDIRS = $(DEFAULT_TESTDIRS) |
216 |
216 |
217 # Root of all test results |
217 # Root of all test results |
218 TEST_OUTPUT_DIR = $(TEST_ROOT)/../build/$(PLATFORM)-$(ARCH)/test/langtools |
218 TEST_OUTPUT_DIR = $(TEST_ROOT)/../build/$(PLATFORM)-$(ARCH)/test/langtools |
219 ABS_TEST_OUTPUT_DIR := \ |
219 ABS_TEST_OUTPUT_DIR := \ |
220 $(shell mkdir -p $(TEST_ROOT)/../build/$(PLATFORM)-$(ARCH)/test/langtools; \ |
220 $(shell mkdir -p $(TEST_OUTPUT_DIR); \ |
221 cd $(TEST_ROOT)/../build/$(PLATFORM)-$(ARCH)/test/langtools; \ |
221 cd $(TEST_OUTPUT_DIR); \ |
222 pwd $(CYGPATH)) |
222 pwd $(CYGPATH)) |
223 # Subdirectories for different test runs |
223 # Subdirectories for different test runs |
224 JTREG_OUTPUT_DIR = $(ABS_TEST_OUTPUT_DIR)/jtreg |
224 JTREG_OUTPUT_DIR = $(ABS_TEST_OUTPUT_DIR)/jtreg |
225 JCK_COMPILER_OUTPUT_DIR = $(ABS_TEST_OUTPUT_DIR)/jck-compiler |
225 JCK_COMPILER_OUTPUT_DIR = $(ABS_TEST_OUTPUT_DIR)/jck-compiler |
226 JCK_RUNTIME_OUTPUT_DIR = $(ABS_TEST_OUTPUT_DIR)/jck-runtime-Xcompile |
226 JCK_RUNTIME_OUTPUT_DIR = $(ABS_TEST_OUTPUT_DIR)/jck-runtime-Xcompile |
253 # JTREG_HOME |
253 # JTREG_HOME |
254 # Installed location of jtreg |
254 # Installed location of jtreg |
255 # JT_JAVA |
255 # JT_JAVA |
256 # Version of java used to run jtreg. Should normally be the same as TESTJAVA |
256 # Version of java used to run jtreg. Should normally be the same as TESTJAVA |
257 # TESTJAVA |
257 # TESTJAVA |
258 # Version of java to be tested. |
258 # Version of java to be tested. |
259 # JTREG_OPTIONS |
259 # JTREG_OPTIONS |
260 # Additional options for jtreg |
260 # Additional options for jtreg |
261 # JTREG_TESTDIRS |
261 # JTREG_TESTDIRS |
262 # Directories of tests to be run |
262 # Directories of tests to be run |
263 # JTREG_OUTPUT_DIR |
263 # JTREG_OUTPUT_DIR |
309 # Default is JCK 8. |
309 # Default is JCK 8. |
310 # JT_JAVA |
310 # JT_JAVA |
311 # Version of java used to run JCK. Should normally be the same as TESTJAVA |
311 # Version of java used to run JCK. Should normally be the same as TESTJAVA |
312 # Default is JDK 7 |
312 # Default is JDK 7 |
313 # TESTJAVA |
313 # TESTJAVA |
314 # Version of java to be tested. |
314 # Version of java to be tested. |
315 # JCK_COMPILER_OPTIONS |
315 # JCK_COMPILER_OPTIONS |
316 # Additional options for JCK-compiler |
316 # Additional options for JCK-compiler |
317 # JCK_COMPILER_TESTDIRS |
317 # JCK_COMPILER_TESTDIRS |
318 # Directories of tests to be run |
318 # Directories of tests to be run |
319 # JCK_COMPILER_OUTPUT_DIR |
319 # JCK_COMPILER_OUTPUT_DIR |
358 # JCK_HOME |
358 # JCK_HOME |
359 # Installed location of JCK: should include JCK-compiler, JCK-runtime and JCK-extras |
359 # Installed location of JCK: should include JCK-compiler, JCK-runtime and JCK-extras |
360 # JT_JAVA |
360 # JT_JAVA |
361 # Version of java used to run JCK. Should normally be the same as TESTJAVA |
361 # Version of java used to run JCK. Should normally be the same as TESTJAVA |
362 # TESTJAVA |
362 # TESTJAVA |
363 # Version of java to be tested. |
363 # Version of java to be tested. |
364 # JCK_RUNTIME_OPTIONS |
364 # JCK_RUNTIME_OPTIONS |
365 # Additional options for JCK-runtime |
365 # Additional options for JCK-runtime |
366 # JCK_RUNTIME_TESTDIRS |
366 # JCK_RUNTIME_TESTDIRS |
367 # Directories of tests to be run |
367 # Directories of tests to be run |
368 # JCK_RUNTIME_OUTPUT_DIR |
368 # JCK_RUNTIME_OUTPUT_DIR |