test/Makefile

Mon, 28 Jul 2014 15:06:38 -0700

author
fzhinkin
date
Mon, 28 Jul 2014 15:06:38 -0700
changeset 6997
dbb05f6d93c4
parent 6916
637e659fb097
child 7204
97ad90b2712c
permissions
-rw-r--r--

8051344: JVM crashed in Compile::start() during method parsing w/ UseRTMDeopt turned on
Summary: call rtm_deopt() only if there were no compilation bailouts before.
Reviewed-by: kvn

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

mercurial