Makefile revision 396
0N/A#
0N/A# Makefile to run jtreg and any other tests
0N/A#
0N/A
0N/A# Get OS/ARCH specifics
0N/AOSNAME = $(shell uname -s)
0N/Aifeq ($(OSNAME), SunOS)
0N/A PLATFORM = solaris
0N/A JT_PLATFORM = solaris
0N/A ARCH = $(shell uname -p)
0N/A ifeq ($(ARCH), i386)
0N/A ARCH=i586
0N/A endif
0N/Aendif
0N/Aifeq ($(OSNAME), Linux)
0N/A PLATFORM = linux
0N/A JT_PLATFORM = linux
0N/A ARCH = $(shell uname -m)
0N/A ifeq ($(ARCH), i386)
0N/A ARCH=i586
0N/A endif
0N/Aendif
0N/Aifeq ($(OSNAME), Windows_NT)
0N/A PLATFORM = windows
0N/A JT_PLATFORM = win32
0N/A ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),ia64)
0N/A ARCH=ia64
0N/A else
0N/A ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),AMD64)
0N/A ARCH=x64
0N/A else
0N/A ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),EM64T)
0N/A ARCH=x64
0N/A else
0N/A ARCH=i586
0N/A endif
0N/A endif
0N/A endif
0N/Aendif
0N/A
0N/A# Root of this test area (important to use full paths in some places)
0N/ATEST_ROOT := $(shell pwd)
0N/A
0N/A# Default bundle of all test results (passed or not)
0N/AJPRT_ARCHIVE_BUNDLE=$(TEST_ROOT)/JPRT_ARCHIVE_BUNDLE.zip
0N/A
0N/Aifeq ($(PLATFORM), windows)
0N/A SLASH_JAVA = J:
0N/Aelse
0N/A SLASH_JAVA = /java
0N/Aendif
0N/A
0N/A# Default JTREG to run
396N/Aifdef JPRT_JTREG_HOME
396N/A JTREG_HOME = $(JPRT_JTREG_HOME)
396N/Aelse
396N/A JTREG_HOME = $(SLASH_JAVA)/re/jtreg/4.0/promoted/latest/binaries/jtreg
396N/Aendif
396N/AJTREG = $(JTREG_HOME)/$(JT_PLATFORM)/bin/jtreg
0N/A
0N/A# Default JDK for JTREG
0N/Aifdef JPRT_JAVA_HOME
0N/A JT_JAVA = $(JPRT_JAVA_HOME)
0N/Aelse
0N/A JT_JAVA = $(SLASH_JAVA)/re/jdk/1.6.0/archive/fcs/binaries/$(PLATFORM)-$(ARCH)
0N/Aendif
0N/A
0N/A# Default JDK to test
396N/Aifdef JPRT_IMPORT_PRODUCT_HOME
396N/A TESTJAVA = $(JPRT_IMPORT_PRODUCT_HOME)
396N/Aelse
396N/A TESTJAVA = $(SLASH_JAVA)/re/jdk/1.7.0/promoted/latest/binaries/$(PLATFORM)-$(ARCH)
396N/Aendif
396N/A
0N/ATESTBOOTCLASSPATH = $(PRODUCT_HOME)/dist/lib/classes.jar
0N/A
0N/A# The test directories to run
0N/ADEFAULT_TESTDIRS = .
0N/ATESTDIRS = $(DEFAULT_TESTDIRS)
0N/A
0N/A# Root of all test results
0N/ATEST_OUTPUT_DIR = $(TEST_ROOT)/o_$(PLATFORM)-$(ARCH)
0N/A
0N/A# Default make rule
396N/Aall apt javac javadoc javah javap: clean check jtreg-tests $(JPRT_ARCHIVE_BUNDLE)
0N/A @echo "Testing completed successfully"
0N/A
0N/A# for use with JPRT -testrule
0N/Aall: TESTDIRS = .
396N/Aapt: TESTDIRS = tools/apt
396N/Ajavac: TESTDIRS = tools/javac
0N/Ajavadoc: TESTDIRS = tools/javadoc com/sun/javadoc
0N/Ajavah: TESTDIRS = tools/javah
0N/Ajavap: TESTDIRS = tools/javap
0N/A
0N/A# Check to make sure these directories exist
0N/Acheck: $(JT_HOME) $(PRODUCT_HOME) $(JTREG)
0N/A
0N/A# Run the tests
0N/Ajtreg-tests: FRC
0N/A @echo "Using export JAVA_TOOL_OPTIONS=$(JAVA_TOOL_OPTIONS)"
0N/A @rm -f -r $(TEST_OUTPUT_DIR)/JTwork $(TEST_OUTPUT_DIR)/JTreport
0N/A @mkdir -p $(TEST_OUTPUT_DIR)
396N/A JT_JAVA=$(JT_JAVA) $(JTREG) \
396N/A -a -samevm -k:\!ignore -v:fail,error,nopass \
0N/A -r:$(TEST_OUTPUT_DIR)/JTreport \
0N/A -w:$(TEST_OUTPUT_DIR)/JTwork \
0N/A -jdk:$(TESTJAVA) \
0N/A -Xbootclasspath/p:$(TESTBOOTCLASSPATH) \
0N/A $(JAVA_ARGS:%=-vmoption:%) \
396N/A $(TESTDIRS) \
396N/A || ( status=$$? ; \
396N/A echo ; echo "Summary of test failures" ; \
396N/A cat $(TEST_OUTPUT_DIR)/JTreport/text/summary.txt | \
396N/A grep -v 'Not run' | grep -v 'Passed' ; \
396N/A echo ; \
396N/A exit $$status )
0N/A
0N/A# Bundle up the results
0N/A$(JPRT_ARCHIVE_BUNDLE): FRC
0N/A @rm -f $@
0N/A @mkdir -p $(@D)
0N/A ( cd $(TEST_OUTPUT_DIR) && zip -q -r $@ . )
0N/A
0N/A# Cleanup
0N/Aclean:
0N/A rm -f -r $(TEST_OUTPUT_DIR)
0N/A rm -f $(JPRT_ARCHIVE_BUNDLE)
0N/A
0N/A# Used to force a target rules to run
0N/AFRC:
0N/A
0N/A# Phony targets (e.g. these are not filenames)
0N/A.PHONY: all tests clean check
0N/A