test/Makefile

Wed, 21 Mar 2012 08:34:23 +0100

author
mgerdin
date
Wed, 21 Mar 2012 08:34:23 +0100
changeset 3664
0e9e3cecdc81
parent 3619
2d503de963b3
child 4476
bf8c2b2c8cfa
permissions
-rw-r--r--

7152791: wbapi tests fail on cygwin
Summary: Detect cygwin prescence when setting up PLATFORM. Translate cygwin style paths before passing them on to jtreg.
Reviewed-by: jcoomes, brutisso

     1 #
     2 # Copyright (c) 1995, 2012, 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 # Prep for output
   151 prep: clean
   152 	@$(MKDIR) -p $(ABS_TEST_OUTPUT_DIR)
   153 	@$(MKDIR) -p `dirname $(ARCHIVE_BUNDLE)`
   155 # Cleanup
   156 clean:
   157 	$(RM) -r $(ABS_TEST_OUTPUT_DIR)
   158 	$(RM) $(ARCHIVE_BUNDLE)
   160 ################################################################
   162 # jtreg tests
   164 # Expect JT_HOME to be set for jtreg tests. (home for jtreg)
   165 JT_HOME = $(SLASH_JAVA)/re/jtreg/4.0/promoted/latest/binaries/jtreg
   166 ifdef JPRT_JTREG_HOME
   167   JT_HOME = $(JPRT_JTREG_HOME)
   168 endif
   170 # Expect JPRT to set TESTDIRS to the jtreg test dirs
   171 JTREG_TESTDIRS = demo/jvmti/gctest demo/jvmti/hprof
   172 ifdef TESTDIRS
   173   JTREG_TESTDIRS = $(TESTDIRS)
   174 endif
   176 # Default JTREG to run (win32 script works for everybody)
   177 JTREG = $(JT_HOME)/win32/bin/jtreg
   179 # Option to tell jtreg to not run tests marked with "ignore"
   180 ifeq ($(PLATFORM), windows)
   181   JTREG_KEY_OPTION = -k:!ignore
   182 else
   183   JTREG_KEY_OPTION = -k:\!ignore
   184 endif
   186 #EXTRA_JTREG_OPTIONS =
   188 jtreg_tests: prep $(JT_HOME) $(PRODUCT_HOME) $(JTREG)
   189 	$(JTREG) -a -v:fail,error               \
   190           $(JTREG_KEY_OPTION)                   \
   191           $(EXTRA_JTREG_OPTIONS)                \
   192           -r:$(ABS_TEST_OUTPUT_DIR)/JTreport    \
   193           -w:$(ABS_TEST_OUTPUT_DIR)/JTwork      \
   194           -jdk:$(PRODUCT_HOME)                  \
   195           $(JAVA_OPTIONS:%=-vmoption:%)         \
   196           $(JTREG_TESTDIRS)                     \
   197 	  || $(BUNDLE_UP_FAILED)
   198 	$(BUNDLE_UP)
   200 PHONY_LIST += jtreg_tests
   202 ################################################################
   204 # clienttest (make sure various basic java client options work)
   206 clienttest: prep $(PRODUCT_HOME)
   207 	$(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -version
   208 	$(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -help
   209 	$(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -X
   210 	$(RM) $(PRODUCT_HOME)/jre/lib/*/client/classes.jsa
   211 	$(RM) $(PRODUCT_HOME)/jre/lib/*/client/classes_g.jsa
   212 	$(RM) $(PRODUCT_HOME)/jre/bin/client/classes.jsa
   213 	$(RM) $(PRODUCT_HOME)/jre/bin/client/classes_g.jsa
   214 	$(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -Xshare:dump
   216 PHONY_LIST += clienttest
   218 ################################################################
   220 # servertest (make sure various basic java server options work)
   222 servertest: prep $(PRODUCT_HOME)
   223 	$(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -version
   224 	$(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -help
   225 	$(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -X
   227 PHONY_LIST += servertest
   229 ################################################################
   231 # internalvmtests (run internal unit tests inside the VM)
   233 internalvmtests: prep $(PRODUCT_HOME)
   234 	$(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -XX:+ExecuteInternalVMTests -version
   236 PHONY_LIST += internalvmtests
   238 ################################################################
   240 # wbapitest (make sure the whitebox testing api classes work
   242 wbapitest: prep $(JT_HOME) $(PRODUCT_HOME) $(JTREG)
   243 	$(JTREG) -a -v:fail,error               \
   244           $(JTREG_KEY_OPTION)                   \
   245           $(EXTRA_JTREG_OPTIONS)                \
   246           -r:$(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)")/JTreport    \
   247           -w:$(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)")/JTwork      \
   248           -jdk:$(shell $(GETMIXEDPATH) "$(PRODUCT_HOME)")                  \
   249           $(JAVA_OPTIONS:%=-vmoption:%)         \
   250           $(shell $(GETMIXEDPATH) "$(TEST_ROOT)")/sanity                   \
   251 	  || $(BUNDLE_UP_FAILED)
   252 	$(BUNDLE_UP)
   254 PHONY_LIST += wbapitest
   256 ################################################################
   258 # packtest
   260 # Expect JPRT to set JPRT_PACKTEST_HOME.
   261 PACKTEST_HOME = /net/jprt-web.sfbay.sun.com/jprt/allproducts/packtest
   262 ifdef JPRT_PACKTEST_HOME
   263   PACKTEST_HOME = $(JPRT_PACKTEST_HOME)
   264 endif
   266 #EXTRA_PACKTEST_OPTIONS =
   268 packtest: prep $(PACKTEST_HOME)/ptest $(PRODUCT_HOME)
   269 	( $(CD) $(PACKTEST_HOME) &&            \
   270 	    $(PACKTEST_HOME)/ptest             \
   271 		 -t "$(PRODUCT_HOME)"          \
   272 	         $(PACKTEST_STRESS_OPTION)     \
   273 		 $(EXTRA_PACKTEST_OPTIONS)     \
   274 		 -W $(ABS_TEST_OUTPUT_DIR)     \
   275                  $(JAVA_OPTIONS:%=-J %)        \
   276 	 ) || $(BUNDLE_UP_FAILED)
   277 	$(BUNDLE_UP)
   279 packtest_stress: PACKTEST_STRESS_OPTION=-s
   280 packtest_stress: packtest
   282 PHONY_LIST += packtest packtest_stress
   284 ################################################################
   286 # Phony targets (e.g. these are not filenames)
   287 .PHONY: all clean prep $(PHONY_LIST)
   289 ################################################################

mercurial