test/Makefile

Tue, 08 Aug 2017 15:57:29 +0800

author
aoqi
date
Tue, 08 Aug 2017 15:57:29 +0800
changeset 6876
710a3c8b516e
parent 6198
55fb97c4c58d
parent 0
f90c822e73f8
child 7535
7ae4e26cb1e0
permissions
-rw-r--r--

merge

aoqi@0 1 #
aoqi@0 2 # Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
aoqi@0 3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
aoqi@0 4 #
aoqi@0 5 # This code is free software; you can redistribute it and/or modify it
aoqi@0 6 # under the terms of the GNU General Public License version 2 only, as
aoqi@0 7 # published by the Free Software Foundation.
aoqi@0 8 #
aoqi@0 9 # This code is distributed in the hope that it will be useful, but WITHOUT
aoqi@0 10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
aoqi@0 11 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
aoqi@0 12 # version 2 for more details (a copy is included in the LICENSE file that
aoqi@0 13 # accompanied this code).
aoqi@0 14 #
aoqi@0 15 # You should have received a copy of the GNU General Public License version
aoqi@0 16 # 2 along with this work; if not, write to the Free Software Foundation,
aoqi@0 17 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
aoqi@0 18 #
aoqi@0 19 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
aoqi@0 20 # or visit www.oracle.com if you need additional information or have any
aoqi@0 21 # questions.
aoqi@0 22 #
aoqi@0 23 #
aoqi@0 24
aoqi@0 25 #
aoqi@0 26 # Makefile to run various jdk tests
aoqi@0 27 #
aoqi@0 28
aoqi@0 29 GETMIXEDPATH=echo
aoqi@0 30
aoqi@0 31 # Get OS/ARCH specifics
aoqi@0 32 OSNAME = $(shell uname -s)
aoqi@0 33 ifeq ($(OSNAME), SunOS)
aoqi@0 34 PLATFORM = solaris
aoqi@0 35 SLASH_JAVA = /java
aoqi@0 36 ARCH = $(shell uname -p)
aoqi@0 37 ifeq ($(ARCH), i386)
aoqi@0 38 ARCH=i586
aoqi@0 39 endif
aoqi@0 40 endif
aoqi@0 41 ifeq ($(OSNAME), Linux)
aoqi@0 42 PLATFORM = linux
aoqi@0 43 SLASH_JAVA = /java
aoqi@0 44 ARCH = $(shell uname -m)
aoqi@0 45 ifeq ($(ARCH), i386)
aoqi@0 46 ARCH = i586
aoqi@0 47 endif
aoqi@0 48 endif
aoqi@0 49 ifeq ($(OSNAME), Darwin)
aoqi@0 50 PLATFORM = bsd
aoqi@0 51 SLASH_JAVA = /java
aoqi@0 52 ARCH = $(shell uname -m)
aoqi@0 53 ifeq ($(ARCH), i386)
aoqi@0 54 ARCH = i586
aoqi@0 55 endif
aoqi@0 56 endif
aoqi@0 57 ifeq ($(findstring BSD,$(OSNAME)), BSD)
aoqi@0 58 PLATFORM = bsd
aoqi@0 59 SLASH_JAVA = /java
aoqi@0 60 ARCH = $(shell uname -m)
aoqi@0 61 ifeq ($(ARCH), i386)
aoqi@0 62 ARCH = i586
aoqi@0 63 endif
aoqi@0 64 endif
aoqi@0 65 ifeq ($(PLATFORM),)
aoqi@0 66 # detect wether we're running in MKS or cygwin
aoqi@0 67 ifeq ($(OSNAME), Windows_NT) # MKS
aoqi@0 68 GETMIXEDPATH=dosname -s
aoqi@0 69 endif
aoqi@0 70 ifeq ($(findstring CYGWIN,$(OSNAME)), CYGWIN)
aoqi@0 71 GETMIXEDPATH=cygpath -m -s
aoqi@0 72 endif
aoqi@0 73 PLATFORM = windows
aoqi@0 74 SLASH_JAVA = J:
aoqi@0 75 ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),ia64)
aoqi@0 76 ARCH = ia64
aoqi@0 77 else
aoqi@0 78 ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),AMD64)
aoqi@0 79 ARCH = x64
aoqi@0 80 else
aoqi@0 81 ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),EM64T)
aoqi@0 82 ARCH = x64
aoqi@0 83 else
aoqi@0 84 ARCH = i586
aoqi@0 85 endif
aoqi@0 86 endif
aoqi@0 87 endif
aoqi@0 88 EXESUFFIX = .exe
aoqi@0 89 endif
aoqi@0 90
aoqi@0 91 ifdef ALT_SLASH_JAVA
aoqi@0 92 SLASH_JAVA = $(ALT_SLASH_JAVA)
aoqi@0 93 endif
aoqi@0 94
aoqi@0 95 # Utilities used
aoqi@0 96 CD = cd
aoqi@0 97 CP = cp
aoqi@0 98 ECHO = echo
aoqi@0 99 MKDIR = mkdir
aoqi@0 100 ZIP = zip
aoqi@0 101
aoqi@0 102 # Root of this test area (important to use full paths in some places)
aoqi@0 103 TEST_ROOT := $(shell pwd)
aoqi@0 104
aoqi@0 105 # Root of all test results
aoqi@0 106 ifdef ALT_OUTPUTDIR
aoqi@0 107 ABS_BUILD_ROOT = $(ALT_OUTPUTDIR)/$(PLATFORM)-$(ARCH)
aoqi@0 108 else
aoqi@0 109 ABS_BUILD_ROOT = $(TEST_ROOT)/../build/$(PLATFORM)-$(ARCH)
aoqi@0 110 endif
aoqi@0 111 ABS_TEST_OUTPUT_DIR = $(ABS_BUILD_ROOT)/testoutput
aoqi@0 112
aoqi@0 113 # Expect JPRT to set PRODUCT_HOME (the product or jdk in this case to test)
aoqi@0 114 ifndef PRODUCT_HOME
aoqi@0 115 # Try to use j2sdk-image if it exists
aoqi@0 116 ABS_JDK_IMAGE = $(ABS_BUILD_ROOT)/j2sdk-image
aoqi@0 117 PRODUCT_HOME := \
aoqi@0 118 $(shell \
aoqi@0 119 if [ -d $(ABS_JDK_IMAGE) ] ; then \
aoqi@0 120 $(ECHO) "$(ABS_JDK_IMAGE)"; \
aoqi@0 121 else \
aoqi@0 122 $(ECHO) "$(ABS_BUILD_ROOT)" ; \
aoqi@0 123 fi)
aoqi@0 124 endif
aoqi@0 125
aoqi@0 126 # Expect JPRT to set JAVA_ARGS (e.g. -server etc.)
aoqi@0 127 JAVA_OPTIONS =
aoqi@0 128 ifdef JAVA_ARGS
aoqi@0 129 JAVA_OPTIONS = $(JAVA_ARGS)
aoqi@0 130 endif
aoqi@0 131
aoqi@0 132 # Expect JPRT to set JPRT_ARCHIVE_BUNDLE (path to zip bundle for results)
aoqi@0 133 ARCHIVE_BUNDLE = $(ABS_TEST_OUTPUT_DIR)/ARCHIVE_BUNDLE.zip
aoqi@0 134 ifdef JPRT_ARCHIVE_BUNDLE
aoqi@0 135 ARCHIVE_BUNDLE = $(JPRT_ARCHIVE_BUNDLE)
aoqi@0 136 endif
aoqi@0 137
aoqi@0 138 # How to create the test bundle (pass or fail, we want to create this)
aoqi@0 139 BUNDLE_UP = ( $(MKDIR) -p `dirname $(ARCHIVE_BUNDLE)` \
aoqi@0 140 && $(CD) $(ABS_TEST_OUTPUT_DIR) \
aoqi@0 141 && $(ZIP) -q -r $(ARCHIVE_BUNDLE) . )
aoqi@0 142 BUNDLE_UP_FAILED = ( exitCode=$$? && $(BUNDLE_UP) && exit $${exitCode} )
aoqi@0 143
aoqi@0 144 ################################################################
aoqi@0 145
aoqi@0 146 # Default make rule (runs jtreg_tests)
aoqi@0 147 all: jtreg_tests
aoqi@0 148 @$(ECHO) "Testing completed successfully"
aoqi@0 149
aoqi@0 150 # Prep for output
aoqi@0 151 prep: clean
aoqi@0 152 @$(MKDIR) -p $(ABS_TEST_OUTPUT_DIR)
aoqi@0 153 @$(MKDIR) -p `dirname $(ARCHIVE_BUNDLE)`
aoqi@0 154
aoqi@0 155 # Cleanup
aoqi@0 156 clean:
aoqi@0 157 $(RM) -r $(ABS_TEST_OUTPUT_DIR)
aoqi@0 158 $(RM) $(ARCHIVE_BUNDLE)
aoqi@0 159
aoqi@0 160 ################################################################
aoqi@0 161
aoqi@0 162 # jtreg tests
aoqi@0 163
aoqi@0 164 # Expect JT_HOME to be set for jtreg tests. (home for jtreg)
aoqi@0 165 ifndef JT_HOME
aoqi@0 166 JT_HOME = $(SLASH_JAVA)/re/jtreg/4.0/promoted/latest/binaries/jtreg
aoqi@0 167 endif
aoqi@0 168 ifdef JPRT_JTREG_HOME
aoqi@0 169 JT_HOME = $(JPRT_JTREG_HOME)
aoqi@0 170 endif
aoqi@0 171
aoqi@0 172 # Expect JPRT to set TESTDIRS to the jtreg test dirs
aoqi@0 173 JTREG_TESTDIRS = demo/jvmti/gctest demo/jvmti/hprof
aoqi@0 174 ifdef TESTDIRS
aoqi@0 175 JTREG_TESTDIRS = $(TESTDIRS)
aoqi@0 176 endif
aoqi@0 177
aoqi@0 178 # Default JTREG to run (win32 script works for everybody)
aoqi@0 179 JTREG = $(JT_HOME)/win32/bin/jtreg
aoqi@0 180
aoqi@0 181 # Option to tell jtreg to not run tests marked with "ignore"
aoqi@0 182 ifeq ($(PLATFORM), windows)
aoqi@0 183 JTREG_KEY_OPTION = -k:!ignore
aoqi@0 184 else
aoqi@0 185 JTREG_KEY_OPTION = -k:\!ignore
aoqi@0 186 endif
aoqi@0 187
aoqi@0 188 #EXTRA_JTREG_OPTIONS =
aoqi@0 189
aoqi@0 190 jtreg_tests: prep $(JT_HOME) $(PRODUCT_HOME) $(JTREG)
aoqi@0 191 $(JTREG) -a -v:fail,error \
aoqi@0 192 $(JTREG_KEY_OPTION) \
aoqi@0 193 $(EXTRA_JTREG_OPTIONS) \
aoqi@0 194 -r:$(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)")/JTreport \
aoqi@0 195 -w:$(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)")/JTwork \
aoqi@0 196 -jdk:$(shell $(GETMIXEDPATH) "$(PRODUCT_HOME)") \
aoqi@0 197 $(JAVA_OPTIONS:%=-vmoption:%) \
aoqi@0 198 $(JTREG_TESTDIRS) \
aoqi@0 199 || $(BUNDLE_UP_FAILED)
aoqi@0 200 $(BUNDLE_UP)
aoqi@0 201
aoqi@0 202 PHONY_LIST += jtreg_tests
aoqi@0 203
aoqi@0 204 ################################################################
aoqi@0 205
aoqi@0 206 # clienttest (make sure various basic java client options work)
aoqi@0 207
aoqi@0 208 clienttest: prep $(PRODUCT_HOME)
aoqi@0 209 $(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -version
aoqi@0 210 $(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -help
aoqi@0 211 $(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -X
aoqi@0 212 $(RM) $(PRODUCT_HOME)/jre/lib/*/client/classes.jsa
aoqi@0 213 $(RM) $(PRODUCT_HOME)/jre/bin/client/classes.jsa
aoqi@0 214 $(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -Xshare:dump
aoqi@0 215
aoqi@0 216 PHONY_LIST += clienttest
aoqi@0 217
aoqi@0 218 ################################################################
aoqi@0 219
aoqi@0 220 # servertest (make sure various basic java server options work)
aoqi@0 221
aoqi@0 222 servertest: prep $(PRODUCT_HOME)
aoqi@0 223 $(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -version
aoqi@0 224 $(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -help
aoqi@0 225 $(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -X
aoqi@0 226
aoqi@0 227 PHONY_LIST += servertest
aoqi@0 228
aoqi@0 229 ################################################################
aoqi@0 230
aoqi@0 231 # internalvmtests (run internal unit tests inside the VM)
aoqi@0 232
aoqi@0 233 internalvmtests: prep $(PRODUCT_HOME)
aoqi@0 234 $(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -XX:+ExecuteInternalVMTests -version
aoqi@0 235
aoqi@0 236 PHONY_LIST += internalvmtests
aoqi@0 237
aoqi@0 238 ################################################################
aoqi@0 239
aoqi@0 240 # wbapitest (make sure the whitebox testing api classes work
aoqi@0 241
aoqi@0 242 wbapitest: prep $(JT_HOME) $(PRODUCT_HOME) $(JTREG)
aoqi@0 243 $(JTREG) -a -v:fail,error \
aoqi@0 244 $(JTREG_KEY_OPTION) \
aoqi@0 245 $(EXTRA_JTREG_OPTIONS) \
aoqi@0 246 -r:$(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)")/JTreport \
aoqi@0 247 -w:$(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)")/JTwork \
aoqi@0 248 -jdk:$(shell $(GETMIXEDPATH) "$(PRODUCT_HOME)") \
aoqi@0 249 $(JAVA_OPTIONS:%=-vmoption:%) \
aoqi@0 250 $(shell $(GETMIXEDPATH) "$(TEST_ROOT)")/sanity \
aoqi@0 251 || $(BUNDLE_UP_FAILED)
aoqi@0 252 $(BUNDLE_UP)
aoqi@0 253
aoqi@0 254 PHONY_LIST += wbapitest
aoqi@0 255
aoqi@0 256 ################################################################
aoqi@0 257
aoqi@0 258 # packtest
aoqi@0 259
aoqi@0 260 # Expect JPRT to set JPRT_PACKTEST_HOME.
aoqi@0 261 PACKTEST_HOME = /net/jprt-web.sfbay.sun.com/jprt/allproducts/packtest
aoqi@0 262 ifdef JPRT_PACKTEST_HOME
aoqi@0 263 PACKTEST_HOME = $(JPRT_PACKTEST_HOME)
aoqi@0 264 endif
aoqi@0 265
aoqi@0 266 #EXTRA_PACKTEST_OPTIONS =
aoqi@0 267
aoqi@0 268 packtest: prep $(PACKTEST_HOME)/ptest $(PRODUCT_HOME)
aoqi@0 269 ( $(CD) $(PACKTEST_HOME) && \
aoqi@0 270 $(PACKTEST_HOME)/ptest \
aoqi@0 271 -t "$(PRODUCT_HOME)" \
aoqi@0 272 $(PACKTEST_STRESS_OPTION) \
aoqi@0 273 $(EXTRA_PACKTEST_OPTIONS) \
aoqi@0 274 -W $(ABS_TEST_OUTPUT_DIR) \
aoqi@0 275 $(JAVA_OPTIONS:%=-J %) \
aoqi@0 276 ) || $(BUNDLE_UP_FAILED)
aoqi@0 277 $(BUNDLE_UP)
aoqi@0 278
aoqi@0 279 packtest_stress: PACKTEST_STRESS_OPTION=-s
aoqi@0 280 packtest_stress: packtest
aoqi@0 281
aoqi@0 282 PHONY_LIST += packtest packtest_stress
aoqi@0 283
aoqi@0 284 ################################################################
aoqi@0 285
aoqi@0 286 # Phony targets (e.g. these are not filenames)
aoqi@0 287 .PHONY: all clean prep $(PHONY_LIST)
aoqi@0 288
aoqi@0 289 ################################################################
aoqi@0 290

mercurial