#
# Makefile to run jtreg
#
# Get OS/ARCH specifics
OSNAME = $(shell uname -s)
ifeq ($(OSNAME), SunOS)
PLATFORM = solaris
JCT_PLATFORM = solaris
ARCH = $(shell uname -p)
ifeq ($(ARCH), i386)
ARCH=i586
endif
endif
ifeq ($(OSNAME), Linux)
PLATFORM = linux
JCT_PLATFORM = linux
ARCH = $(shell uname -m)
ifeq ($(ARCH), i386)
ARCH=i586
endif
endif
ifeq ($(OSNAME), Windows_NT)
PLATFORM = windows
JCT_PLATFORM = win32
ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),ia64)
ARCH=ia64
else
ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),AMD64)
ARCH=x64
else
ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),EM64T)
ARCH=x64
else
ARCH=i586
endif
endif
endif
endif
# Root of this test area (important to use full paths in some places)
TEST_ROOT := $(shell pwd)
# Default bundle of all test results (passed or not)
JPRT_ARCHIVE_BUNDLE=$(TEST_ROOT)/JPRT_ARCHIVE_BUNDLE.zip
# Default home for JTREG
ifeq ($(PLATFORM), windows)
JT_HOME = J:/svc/jct-tools3.2.2_02
JTREG_KEY_OPTION=-k:!ignore
else
JT_HOME = /java/svc/jct-tools3.2.2_02
JTREG_KEY_OPTION=-k:\!ignore
endif
# Default JTREG to run
JTREG = $(JT_HOME)/$(JCT_PLATFORM)/bin/jtreg
# Default JDK to test
JAVA_HOME = $(TEST_ROOT)/../build/$(PLATFORM)-$(ARCH)
# The test directories to run
DEFAULT_TESTDIRS = demo/jvmti/gctest demo/jvmti/hprof
TESTDIRS = $(DEFAULT_TESTDIRS)
# Root of all test results
JTREG_OUTPUT_DIR = $(TEST_ROOT)/o_$(PLATFORM)-$(ARCH)
# Export this setting and pass it in.
#JAVA_TOOL_OPTIONS = -Djava.awt.headless=true
#export JAVA_TOOL_OPTIONS
# Default make rule
all: clean check tests $(JPRT_ARCHIVE_BUNDLE)
@echo "Testing completed successfully"
# Chaeck to make sure these directories exist
check: $(JT_HOME) $(JAVA_HOME) $(JTREG)
# Run the tests
tests: FRC
@echo "Using export JAVA_TOOL_OPTIONS=$(JAVA_TOOL_OPTIONS)"
@rm -f -r $(JTREG_OUTPUT_DIR)
@mkdir -p $(JTREG_OUTPUT_DIR)
$(JTREG) -a -v:fail,error \
$(JTREG_KEY_OPTION) \
-r:$(JTREG_OUTPUT_DIR)/JTreport \
-w:$(JTREG_OUTPUT_DIR)/JTwork \
-jdk:$(JAVA_HOME) \
$(JAVA_TOOL_OPTIONS:%=-vmoption:%) \
$(JAVA_ARGS:%=-vmoption:%) \
$(TESTDIRS)
# Bundle up the results
$(JPRT_ARCHIVE_BUNDLE): FRC
@rm -f $@
@mkdir -p $(@D)
( cd $(JTREG_OUTPUT_DIR) && zip -q -r $@ . )
# Cleanup
clean:
rm -f -r $(JTREG_OUTPUT_DIR)
rm -f $(JPRT_ARCHIVE_BUNDLE)
# Used to force a target rules to run
FRC:
# Phony targets (e.g. these are not filenames)
.PHONY: all tests clean check