1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/test/Makefile Wed Apr 27 01:25:04 2016 +0800 1.3 @@ -0,0 +1,290 @@ 1.4 +# 1.5 +# Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved. 1.6 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 1.7 +# 1.8 +# This code is free software; you can redistribute it and/or modify it 1.9 +# under the terms of the GNU General Public License version 2 only, as 1.10 +# published by the Free Software Foundation. 1.11 +# 1.12 +# This code is distributed in the hope that it will be useful, but WITHOUT 1.13 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 1.14 +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 1.15 +# version 2 for more details (a copy is included in the LICENSE file that 1.16 +# accompanied this code). 1.17 +# 1.18 +# You should have received a copy of the GNU General Public License version 1.19 +# 2 along with this work; if not, write to the Free Software Foundation, 1.20 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 1.21 +# 1.22 +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 1.23 +# or visit www.oracle.com if you need additional information or have any 1.24 +# questions. 1.25 +# 1.26 +# 1.27 + 1.28 +# 1.29 +# Makefile to run various jdk tests 1.30 +# 1.31 + 1.32 +GETMIXEDPATH=echo 1.33 + 1.34 +# Get OS/ARCH specifics 1.35 +OSNAME = $(shell uname -s) 1.36 +ifeq ($(OSNAME), SunOS) 1.37 + PLATFORM = solaris 1.38 + SLASH_JAVA = /java 1.39 + ARCH = $(shell uname -p) 1.40 + ifeq ($(ARCH), i386) 1.41 + ARCH=i586 1.42 + endif 1.43 +endif 1.44 +ifeq ($(OSNAME), Linux) 1.45 + PLATFORM = linux 1.46 + SLASH_JAVA = /java 1.47 + ARCH = $(shell uname -m) 1.48 + ifeq ($(ARCH), i386) 1.49 + ARCH = i586 1.50 + endif 1.51 +endif 1.52 +ifeq ($(OSNAME), Darwin) 1.53 + PLATFORM = bsd 1.54 + SLASH_JAVA = /java 1.55 + ARCH = $(shell uname -m) 1.56 + ifeq ($(ARCH), i386) 1.57 + ARCH = i586 1.58 + endif 1.59 +endif 1.60 +ifeq ($(findstring BSD,$(OSNAME)), BSD) 1.61 + PLATFORM = bsd 1.62 + SLASH_JAVA = /java 1.63 + ARCH = $(shell uname -m) 1.64 + ifeq ($(ARCH), i386) 1.65 + ARCH = i586 1.66 + endif 1.67 +endif 1.68 +ifeq ($(PLATFORM),) 1.69 + # detect wether we're running in MKS or cygwin 1.70 + ifeq ($(OSNAME), Windows_NT) # MKS 1.71 + GETMIXEDPATH=dosname -s 1.72 + endif 1.73 + ifeq ($(findstring CYGWIN,$(OSNAME)), CYGWIN) 1.74 + GETMIXEDPATH=cygpath -m -s 1.75 + endif 1.76 + PLATFORM = windows 1.77 + SLASH_JAVA = J: 1.78 + ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),ia64) 1.79 + ARCH = ia64 1.80 + else 1.81 + ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),AMD64) 1.82 + ARCH = x64 1.83 + else 1.84 + ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),EM64T) 1.85 + ARCH = x64 1.86 + else 1.87 + ARCH = i586 1.88 + endif 1.89 + endif 1.90 + endif 1.91 + EXESUFFIX = .exe 1.92 +endif 1.93 + 1.94 +ifdef ALT_SLASH_JAVA 1.95 + SLASH_JAVA = $(ALT_SLASH_JAVA) 1.96 +endif 1.97 + 1.98 +# Utilities used 1.99 +CD = cd 1.100 +CP = cp 1.101 +ECHO = echo 1.102 +MKDIR = mkdir 1.103 +ZIP = zip 1.104 + 1.105 +# Root of this test area (important to use full paths in some places) 1.106 +TEST_ROOT := $(shell pwd) 1.107 + 1.108 +# Root of all test results 1.109 +ifdef ALT_OUTPUTDIR 1.110 + ABS_BUILD_ROOT = $(ALT_OUTPUTDIR)/$(PLATFORM)-$(ARCH) 1.111 +else 1.112 + ABS_BUILD_ROOT = $(TEST_ROOT)/../build/$(PLATFORM)-$(ARCH) 1.113 +endif 1.114 +ABS_TEST_OUTPUT_DIR = $(ABS_BUILD_ROOT)/testoutput 1.115 + 1.116 +# Expect JPRT to set PRODUCT_HOME (the product or jdk in this case to test) 1.117 +ifndef PRODUCT_HOME 1.118 + # Try to use j2sdk-image if it exists 1.119 + ABS_JDK_IMAGE = $(ABS_BUILD_ROOT)/j2sdk-image 1.120 + PRODUCT_HOME := \ 1.121 + $(shell \ 1.122 + if [ -d $(ABS_JDK_IMAGE) ] ; then \ 1.123 + $(ECHO) "$(ABS_JDK_IMAGE)"; \ 1.124 + else \ 1.125 + $(ECHO) "$(ABS_BUILD_ROOT)" ; \ 1.126 + fi) 1.127 +endif 1.128 + 1.129 +# Expect JPRT to set JAVA_ARGS (e.g. -server etc.) 1.130 +JAVA_OPTIONS = 1.131 +ifdef JAVA_ARGS 1.132 + JAVA_OPTIONS = $(JAVA_ARGS) 1.133 +endif 1.134 + 1.135 +# Expect JPRT to set JPRT_ARCHIVE_BUNDLE (path to zip bundle for results) 1.136 +ARCHIVE_BUNDLE = $(ABS_TEST_OUTPUT_DIR)/ARCHIVE_BUNDLE.zip 1.137 +ifdef JPRT_ARCHIVE_BUNDLE 1.138 + ARCHIVE_BUNDLE = $(JPRT_ARCHIVE_BUNDLE) 1.139 +endif 1.140 + 1.141 +# How to create the test bundle (pass or fail, we want to create this) 1.142 +BUNDLE_UP = ( $(MKDIR) -p `dirname $(ARCHIVE_BUNDLE)` \ 1.143 + && $(CD) $(ABS_TEST_OUTPUT_DIR) \ 1.144 + && $(ZIP) -q -r $(ARCHIVE_BUNDLE) . ) 1.145 +BUNDLE_UP_FAILED = ( exitCode=$$? && $(BUNDLE_UP) && exit $${exitCode} ) 1.146 + 1.147 +################################################################ 1.148 + 1.149 +# Default make rule (runs jtreg_tests) 1.150 +all: jtreg_tests 1.151 + @$(ECHO) "Testing completed successfully" 1.152 + 1.153 +# Prep for output 1.154 +prep: clean 1.155 + @$(MKDIR) -p $(ABS_TEST_OUTPUT_DIR) 1.156 + @$(MKDIR) -p `dirname $(ARCHIVE_BUNDLE)` 1.157 + 1.158 +# Cleanup 1.159 +clean: 1.160 + $(RM) -r $(ABS_TEST_OUTPUT_DIR) 1.161 + $(RM) $(ARCHIVE_BUNDLE) 1.162 + 1.163 +################################################################ 1.164 + 1.165 +# jtreg tests 1.166 + 1.167 +# Expect JT_HOME to be set for jtreg tests. (home for jtreg) 1.168 +ifndef JT_HOME 1.169 + JT_HOME = $(SLASH_JAVA)/re/jtreg/4.0/promoted/latest/binaries/jtreg 1.170 +endif 1.171 +ifdef JPRT_JTREG_HOME 1.172 + JT_HOME = $(JPRT_JTREG_HOME) 1.173 +endif 1.174 + 1.175 +# Expect JPRT to set TESTDIRS to the jtreg test dirs 1.176 +JTREG_TESTDIRS = demo/jvmti/gctest demo/jvmti/hprof 1.177 +ifdef TESTDIRS 1.178 + JTREG_TESTDIRS = $(TESTDIRS) 1.179 +endif 1.180 + 1.181 +# Default JTREG to run (win32 script works for everybody) 1.182 +JTREG = $(JT_HOME)/win32/bin/jtreg 1.183 + 1.184 +# Option to tell jtreg to not run tests marked with "ignore" 1.185 +ifeq ($(PLATFORM), windows) 1.186 + JTREG_KEY_OPTION = -k:!ignore 1.187 +else 1.188 + JTREG_KEY_OPTION = -k:\!ignore 1.189 +endif 1.190 + 1.191 +#EXTRA_JTREG_OPTIONS = 1.192 + 1.193 +jtreg_tests: prep $(JT_HOME) $(PRODUCT_HOME) $(JTREG) 1.194 + $(JTREG) -a -v:fail,error \ 1.195 + $(JTREG_KEY_OPTION) \ 1.196 + $(EXTRA_JTREG_OPTIONS) \ 1.197 + -r:$(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)")/JTreport \ 1.198 + -w:$(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)")/JTwork \ 1.199 + -jdk:$(shell $(GETMIXEDPATH) "$(PRODUCT_HOME)") \ 1.200 + $(JAVA_OPTIONS:%=-vmoption:%) \ 1.201 + $(JTREG_TESTDIRS) \ 1.202 + || $(BUNDLE_UP_FAILED) 1.203 + $(BUNDLE_UP) 1.204 + 1.205 +PHONY_LIST += jtreg_tests 1.206 + 1.207 +################################################################ 1.208 + 1.209 +# clienttest (make sure various basic java client options work) 1.210 + 1.211 +clienttest: prep $(PRODUCT_HOME) 1.212 + $(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -version 1.213 + $(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -help 1.214 + $(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -X 1.215 + $(RM) $(PRODUCT_HOME)/jre/lib/*/client/classes.jsa 1.216 + $(RM) $(PRODUCT_HOME)/jre/bin/client/classes.jsa 1.217 + $(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -Xshare:dump 1.218 + 1.219 +PHONY_LIST += clienttest 1.220 + 1.221 +################################################################ 1.222 + 1.223 +# servertest (make sure various basic java server options work) 1.224 + 1.225 +servertest: prep $(PRODUCT_HOME) 1.226 + $(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -version 1.227 + $(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -help 1.228 + $(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -X 1.229 + 1.230 +PHONY_LIST += servertest 1.231 + 1.232 +################################################################ 1.233 + 1.234 +# internalvmtests (run internal unit tests inside the VM) 1.235 + 1.236 +internalvmtests: prep $(PRODUCT_HOME) 1.237 + $(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -XX:+ExecuteInternalVMTests -version 1.238 + 1.239 +PHONY_LIST += internalvmtests 1.240 + 1.241 +################################################################ 1.242 + 1.243 +# wbapitest (make sure the whitebox testing api classes work 1.244 + 1.245 +wbapitest: prep $(JT_HOME) $(PRODUCT_HOME) $(JTREG) 1.246 + $(JTREG) -a -v:fail,error \ 1.247 + $(JTREG_KEY_OPTION) \ 1.248 + $(EXTRA_JTREG_OPTIONS) \ 1.249 + -r:$(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)")/JTreport \ 1.250 + -w:$(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)")/JTwork \ 1.251 + -jdk:$(shell $(GETMIXEDPATH) "$(PRODUCT_HOME)") \ 1.252 + $(JAVA_OPTIONS:%=-vmoption:%) \ 1.253 + $(shell $(GETMIXEDPATH) "$(TEST_ROOT)")/sanity \ 1.254 + || $(BUNDLE_UP_FAILED) 1.255 + $(BUNDLE_UP) 1.256 + 1.257 +PHONY_LIST += wbapitest 1.258 + 1.259 +################################################################ 1.260 + 1.261 +# packtest 1.262 + 1.263 +# Expect JPRT to set JPRT_PACKTEST_HOME. 1.264 +PACKTEST_HOME = /net/jprt-web.sfbay.sun.com/jprt/allproducts/packtest 1.265 +ifdef JPRT_PACKTEST_HOME 1.266 + PACKTEST_HOME = $(JPRT_PACKTEST_HOME) 1.267 +endif 1.268 + 1.269 +#EXTRA_PACKTEST_OPTIONS = 1.270 + 1.271 +packtest: prep $(PACKTEST_HOME)/ptest $(PRODUCT_HOME) 1.272 + ( $(CD) $(PACKTEST_HOME) && \ 1.273 + $(PACKTEST_HOME)/ptest \ 1.274 + -t "$(PRODUCT_HOME)" \ 1.275 + $(PACKTEST_STRESS_OPTION) \ 1.276 + $(EXTRA_PACKTEST_OPTIONS) \ 1.277 + -W $(ABS_TEST_OUTPUT_DIR) \ 1.278 + $(JAVA_OPTIONS:%=-J %) \ 1.279 + ) || $(BUNDLE_UP_FAILED) 1.280 + $(BUNDLE_UP) 1.281 + 1.282 +packtest_stress: PACKTEST_STRESS_OPTION=-s 1.283 +packtest_stress: packtest 1.284 + 1.285 +PHONY_LIST += packtest packtest_stress 1.286 + 1.287 +################################################################ 1.288 + 1.289 +# Phony targets (e.g. these are not filenames) 1.290 +.PHONY: all clean prep $(PHONY_LIST) 1.291 + 1.292 +################################################################ 1.293 +