Mon, 02 Sep 2013 13:13:45 +0200
Merge
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 | |
mgerdin@3664 | 29 | GETMIXEDPATH=echo |
mgerdin@3664 | 30 | |
ohair@763 | 31 | # Get OS/ARCH specifics |
duke@435 | 32 | OSNAME = $(shell uname -s) |
duke@435 | 33 | ifeq ($(OSNAME), SunOS) |
duke@435 | 34 | PLATFORM = solaris |
twisti@995 | 35 | SLASH_JAVA = /java |
duke@435 | 36 | ARCH = $(shell uname -p) |
duke@435 | 37 | ifeq ($(ARCH), i386) |
duke@435 | 38 | ARCH=i586 |
duke@435 | 39 | endif |
duke@435 | 40 | endif |
duke@435 | 41 | ifeq ($(OSNAME), Linux) |
duke@435 | 42 | PLATFORM = linux |
twisti@995 | 43 | SLASH_JAVA = /java |
duke@435 | 44 | ARCH = $(shell uname -m) |
duke@435 | 45 | ifeq ($(ARCH), i386) |
ohair@763 | 46 | ARCH = i586 |
duke@435 | 47 | endif |
duke@435 | 48 | endif |
never@3156 | 49 | ifeq ($(OSNAME), Darwin) |
never@3156 | 50 | PLATFORM = bsd |
never@3156 | 51 | SLASH_JAVA = /java |
never@3156 | 52 | ARCH = $(shell uname -m) |
never@3156 | 53 | ifeq ($(ARCH), i386) |
never@3156 | 54 | ARCH = i586 |
never@3156 | 55 | endif |
never@3156 | 56 | endif |
never@3156 | 57 | ifeq ($(findstring BSD,$(OSNAME)), BSD) |
never@3156 | 58 | PLATFORM = bsd |
never@3156 | 59 | SLASH_JAVA = /java |
never@3156 | 60 | ARCH = $(shell uname -m) |
never@3156 | 61 | ifeq ($(ARCH), i386) |
never@3156 | 62 | ARCH = i586 |
never@3156 | 63 | endif |
never@3156 | 64 | endif |
mgerdin@3664 | 65 | ifeq ($(PLATFORM),) |
mgerdin@3664 | 66 | # detect wether we're running in MKS or cygwin |
mgerdin@3664 | 67 | ifeq ($(OSNAME), Windows_NT) # MKS |
mgerdin@3664 | 68 | GETMIXEDPATH=dosname -s |
mgerdin@3664 | 69 | endif |
mgerdin@3664 | 70 | ifeq ($(findstring CYGWIN,$(OSNAME)), CYGWIN) |
mgerdin@3664 | 71 | GETMIXEDPATH=cygpath -m -s |
mgerdin@3664 | 72 | endif |
duke@435 | 73 | PLATFORM = windows |
ohair@763 | 74 | SLASH_JAVA = J: |
duke@435 | 75 | ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),ia64) |
ohair@763 | 76 | ARCH = ia64 |
duke@435 | 77 | else |
duke@435 | 78 | ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),AMD64) |
ohair@763 | 79 | ARCH = x64 |
duke@435 | 80 | else |
duke@435 | 81 | ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),EM64T) |
ohair@763 | 82 | ARCH = x64 |
duke@435 | 83 | else |
ohair@763 | 84 | ARCH = i586 |
duke@435 | 85 | endif |
duke@435 | 86 | endif |
duke@435 | 87 | endif |
ohair@763 | 88 | EXESUFFIX = .exe |
duke@435 | 89 | endif |
duke@435 | 90 | |
twisti@995 | 91 | ifdef ALT_SLASH_JAVA |
twisti@995 | 92 | SLASH_JAVA = $(ALT_SLASH_JAVA) |
twisti@995 | 93 | endif |
twisti@995 | 94 | |
ohair@763 | 95 | # Utilities used |
ohair@763 | 96 | CD = cd |
ohair@763 | 97 | CP = cp |
ohair@763 | 98 | ECHO = echo |
ohair@763 | 99 | MKDIR = mkdir |
ohair@763 | 100 | ZIP = zip |
duke@435 | 101 | |
ohair@763 | 102 | # Root of this test area (important to use full paths in some places) |
ohair@763 | 103 | TEST_ROOT := $(shell pwd) |
ohair@763 | 104 | |
ohair@763 | 105 | # Root of all test results |
twisti@2256 | 106 | ifdef ALT_OUTPUTDIR |
twisti@2256 | 107 | ABS_BUILD_ROOT = $(ALT_OUTPUTDIR)/$(PLATFORM)-$(ARCH) |
twisti@2256 | 108 | else |
twisti@2256 | 109 | ABS_BUILD_ROOT = $(TEST_ROOT)/../build/$(PLATFORM)-$(ARCH) |
twisti@2256 | 110 | endif |
ohair@763 | 111 | ABS_TEST_OUTPUT_DIR = $(ABS_BUILD_ROOT)/testoutput |
ohair@763 | 112 | |
ohair@763 | 113 | # Expect JPRT to set PRODUCT_HOME (the product or jdk in this case to test) |
ohair@763 | 114 | ifndef PRODUCT_HOME |
ohair@763 | 115 | # Try to use j2sdk-image if it exists |
ohair@763 | 116 | ABS_JDK_IMAGE = $(ABS_BUILD_ROOT)/j2sdk-image |
ohair@763 | 117 | PRODUCT_HOME := \ |
ohair@763 | 118 | $(shell \ |
ohair@763 | 119 | if [ -d $(ABS_JDK_IMAGE) ] ; then \ |
ohair@763 | 120 | $(ECHO) "$(ABS_JDK_IMAGE)"; \ |
ohair@763 | 121 | else \ |
ohair@763 | 122 | $(ECHO) "$(ABS_BUILD_ROOT)" ; \ |
ohair@763 | 123 | fi) |
duke@435 | 124 | endif |
duke@435 | 125 | |
ohair@763 | 126 | # Expect JPRT to set JAVA_ARGS (e.g. -server etc.) |
ohair@763 | 127 | JAVA_OPTIONS = |
ohair@763 | 128 | ifdef JAVA_ARGS |
ohair@763 | 129 | JAVA_OPTIONS = $(JAVA_ARGS) |
ohair@763 | 130 | endif |
duke@435 | 131 | |
ohair@763 | 132 | # Expect JPRT to set JPRT_ARCHIVE_BUNDLE (path to zip bundle for results) |
ohair@763 | 133 | ARCHIVE_BUNDLE = $(ABS_TEST_OUTPUT_DIR)/ARCHIVE_BUNDLE.zip |
ohair@763 | 134 | ifdef JPRT_ARCHIVE_BUNDLE |
ohair@763 | 135 | ARCHIVE_BUNDLE = $(JPRT_ARCHIVE_BUNDLE) |
ohair@763 | 136 | endif |
duke@435 | 137 | |
ohair@763 | 138 | # How to create the test bundle (pass or fail, we want to create this) |
ohair@763 | 139 | BUNDLE_UP = ( $(MKDIR) -p `dirname $(ARCHIVE_BUNDLE)` \ |
ohair@763 | 140 | && $(CD) $(ABS_TEST_OUTPUT_DIR) \ |
ohair@763 | 141 | && $(ZIP) -q -r $(ARCHIVE_BUNDLE) . ) |
ohair@763 | 142 | BUNDLE_UP_FAILED = ( exitCode=$$? && $(BUNDLE_UP) && exit $${exitCode} ) |
duke@435 | 143 | |
ohair@763 | 144 | ################################################################ |
duke@435 | 145 | |
ohair@763 | 146 | # Default make rule (runs jtreg_tests) |
ohair@763 | 147 | all: jtreg_tests |
ohair@763 | 148 | @$(ECHO) "Testing completed successfully" |
duke@435 | 149 | |
ohair@763 | 150 | # Prep for output |
ohair@763 | 151 | prep: clean |
ohair@763 | 152 | @$(MKDIR) -p $(ABS_TEST_OUTPUT_DIR) |
ohair@763 | 153 | @$(MKDIR) -p `dirname $(ARCHIVE_BUNDLE)` |
duke@435 | 154 | |
duke@435 | 155 | # Cleanup |
duke@435 | 156 | clean: |
ohair@763 | 157 | $(RM) -r $(ABS_TEST_OUTPUT_DIR) |
ohair@763 | 158 | $(RM) $(ARCHIVE_BUNDLE) |
duke@435 | 159 | |
ohair@763 | 160 | ################################################################ |
duke@435 | 161 | |
ohair@763 | 162 | # jtreg tests |
ohair@763 | 163 | |
ohair@763 | 164 | # Expect JT_HOME to be set for jtreg tests. (home for jtreg) |
twisti@4941 | 165 | ifndef JT_HOME |
twisti@4941 | 166 | JT_HOME = $(SLASH_JAVA)/re/jtreg/4.0/promoted/latest/binaries/jtreg |
twisti@4941 | 167 | endif |
ohair@763 | 168 | ifdef JPRT_JTREG_HOME |
ohair@763 | 169 | JT_HOME = $(JPRT_JTREG_HOME) |
ohair@763 | 170 | endif |
ohair@763 | 171 | |
ohair@763 | 172 | # Expect JPRT to set TESTDIRS to the jtreg test dirs |
ohair@763 | 173 | JTREG_TESTDIRS = demo/jvmti/gctest demo/jvmti/hprof |
ohair@763 | 174 | ifdef TESTDIRS |
ohair@763 | 175 | JTREG_TESTDIRS = $(TESTDIRS) |
ohair@763 | 176 | endif |
ohair@763 | 177 | |
ohair@763 | 178 | # Default JTREG to run (win32 script works for everybody) |
ohair@763 | 179 | JTREG = $(JT_HOME)/win32/bin/jtreg |
ohair@763 | 180 | |
ohair@763 | 181 | # Option to tell jtreg to not run tests marked with "ignore" |
ohair@763 | 182 | ifeq ($(PLATFORM), windows) |
ohair@763 | 183 | JTREG_KEY_OPTION = -k:!ignore |
ohair@763 | 184 | else |
ohair@763 | 185 | JTREG_KEY_OPTION = -k:\!ignore |
ohair@763 | 186 | endif |
ohair@763 | 187 | |
ohair@763 | 188 | #EXTRA_JTREG_OPTIONS = |
ohair@763 | 189 | |
ohair@763 | 190 | jtreg_tests: prep $(JT_HOME) $(PRODUCT_HOME) $(JTREG) |
ohair@763 | 191 | $(JTREG) -a -v:fail,error \ |
ohair@763 | 192 | $(JTREG_KEY_OPTION) \ |
ohair@763 | 193 | $(EXTRA_JTREG_OPTIONS) \ |
mgerdin@4476 | 194 | -r:$(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)")/JTreport \ |
mgerdin@4476 | 195 | -w:$(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)")/JTwork \ |
mgerdin@4476 | 196 | -jdk:$(shell $(GETMIXEDPATH) "$(PRODUCT_HOME)") \ |
ohair@763 | 197 | $(JAVA_OPTIONS:%=-vmoption:%) \ |
ohair@763 | 198 | $(JTREG_TESTDIRS) \ |
ohair@763 | 199 | || $(BUNDLE_UP_FAILED) |
ohair@763 | 200 | $(BUNDLE_UP) |
ohair@763 | 201 | |
ohair@763 | 202 | PHONY_LIST += jtreg_tests |
ohair@763 | 203 | |
ohair@763 | 204 | ################################################################ |
ohair@763 | 205 | |
ohair@1216 | 206 | # clienttest (make sure various basic java client options work) |
ohair@1216 | 207 | |
ohair@1216 | 208 | clienttest: prep $(PRODUCT_HOME) |
ohair@1216 | 209 | $(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -version |
ohair@1216 | 210 | $(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -help |
ohair@1216 | 211 | $(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -X |
ohair@1216 | 212 | $(RM) $(PRODUCT_HOME)/jre/lib/*/client/classes.jsa |
ohair@1216 | 213 | $(RM) $(PRODUCT_HOME)/jre/bin/client/classes.jsa |
ohair@1216 | 214 | $(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -Xshare:dump |
ohair@1216 | 215 | |
ohair@1216 | 216 | PHONY_LIST += clienttest |
ohair@1216 | 217 | |
ohair@1216 | 218 | ################################################################ |
ohair@1216 | 219 | |
ohair@1216 | 220 | # servertest (make sure various basic java server options work) |
ohair@1216 | 221 | |
ohair@1216 | 222 | servertest: prep $(PRODUCT_HOME) |
ohair@1216 | 223 | $(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -version |
ohair@1216 | 224 | $(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -help |
ohair@1216 | 225 | $(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -X |
ohair@1216 | 226 | |
ohair@1216 | 227 | PHONY_LIST += servertest |
ohair@1216 | 228 | |
ohair@1216 | 229 | ################################################################ |
ohair@1216 | 230 | |
brutisso@3266 | 231 | # internalvmtests (run internal unit tests inside the VM) |
brutisso@3266 | 232 | |
brutisso@3266 | 233 | internalvmtests: prep $(PRODUCT_HOME) |
brutisso@3266 | 234 | $(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -XX:+ExecuteInternalVMTests -version |
brutisso@3266 | 235 | |
brutisso@3266 | 236 | PHONY_LIST += internalvmtests |
brutisso@3266 | 237 | |
brutisso@3266 | 238 | ################################################################ |
brutisso@3266 | 239 | |
mgerdin@3619 | 240 | # wbapitest (make sure the whitebox testing api classes work |
mgerdin@3619 | 241 | |
mgerdin@3619 | 242 | wbapitest: prep $(JT_HOME) $(PRODUCT_HOME) $(JTREG) |
mgerdin@3619 | 243 | $(JTREG) -a -v:fail,error \ |
mgerdin@3619 | 244 | $(JTREG_KEY_OPTION) \ |
mgerdin@3619 | 245 | $(EXTRA_JTREG_OPTIONS) \ |
mgerdin@3664 | 246 | -r:$(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)")/JTreport \ |
mgerdin@3664 | 247 | -w:$(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)")/JTwork \ |
mgerdin@3664 | 248 | -jdk:$(shell $(GETMIXEDPATH) "$(PRODUCT_HOME)") \ |
mgerdin@3619 | 249 | $(JAVA_OPTIONS:%=-vmoption:%) \ |
mgerdin@3664 | 250 | $(shell $(GETMIXEDPATH) "$(TEST_ROOT)")/sanity \ |
mgerdin@3619 | 251 | || $(BUNDLE_UP_FAILED) |
mgerdin@3619 | 252 | $(BUNDLE_UP) |
mgerdin@3619 | 253 | |
mgerdin@3619 | 254 | PHONY_LIST += wbapitest |
mgerdin@3619 | 255 | |
mgerdin@3619 | 256 | ################################################################ |
mgerdin@3619 | 257 | |
ohair@763 | 258 | # packtest |
ohair@763 | 259 | |
ohair@763 | 260 | # Expect JPRT to set JPRT_PACKTEST_HOME. |
ohair@763 | 261 | PACKTEST_HOME = /net/jprt-web.sfbay.sun.com/jprt/allproducts/packtest |
ohair@763 | 262 | ifdef JPRT_PACKTEST_HOME |
ohair@763 | 263 | PACKTEST_HOME = $(JPRT_PACKTEST_HOME) |
ohair@763 | 264 | endif |
ohair@763 | 265 | |
ohair@763 | 266 | #EXTRA_PACKTEST_OPTIONS = |
ohair@763 | 267 | |
ohair@763 | 268 | packtest: prep $(PACKTEST_HOME)/ptest $(PRODUCT_HOME) |
ohair@763 | 269 | ( $(CD) $(PACKTEST_HOME) && \ |
ohair@763 | 270 | $(PACKTEST_HOME)/ptest \ |
ohair@763 | 271 | -t "$(PRODUCT_HOME)" \ |
ohair@763 | 272 | $(PACKTEST_STRESS_OPTION) \ |
ohair@763 | 273 | $(EXTRA_PACKTEST_OPTIONS) \ |
ohair@763 | 274 | -W $(ABS_TEST_OUTPUT_DIR) \ |
ohair@763 | 275 | $(JAVA_OPTIONS:%=-J %) \ |
ohair@763 | 276 | ) || $(BUNDLE_UP_FAILED) |
ohair@763 | 277 | $(BUNDLE_UP) |
ohair@763 | 278 | |
ohair@763 | 279 | packtest_stress: PACKTEST_STRESS_OPTION=-s |
ohair@763 | 280 | packtest_stress: packtest |
ohair@763 | 281 | |
ohair@763 | 282 | PHONY_LIST += packtest packtest_stress |
ohair@763 | 283 | |
ohair@763 | 284 | ################################################################ |
ohair@763 | 285 | |
ohair@763 | 286 | # Phony targets (e.g. these are not filenames) |
ohair@763 | 287 | .PHONY: all clean prep $(PHONY_LIST) |
ohair@763 | 288 | |
ohair@763 | 289 | ################################################################ |
ohair@763 | 290 |