1 | #
|
---|
2 | # Makefile to run jtreg and any other tests
|
---|
3 | #
|
---|
4 |
|
---|
5 | # Get OS/ARCH specifics
|
---|
6 | OSNAME = $(shell uname -s)
|
---|
7 | ifeq ($(OSNAME), SunOS)
|
---|
8 | PLATFORM = solaris
|
---|
9 | JT_PLATFORM = solaris
|
---|
10 | ARCH = $(shell uname -p)
|
---|
11 | ifeq ($(ARCH), i386)
|
---|
12 | ARCH=i586
|
---|
13 | endif
|
---|
14 | endif
|
---|
15 | ifeq ($(OSNAME), Linux)
|
---|
16 | PLATFORM = linux
|
---|
17 | JT_PLATFORM = linux
|
---|
18 | ARCH = $(shell uname -m)
|
---|
19 | ifeq ($(ARCH), i386)
|
---|
20 | ARCH=i586
|
---|
21 | endif
|
---|
22 | endif
|
---|
23 | ifeq ($(OSNAME), Windows_NT)
|
---|
24 | PLATFORM = windows
|
---|
25 | JT_PLATFORM = win32
|
---|
26 | ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),ia64)
|
---|
27 | ARCH=ia64
|
---|
28 | else
|
---|
29 | ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),AMD64)
|
---|
30 | ARCH=x64
|
---|
31 | else
|
---|
32 | ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),EM64T)
|
---|
33 | ARCH=x64
|
---|
34 | else
|
---|
35 | ARCH=i586
|
---|
36 | endif
|
---|
37 | endif
|
---|
38 | endif
|
---|
39 | endif
|
---|
40 |
|
---|
41 | # Root of this test area (important to use full paths in some places)
|
---|
42 | TEST_ROOT := $(shell pwd)
|
---|
43 |
|
---|
44 | # Default bundle of all test results (passed or not)
|
---|
45 | JPRT_ARCHIVE_BUNDLE=$(TEST_ROOT)/JPRT_ARCHIVE_BUNDLE.zip
|
---|
46 |
|
---|
47 | ifeq ($(PLATFORM), windows)
|
---|
48 | SLASH_JAVA = J:
|
---|
49 | else
|
---|
50 | SLASH_JAVA = /java
|
---|
51 | endif
|
---|
52 |
|
---|
53 | # Default JTREG to run
|
---|
54 | ifdef JPRT_JTREG_HOME
|
---|
55 | JTREG_HOME = $(JPRT_JTREG_HOME)
|
---|
56 | else
|
---|
57 | JTREG_HOME = $(SLASH_JAVA)/re/jtreg/4.0/promoted/latest/binaries/jtreg
|
---|
58 | endif
|
---|
59 | JTREG = $(JTREG_HOME)/$(JT_PLATFORM)/bin/jtreg
|
---|
60 |
|
---|
61 | # Default JDK for JTREG
|
---|
62 | ifdef JPRT_JAVA_HOME
|
---|
63 | JT_JAVA = $(JPRT_JAVA_HOME)
|
---|
64 | else
|
---|
65 | JT_JAVA = $(SLASH_JAVA)/re/jdk/1.6.0/archive/fcs/binaries/$(PLATFORM)-$(ARCH)
|
---|
66 | endif
|
---|
67 |
|
---|
68 | # Default JDK to test
|
---|
69 | ifdef JPRT_IMPORT_PRODUCT_HOME
|
---|
70 | TESTJAVA = $(JPRT_IMPORT_PRODUCT_HOME)
|
---|
71 | else
|
---|
72 | TESTJAVA = $(SLASH_JAVA)/re/jdk/1.6.0/promoted/latest/binaries/$(PLATFORM)-$(ARCH)
|
---|
73 | endif
|
---|
74 |
|
---|
75 | TESTBOOTCLASSPATH = $(PRODUCT_HOME)/dist/lib/classes.jar
|
---|
76 |
|
---|
77 | # The test directories to run
|
---|
78 | DEFAULT_TESTDIRS = .
|
---|
79 | TESTDIRS = $(DEFAULT_TESTDIRS)
|
---|
80 |
|
---|
81 | # Root of all test results
|
---|
82 | TEST_OUTPUT_DIR = $(TEST_ROOT)/o_$(PLATFORM)-$(ARCH)
|
---|
83 |
|
---|
84 | # Default make rule
|
---|
85 | all apt javac javadoc javah javap: clean check jtreg-tests $(JPRT_ARCHIVE_BUNDLE)
|
---|
86 | @echo "Testing completed successfully"
|
---|
87 |
|
---|
88 | # for use with JPRT -testrule
|
---|
89 | all: TESTDIRS = .
|
---|
90 | apt: TESTDIRS = tools/apt
|
---|
91 | javac: TESTDIRS = tools/javac
|
---|
92 | javadoc: TESTDIRS = tools/javadoc com/sun/javadoc
|
---|
93 | javah: TESTDIRS = tools/javah
|
---|
94 | javap: TESTDIRS = tools/javap
|
---|
95 |
|
---|
96 | # Check to make sure these directories exist
|
---|
97 | check: $(JT_HOME) $(PRODUCT_HOME) $(JTREG)
|
---|
98 |
|
---|
99 | # Run the tests
|
---|
100 | jtreg-tests: FRC
|
---|
101 | @echo "Using export JAVA_TOOL_OPTIONS=$(JAVA_TOOL_OPTIONS)"
|
---|
102 | @rm -f -r $(TEST_OUTPUT_DIR)/JTwork $(TEST_OUTPUT_DIR)/JTreport
|
---|
103 | @mkdir -p $(TEST_OUTPUT_DIR)
|
---|
104 | JT_JAVA=$(JT_JAVA) $(JTREG) \
|
---|
105 | -a -samevm -k:\!ignore -v:fail,error,nopass \
|
---|
106 | -r:$(TEST_OUTPUT_DIR)/JTreport \
|
---|
107 | -w:$(TEST_OUTPUT_DIR)/JTwork \
|
---|
108 | -jdk:$(TESTJAVA) \
|
---|
109 | -Xbootclasspath/p:$(TESTBOOTCLASSPATH) \
|
---|
110 | $(JAVA_ARGS:%=-vmoption:%) \
|
---|
111 | $(TESTDIRS) \
|
---|
112 | || ( status=$$? ; \
|
---|
113 | echo ; echo "Summary of test failures" ; \
|
---|
114 | cat $(TEST_OUTPUT_DIR)/JTreport/text/summary.txt | \
|
---|
115 | grep -v 'Not run' | grep -v 'Passed' ; \
|
---|
116 | echo ; \
|
---|
117 | exit $$status )
|
---|
118 |
|
---|
119 | # Bundle up the results
|
---|
120 | $(JPRT_ARCHIVE_BUNDLE): FRC
|
---|
121 | @rm -f $@
|
---|
122 | @mkdir -p $(@D)
|
---|
123 | ( cd $(TEST_OUTPUT_DIR) && zip -q -r $@ . )
|
---|
124 |
|
---|
125 | # Cleanup
|
---|
126 | clean:
|
---|
127 | rm -f -r $(TEST_OUTPUT_DIR)
|
---|
128 | rm -f $(JPRT_ARCHIVE_BUNDLE)
|
---|
129 |
|
---|
130 | # Used to force a target rules to run
|
---|
131 | FRC:
|
---|
132 |
|
---|
133 | # Phony targets (e.g. these are not filenames)
|
---|
134 | .PHONY: all tests clean check
|
---|
135 |
|
---|