1 # 2 # Copyright (c) 2010, 2011, 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. Oracle designates this 8 # particular file as subject to the "Classpath" exception as provided 9 # by Oracle in the LICENSE file that accompanied this code. 10 # 11 # This code is distributed in the hope that it will be useful, but WITHOUT 12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 # version 2 for more details (a copy is included in the LICENSE file that 15 # accompanied this code). 16 # 17 # You should have received a copy of the GNU General Public License version 18 # 2 along with this work; if not, write to the Free Software Foundation, 19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 # 21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 # or visit www.oracle.com if you need additional information or have any 23 # questions. 24 # 25 26 # 27 # Makefile to run tests from multiple sibling directories 28 # 29 30 # Root of the forest that was built 31 TOPDIR=.. 32 33 # This makefile depends on the availability of sibling directories. 34 LANGTOOLS_DIR=$(TOPDIR)/langtools 35 JDK_DIR=$(TOPDIR)/jdk 36 JAXP_DIR=$(TOPDIR)/jaxp 37 HOTSPOT_DIR=$(TOPDIR)/hotspot 38 39 # Macro to run a test target in a subdir 40 define SUBDIR_TEST # subdirectory target 41 if [ -d $1 ] ; then \ 42 if [ -r $1/test/Makefile ] ; then \ 43 echo "$(MAKE) -k -C $1/test $2" ; \ 44 $(MAKE) -k -C $1/test $2 ; \ 45 else \ 46 echo "ERROR: File does not exist: $1/test/Makefile"; \ 47 exit 1; \ 48 fi; \ 49 else \ 50 echo "WARNING: No testing done, directory does not exist: $1"; \ 51 fi 52 endef 53 54 # Default test target (core) 55 default: jdk_core langtools_jtreg jaxp_test 56 57 # All testing 58 all: jdk_all langtools_all jaxp_test 59 60 # Test targets 61 langtools_% : 62 @$(NO_STOPPING)$(call SUBDIR_TEST, $(LANGTOOLS_DIR), JT_JAVA=$(PRODUCT_HOME) JTREG_HOME=$(JT_HOME) TEST="$(subst langtools_,,$@)" $(subst langtools_,,$@)) 63 64 jdk_% core_%s svc_%: 65 @$(NO_STOPPING)$(call SUBDIR_TEST, $(JDK_DIR), TEST="$@" $@) 66 67 jaxp_%: 68 @$(NO_STOPPING)$(call SUBDIR_TEST, $(JAXP_DIR), TEST="$@" $@) 69 70 hotspot_%: 71 @$(NO_STOPPING)$(call SUBDIR_TEST, $(HOTSPOT_DIR), TEST="$@" $@) 72 73 # 74 # jtreg_tests 75 # 76 # Invocation: 77 # 78 # make jtreg_tests TESTDIRS=<test-dirs> 79 # 80 # where <test-dirs> is something like '../<component>/test/runtime', 81 # <component> in turn being one of the top level directories (for 82 # example 'hotspot'). 83 # 84 # The below will strip the path prefix and delegate to the 85 # corresponding ../<component>/test/Makefile. 86 87 ifneq ($(TESTDIRS),) 88 # Extract the component from ../<component>/... 89 COMPONENT=$(word 2,$(subst /, ,$(TESTDIRS))) 90 91 # Strip off the ../<component>/test prefix and pass the rest as TESTDIRS 92 # to the delegate Makefile 93 TESTDIRS_TESTS=$(patsubst ../$(COMPONENT)/test/%,%,$(TESTDIRS)) 94 endif 95 96 jtreg_tests: 97 @$(NO_STOPPING)$(call SUBDIR_TEST, $(TOPDIR)/$(COMPONENT), TESTDIRS=$(TESTDIRS_TESTS) $@) 98 99 ################################################################ 100 101 # Phony targets (e.g. these are not filenames) 102 .PHONY: all clean 103 104 ################################################################