test/Makefile

Thu, 23 Feb 2012 14:58:35 +0100

author
mgerdin
date
Thu, 23 Feb 2012 14:58:35 +0100
changeset 3619
2d503de963b3
parent 3266
6fd81579526f
child 3664
0e9e3cecdc81
permissions
-rw-r--r--

7148152: Add whitebox testing API to HotSpot
Summary: Add an internal testing API to HotSpot to enable more targeted testing of vm functionality
Reviewed-by: phh, dholmes

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

mercurial