aoqi@0: # aoqi@0: # Makefile to run jtreg and other tests aoqi@0: # aoqi@0: aoqi@0: # Product builds and langtools builds aoqi@0: # aoqi@0: # A full product build (or "control" build) creates a complete JDK image. aoqi@0: # To test a product build, set TESTJAVA to the path for the image. aoqi@0: # aoqi@0: # A langtools build just builds the langtools components of a JDK. aoqi@0: # To test a langtools build, set TESTJAVA to the path for a recent JDK aoqi@0: # build, and set TESTBOOTCLASSPATH to the compiled langtools classes -- aoqi@0: # for example build/classes or dist/lib/classes.jar. aoqi@0: aoqi@0: # JPRT aoqi@0: # JPRT may invoke this Makefile directly, as part of a langtools build, aoqi@0: # or indirectly, via FOREST/test/Makefile, as part of a control build. aoqi@0: aoqi@0: # Get OS/ARCH specifics aoqi@0: OSNAME = $(shell uname -s) aoqi@0: ifeq ($(OSNAME), SunOS) aoqi@0: SLASH_JAVA = /java aoqi@0: PLATFORM = solaris aoqi@0: ARCH = $(shell uname -p) aoqi@0: ifeq ($(ARCH), i386) aoqi@0: ARCH=i586 aoqi@0: endif aoqi@0: endif aoqi@0: ifeq ($(OSNAME), Linux) aoqi@0: SLASH_JAVA = /java aoqi@0: PLATFORM = linux aoqi@0: ARCH = $(shell uname -m) aoqi@0: ifeq ($(ARCH), i386) aoqi@0: ARCH=i586 aoqi@0: endif aoqi@0: endif aoqi@0: ifeq ($(OSNAME), Darwin) aoqi@0: PLATFORM = bsd aoqi@0: ARCH = $(shell uname -m) aoqi@0: ifeq ($(ARCH), i386) aoqi@0: ARCH=i586 aoqi@0: endif aoqi@0: endif aoqi@0: ifeq ($(OSNAME), Windows_NT) aoqi@0: # MKS aoqi@0: PLATFORM=windows aoqi@0: endif aoqi@0: ifeq ($(PLATFORM),) aoqi@0: PLATFORM = windows aoqi@0: CYGPATH = | cygpath -m -s -f - aoqi@0: endif aoqi@0: aoqi@0: ifeq ($(PLATFORM), windows) aoqi@0: SLASH_JAVA = J: aoqi@0: ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),ia64) aoqi@0: ARCH=ia64 aoqi@0: else aoqi@0: ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),AMD64) aoqi@0: ARCH=x64 aoqi@0: else aoqi@0: ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),EM64T) aoqi@0: ARCH=x64 aoqi@0: else aoqi@0: ARCH=i586 aoqi@0: endif aoqi@0: endif aoqi@0: endif aoqi@0: EXE_SUFFIX=.exe aoqi@0: endif aoqi@0: aoqi@0: # Root of this test area (important to use full paths in some places) aoqi@0: TEST_ROOT := $(shell pwd $(CYGPATH) ) aoqi@0: aoqi@0: # Default bundle of all test results (passed or not) (JPRT only) aoqi@0: ifdef JPRT_JOB_ID aoqi@0: JPRT_CLEAN = clean aoqi@0: JPRT_ARCHIVE_BUNDLE = $(TEST_ROOT)/JPRT_ARCHIVE_BUNDLE.zip aoqi@0: endif aoqi@0: aoqi@0: ifeq ($(PLATFORM), windows) aoqi@0: SLASH_JAVA = J: aoqi@0: else aoqi@0: SLASH_JAVA = /java aoqi@0: endif aoqi@0: aoqi@0: # Default JTREG to run aoqi@0: ifdef JPRT_JTREG_HOME aoqi@0: JTREG_HOME = $(JPRT_JTREG_HOME) aoqi@0: else aoqi@0: JTREG_HOME = $(SLASH_JAVA)/re/jtreg/4.1/promoted/latest/binaries/jtreg aoqi@0: endif jjg@2806: JTREG = $(JTREG_HOME)/bin/jtreg jjg@2806: JTDIFF = $(JTREG_HOME)/bin/jtdiff aoqi@0: aoqi@0: # Default JCK to run aoqi@0: ifdef JPRT_JCK_HOME aoqi@0: JCK_HOME = $(JPRT_JCK_HOME) aoqi@0: else aoqi@0: JCK_HOME = $(SLASH_JAVA)/re/jck/8/promoted/latest/binaries aoqi@0: endif aoqi@0: aoqi@0: # Default JDK for JTREG and JCK aoqi@0: # aoqi@0: # JT_JAVA is the version of java used to run jtreg/JCK. Since it is now aoqi@0: # standard to execute tests in sameVM mode, it should normally be set the aoqi@0: # same as TESTJAVA (although not necessarily so.) aoqi@0: # aoqi@0: ifdef JPRT_JAVA_HOME aoqi@0: JT_JAVA = $(JPRT_JAVA_HOME) aoqi@0: else aoqi@0: JT_JAVA = $(SLASH_JAVA)/re/jdk/1.7.0/archive/fcs/binaries/$(PLATFORM)-$(ARCH) aoqi@0: endif aoqi@0: aoqi@0: # Default JDK to test aoqi@0: ifdef JPRT_IMPORT_PRODUCT_HOME aoqi@0: TESTJAVA = $(JPRT_IMPORT_PRODUCT_HOME) aoqi@0: else aoqi@0: TESTJAVA = $(SLASH_JAVA)/re/jdk/1.7.0/promoted/latest/binaries/$(PLATFORM)-$(ARCH) aoqi@0: endif aoqi@0: aoqi@0: # PRODUCT_HOME is a JPRT variable pointing to a directory containing the output from aoqi@0: # make/Makefile aoqi@0: # For langtools, this is a directory containing build and dist aoqi@0: # For a control build, this is build/$(PRODUCT)-$(ARCH)/XYZ-image aoqi@0: # (i.e, j2sdk-image or jdk-module-image) aoqi@0: ifdef PRODUCT_HOME aoqi@0: ifeq ($(shell [ -r $(PRODUCT_HOME)/dist/lib/classes.jar ]; echo $$?),0) aoqi@0: TESTBOOTCLASSPATH = $(PRODUCT_HOME)/dist/lib/classes.jar aoqi@0: endif aoqi@0: ifeq ($(shell [ -r $(PRODUCT_HOME)/bin/javac$(EXE_SUFFIX) ]; echo $$?),0) aoqi@0: TESTJAVA = $(PRODUCT_HOME) aoqi@0: endif aoqi@0: endif aoqi@0: aoqi@0: ifdef TESTBOOTCLASSPATH aoqi@0: JTREG_OPTIONS += -Xbootclasspath/p:$(TESTBOOTCLASSPATH) aoqi@0: ### In the following, -refvmoptions is an undocumented option aoqi@0: ### The following does not work JCK 7 b30 2/6/2010. Awaiting b31. aoqi@0: JCK_OPTIONS += \ aoqi@0: -vmoptions:-Xbootclasspath/p:$(TESTBOOTCLASSPATH) \ aoqi@0: -refvmoptions:-Xbootclasspath/p:$(TESTBOOTCLASSPATH) aoqi@0: endif aoqi@0: aoqi@0: # Concurrency is the number of tests that can execute at once. aoqi@0: # On an otherwise empty machine, suggest setting to (#cpus + 2) aoqi@0: # If unset, the default is (#cpus) aoqi@0: ### RFE: determine and use #cpus aoqi@0: ifdef CONCURRENCY aoqi@0: JTREG_OPTIONS += -agentvm -concurrency:$(CONCURRENCY) aoqi@0: else aoqi@0: JTREG_OPTIONS += -samevm aoqi@0: endif aoqi@0: aoqi@0: ifdef JCK_CONCURRENCY aoqi@0: JCK_OPTIONS += -concurrency:$(JCK_CONCURRENCY) aoqi@0: endif aoqi@0: aoqi@0: # JCK is executed using "Multi-JVM Group Mode", which is a hybrid aoqi@0: # of otherVM and sameVM modes. New JVMs are created and reused for aoqi@0: # a number of tests, then eventually discarded and a new one started. aoqi@0: # This amortizes the JVM startup time. The "group size" defines aoqi@0: # how many tests are run in a JVM before it is replaced. aoqi@0: # If unset, the default is 100. aoqi@0: JCK_GROUP_SIZE = 1000 aoqi@0: ifdef JCK_GROUP_SIZE aoqi@0: JCK_COMPILER_OPTIONS += \ aoqi@0: -jtoptions:-Ejck.env.compiler.testCompile.groupMode.groupSize=$(JCK_GROUP_SIZE) \ aoqi@0: -jtoptions:-Ejck.env.compiler.compRefExecute.groupMode.groupSize=$(JCK_GROUP_SIZE) aoqi@0: ### The following is not supported. Awaiting RFE 6924287 aoqi@0: ### 6924287: Jck4Jdk: Allow to configure test group size for group mode via simple command line option aoqi@0: ### JCK_RUNTIME_OPTIONS += \ aoqi@0: ### -jtoptions:-Ejck.env.runtime.testCompile.groupMode.groupSize=$(JCK_GROUP_SIZE) aoqi@0: endif aoqi@0: aoqi@0: # Timeouts -- by default, increase test timeouts when running on JPRT aoqi@0: ifdef JPRT_JOB_ID aoqi@0: ifndef JTREG_TIMEOUT_FACTOR aoqi@0: JTREG_TIMEOUT_FACTOR = 3 aoqi@0: endif aoqi@0: endif aoqi@0: ifdef JTREG_TIMEOUT_FACTOR aoqi@0: JTREG_OPTIONS += -timeoutFactor:$(JTREG_TIMEOUT_FACTOR) aoqi@0: endif aoqi@0: aoqi@0: # Default verbosity setting for jtreg aoqi@0: JTREG_VERBOSE = fail,error,nopass aoqi@0: aoqi@0: # Default verbosity setting for jck aoqi@0: JCK_VERBOSE = non-pass aoqi@0: aoqi@0: # Assertions: some tests show failures when assertions are enabled. aoqi@0: # Since javac is typically loaded via the bootclassloader (either via TESTJAVA aoqi@0: # or TESTBOOTCLASSPATH), you may need -esa to enable assertions in javac. aoqi@0: JTREG_OPTIONS += $(ASSERTION_OPTIONS) aoqi@0: JCK_OPTIONS += $(ASSERTION_OPTIONS:%=-vmoptions:%) aoqi@0: aoqi@0: # Include shared options aoqi@0: JCK_COMPILER_OPTIONS += $(JCK_OPTIONS) aoqi@0: JCK_RUNTIME_OPTIONS += $(JCK_OPTIONS) aoqi@0: aoqi@0: # Exit codes: aoqi@0: # jtreg, jck: 0: OK, 1: tests failed, 2: tests error; 3+: SERIOUS aoqi@0: FATAL_JTREG_EXIT = 3 aoqi@0: FATAL_JCK_EXIT = 3 aoqi@0: # jtdiff: 0: OK, 1: differences found; 2+: SERIOUS aoqi@0: FATAL_JTDIFF_EXIT = 2 aoqi@0: # aoqi@0: # Exit -- used for final "normal" exit from "make". Redefine to "true" to avoid aoqi@0: # having make exit with non-zero return code. aoqi@0: EXIT = exit aoqi@0: # Function to exit shell if exit code of preceding command is greater than or equal aoqi@0: # to a given level. Redefine function or preceding FATAL_*_EXIT codes as needed. aoqi@0: EXIT_IF_FATAL = status=$$?; if [ $$status -ge $(1) ]; then exit $$status ; fi aoqi@0: aoqi@0: # The test directories to run aoqi@0: DEFAULT_TESTDIRS = . aoqi@0: TESTDIRS = $(DEFAULT_TESTDIRS) aoqi@0: aoqi@0: # Root of all test results aoqi@0: TEST_OUTPUT_DIR = $(TEST_ROOT)/../build/$(PLATFORM)-$(ARCH)/test/langtools aoqi@0: ABS_TEST_OUTPUT_DIR := \ aoqi@0: $(shell mkdir -p $(TEST_OUTPUT_DIR); \ aoqi@0: cd $(TEST_OUTPUT_DIR); \ aoqi@0: pwd $(CYGPATH)) aoqi@0: # Subdirectories for different test runs aoqi@0: JTREG_OUTPUT_DIR = $(ABS_TEST_OUTPUT_DIR)/jtreg aoqi@0: JCK_COMPILER_OUTPUT_DIR = $(ABS_TEST_OUTPUT_DIR)/jck-compiler aoqi@0: JCK_RUNTIME_OUTPUT_DIR = $(ABS_TEST_OUTPUT_DIR)/jck-runtime-Xcompile aoqi@0: aoqi@0: # Default make rule -- warning, may take a while aoqi@0: all: $(JPRT_CLEAN) jtreg-tests jck-compiler-tests jck-runtime-tests $(JPRT_ARCHIVE_BUNDLE) all-summary aoqi@0: @echo "Testing completed successfully" aoqi@0: aoqi@0: jtreg apt javac javadoc javah javap jdeps: $(JPRT_CLEAN) jtreg-tests $(JPRT_ARCHIVE_BUNDLE) jtreg-summary aoqi@0: @echo "Testing completed successfully" aoqi@0: aoqi@0: jck-compiler: $(JPRT_CLEAN) jck-compiler-tests $(JPRT_ARCHIVE_BUNDLE) jck-compiler-summary aoqi@0: @echo "Testing completed successfully" aoqi@0: aoqi@0: jck-runtime: $(JPRT_CLEAN) jck-runtime-tests $(JPRT_ARCHIVE_BUNDLE) jck-runtime-summary aoqi@0: @echo "Testing completed successfully" aoqi@0: aoqi@0: # for use with JPRT -testrule aoqi@0: all: JTREG_TESTDIRS = . aoqi@0: jtreg: JTREG_TESTDIRS = . aoqi@0: apt: JTREG_TESTDIRS = tools/apt aoqi@0: javac: JTREG_TESTDIRS = tools/javac aoqi@0: javadoc: JTREG_TESTDIRS = tools/javadoc com/sun/javadoc aoqi@0: javah: JTREG_TESTDIRS = tools/javah aoqi@0: javap: JTREG_TESTDIRS = tools/javap aoqi@0: jdeps: JTREG_TESTDIRS = tools/jdeps aoqi@0: aoqi@0: # Run jtreg tests aoqi@0: # aoqi@0: # JTREG_HOME aoqi@0: # Installed location of jtreg aoqi@0: # JT_JAVA aoqi@0: # Version of java used to run jtreg. Should normally be the same as TESTJAVA aoqi@0: # TESTJAVA aoqi@0: # Version of java to be tested. aoqi@0: # JTREG_VERBOSE aoqi@0: # Verbosity setting for jtreg aoqi@0: # JTREG_OPTIONS aoqi@0: # Additional options for jtreg aoqi@0: # JTREG_TESTDIRS aoqi@0: # Directories of tests to be run aoqi@0: # JTREG_OUTPUT_DIR aoqi@0: # Where to write the results aoqi@0: # JTREG_REFERENCE aoqi@0: # (Optional) reference results (e.g. work, report or summary.txt) aoqi@0: # aoqi@0: jtreg_tests: jtreg-tests aoqi@0: jtreg-tests: check-jtreg FRC aoqi@0: @rm -f -r $(JTREG_OUTPUT_DIR)/JTwork $(JTREG_OUTPUT_DIR)/JTreport \ aoqi@0: $(JTREG_OUTPUT_DIR)/diff.html $(JTREG_OUTPUT_DIR)/status.txt aoqi@0: @mkdir -p $(JTREG_OUTPUT_DIR) aoqi@0: JT_JAVA=$(JT_JAVA) $(JTREG) \ aoqi@0: -J-Xmx512m \ aoqi@0: -vmoption:-Xmx768m \ aoqi@0: -a -ignore:quiet $(if $(JTREG_VERBOSE),-v:$(JTREG_VERBOSE)) \ aoqi@0: -r:$(JTREG_OUTPUT_DIR)/JTreport \ aoqi@0: -w:$(JTREG_OUTPUT_DIR)/JTwork \ aoqi@0: -jdk:$(TESTJAVA) \ aoqi@0: $(JAVA_ARGS:%=-vmoption:%) \ aoqi@0: $(JTREG_OPTIONS) \ aoqi@0: $(JTREG_TESTDIRS) \ aoqi@0: || ( $(call EXIT_IF_FATAL,$(FATAL_JTREG_EXIT)) ; \ aoqi@0: echo $$status > $(JTREG_OUTPUT_DIR)/status.txt \ aoqi@0: ) aoqi@0: ifdef JTREG_REFERENCE aoqi@0: JT_JAVA=$(JT_JAVA) $(JTDIFF) -o $(JTREG_OUTPUT_DIR)/diff.html \ aoqi@0: $(JTREG_REFERENCE) $(JTREG_OUTPUT_DIR)/JTreport \ aoqi@0: || ( $(call EXIT_IF_FATAL,$(FATAL_JTDIFF_EXIT)) ) aoqi@0: endif aoqi@0: aoqi@0: jtreg-summary: FRC aoqi@0: if [ -r $(JTREG_OUTPUT_DIR)/status.txt ]; then \ aoqi@0: echo ; echo "Summary of jtreg test failures" ; \ aoqi@0: cat $(JTREG_OUTPUT_DIR)/JTreport/text/summary.txt | \ aoqi@0: grep -v 'Not run' | grep -v 'Passed' ; \ aoqi@0: echo ; \ aoqi@0: $(EXIT) `cat $(JTREG_OUTPUT_DIR)/status.txt` ; \ aoqi@0: fi aoqi@0: aoqi@0: # Check to make sure these directories exist aoqi@0: check-jtreg: $(PRODUCT_HOME) $(JTREG) aoqi@0: aoqi@0: aoqi@0: # Run JCK-compiler tests aoqi@0: # aoqi@0: # JCK_HOME aoqi@0: # Installed location of JCK: should include JCK-compiler, and JCK-extras aoqi@0: # Default is JCK 8. aoqi@0: # JT_JAVA aoqi@0: # Version of java used to run JCK. Should normally be the same as TESTJAVA aoqi@0: # Default is JDK 7 aoqi@0: # TESTJAVA aoqi@0: # Version of java to be tested. aoqi@0: # JCK_VERBOSE aoqi@0: # Verbosity setting for jtjck aoqi@0: # JCK_COMPILER_OPTIONS aoqi@0: # Additional options for JCK-compiler aoqi@0: # JCK_COMPILER_TESTDIRS aoqi@0: # Directories of tests to be run aoqi@0: # JCK_COMPILER_OUTPUT_DIR aoqi@0: # Where to write the results aoqi@0: # JCK_COMPILER_REFERENCE aoqi@0: # (Optional) reference results (e.g. work, report or summary.txt) aoqi@0: # aoqi@0: jck-compiler-tests: check-jck FRC aoqi@0: @rm -f -r $(JCK_COMPILER_OUTPUT_DIR)/work $(JCK_COMPILER_OUTPUT_DIR)/report \ aoqi@0: $(JCK_COMPILER_OUTPUT_DIR)/diff.html $(JCK_COMPILER_OUTPUT_DIR)/status.txt aoqi@0: @mkdir -p $(JCK_COMPILER_OUTPUT_DIR) aoqi@0: $(JT_JAVA)/bin/java -Xmx512m \ aoqi@0: -jar $(JCK_HOME)/JCK-compiler-8/lib/jtjck.jar \ aoqi@0: $(if $(JCK_VERBOSE),-v:$(JCK_VERBOSE)) \ aoqi@0: -r:$(JCK_COMPILER_OUTPUT_DIR)/report \ aoqi@0: -w:$(JCK_COMPILER_OUTPUT_DIR)/work \ aoqi@0: -jdk:$(TESTJAVA) \ aoqi@0: $(JCK_COMPILER_OPTIONS) \ aoqi@0: $(JCK_COMPILER_TESTDIRS) \ aoqi@0: || ( $(call EXIT_IF_FATAL,$(FATAL_JCK_EXIT)) ; \ aoqi@0: echo $$status > $(JCK_COMPILER_OUTPUT_DIR)/status.txt \ aoqi@0: ) aoqi@0: ifdef JCK_COMPILER_REFERENCE aoqi@0: JT_JAVA=$(JT_JAVA) $(JTDIFF) -o $(JCK_COMPILER_OUTPUT_DIR)/diff.html \ aoqi@0: $(JCK_COMPILER_REFERENCE) $(JCK_COMPILER_OUTPUT_DIR)/report \ aoqi@0: || ( $(call EXIT_IF_FATAL,$(FATAL_JTDIFF_EXIT)) ) aoqi@0: endif aoqi@0: aoqi@0: jck-compiler-summary: FRC aoqi@0: if [ -r $(JCK_COMPILER_OUTPUT_DIR)/status.txt ]; then \ aoqi@0: echo ; echo "Summary of JCK-compiler test failures" ; \ aoqi@0: cat $(JCK_COMPILER_OUTPUT_DIR)/report/text/summary.txt | \ aoqi@0: grep -v 'Not run' | grep -v 'Passed' ; \ aoqi@0: echo ; \ aoqi@0: $(EXIT) `cat $(JCK_COMPILER_OUTPUT_DIR)/status.txt` ; \ aoqi@0: fi aoqi@0: aoqi@0: # Run JCK-runtime tests in -Xcompile mode aoqi@0: # This is a special mode to test javac by compiling the tests in the JCK-runtime test suite aoqi@0: # Normal JCK-runtime invocation belongs in the jdk/ repository. aoqi@0: # aoqi@0: # JCK_HOME aoqi@0: # Installed location of JCK: should include JCK-compiler, JCK-runtime and JCK-extras aoqi@0: # JT_JAVA aoqi@0: # Version of java used to run JCK. Should normally be the same as TESTJAVA aoqi@0: # TESTJAVA aoqi@0: # Version of java to be tested. aoqi@0: # JCK_VERBOSE aoqi@0: # Verbosity setting for jtjck aoqi@0: # JCK_RUNTIME_OPTIONS aoqi@0: # Additional options for JCK-runtime aoqi@0: # JCK_RUNTIME_TESTDIRS aoqi@0: # Directories of tests to be run aoqi@0: # JCK_RUNTIME_OUTPUT_DIR aoqi@0: # Where to write the results aoqi@0: # JCK_RUNTIME_REFERENCE aoqi@0: # (Optional) reference results (e.g. work, report or summary.txt) aoqi@0: # aoqi@0: jck-runtime-tests: check-jck FRC aoqi@0: @rm -f -r $(JCK_RUNTIME_OUTPUT_DIR)/work $(JCK_RUNTIME_OUTPUT_DIR)/report \ aoqi@0: $(JCK_RUNTIME_OUTPUT_DIR)/diff.html $(JCK_RUNTIME_OUTPUT_DIR)/status.txt aoqi@0: @mkdir -p $(JCK_RUNTIME_OUTPUT_DIR) aoqi@0: $(JT_JAVA)/bin/java -Xmx512m \ aoqi@0: -jar $(JCK_HOME)/JCK-runtime-8/lib/jtjck.jar \ aoqi@0: $(if $(JCK_VERBOSE),-v:$(JCK_VERBOSE)) \ aoqi@0: -r:$(JCK_RUNTIME_OUTPUT_DIR)/report \ aoqi@0: -w:$(JCK_RUNTIME_OUTPUT_DIR)/work \ aoqi@0: -jdk:$(TESTJAVA) \ aoqi@0: -Xcompile \ aoqi@0: $(JCK_RUNTIME_OPTIONS) \ aoqi@0: $(JCK_RUNTIME_TESTDIRS) \ aoqi@0: || ( $(call EXIT_IF_FATAL,$(FATAL_JCK_EXIT)) ; \ aoqi@0: echo $$status > $(JCK_RUNTIME_OUTPUT_DIR)/status.txt \ aoqi@0: ) aoqi@0: ifdef JCK_RUNTIME_REFERENCE aoqi@0: JT_JAVA=$(JT_JAVA) $(JTDIFF) -o $(JCK_RUNTIME_OUTPUT_DIR)/diff.html \ aoqi@0: $(JCK_RUNTIME_REFERENCE) $(JCK_RUNTIME_OUTPUT_DIR)/report \ aoqi@0: || ( $(call EXIT_IF_FATAL,$(FATAL_JTDIFF_EXIT)) ) aoqi@0: endif aoqi@0: aoqi@0: jck-runtime-summary: FRC aoqi@0: if [ -r $(JCK_RUNTIME_OUTPUT_DIR)/status.txt ]; then \ aoqi@0: echo ; echo "Summary of JCK-runtime test failures" ; \ aoqi@0: cat $(JCK_RUNTIME_OUTPUT_DIR)/report/text/summary.txt | \ aoqi@0: grep -v 'Not run' | grep -v 'Passed' ; \ aoqi@0: echo ; \ aoqi@0: $(EXIT) `cat $(JCK_RUNTIME_OUTPUT_DIR)/status.txt` ; \ aoqi@0: fi aoqi@0: aoqi@0: # Check to make sure these directories exist aoqi@0: check-jck: $(JCK_HOME) $(PRODUCT_HOME) aoqi@0: aoqi@0: all-summary: FRC aoqi@0: if [ -n "`find $(TEST_OUTPUT_DIR) -name status.txt`" ]; then aoqi@0: echo ; echo "Summary of test failures" ; \ aoqi@0: cat `find $(TEST_OUTPUT_DIR) -name summary.txt` | \ aoqi@0: grep -v 'Not run' | grep -v 'Passed' ; \ aoqi@0: echo ; \ aoqi@0: $(EXIT) 1 aoqi@0: fi aoqi@0: aoqi@0: # Bundle up the results aoqi@0: $(JPRT_ARCHIVE_BUNDLE): FRC aoqi@0: @rm -f $@ aoqi@0: @mkdir -p $(@D) aoqi@0: ( cd $(TEST_OUTPUT_DIR) && zip -q -r $@ . ) aoqi@0: aoqi@0: # Cleanup aoqi@0: clean: aoqi@0: rm -f $(JPRT_ARCHIVE_BUNDLE) aoqi@0: aoqi@0: # Used to force a target rules to run aoqi@0: FRC: aoqi@0: aoqi@0: # Phony targets (e.g. these are not filenames) aoqi@0: .PHONY: all clean \ aoqi@0: jtreg javac javadoc javah javap jdeps jtreg-tests jtreg-summary check-jtreg \ aoqi@0: jck-compiler jck-compiler-tests jck-compiler-summary \ aoqi@0: jck-runtime jck-runtime-tests jck-runtime-summary check-jck aoqi@0: aoqi@0: # No use of suffix rules aoqi@0: .SUFFIXES: aoqi@0: