test/Makefile

changeset 0
f90c822e73f8
child 6876
710a3c8b516e
     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 +

mercurial