test/Makefile

Tue, 15 Jul 2014 21:45:50 -0700

author
mikael
date
Tue, 15 Jul 2014 21:45:50 -0700
changeset 1391
7de830a4c219
parent 1139
de71433b576a
child 1482
8fb429038513
child 2447
ef851705e3e1
permissions
-rw-r--r--

8050825: Support running regression tests using jtreg_tests+TESTDIRS from top level
Reviewed-by: dholmes, mduigou

     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 #
    26 #
    27 # Makefile to run tests from multiple sibling directories
    28 #
    30 # Root of the forest that was built
    31 TOPDIR=..
    33 # This makefile depends on the availability of sibling directories.
    34 LANGTOOLS_DIR=$(TOPDIR)/langtools
    35 JDK_DIR=$(TOPDIR)/jdk
    36 HOTSPOT_DIR=$(TOPDIR)/hotspot
    38 # Macro to run a test target in a subdir
    39 define SUBDIR_TEST # subdirectory target
    40 if [ -d $1 ] ; then \
    41   if [ -r $1/test/Makefile ] ; then \
    42     echo "$(MAKE) -k -C $1/test $2" ; \
    43     $(MAKE) -k -C $1/test $2 ; \
    44   else \
    45     echo "ERROR: File does not exist: $1/test/Makefile"; \
    46     exit 1; \
    47   fi; \
    48 else \
    49   echo "WARNING: No testing done, directory does not exist: $1"; \
    50 fi
    51 endef
    53 # Default test target (core)
    54 default: jdk_core langtools_jtreg
    56 # All testing
    57 all: jdk_all langtools_all
    59 # Test targets
    60 langtools_% :
    61 	@$(NO_STOPPING)$(call SUBDIR_TEST, $(LANGTOOLS_DIR), JT_JAVA=$(PRODUCT_HOME) JTREG_HOME=$(JT_HOME) TEST="$(subst langtools_,,$@)" $(subst langtools_,,$@))
    63 jdk_% core_%s svc_%:
    64 	@$(NO_STOPPING)$(call SUBDIR_TEST, $(JDK_DIR), TEST="$@" $@)
    66 hotspot_%:
    67 	@$(NO_STOPPING)$(call SUBDIR_TEST, $(HOTSPOT_DIR), TEST="$@" $@)
    69 #
    70 # jtreg_tests
    71 #
    72 # Invocation:
    73 #
    74 # make jtreg_tests TESTDIRS=<test-dirs>
    75 #
    76 # where <test-dirs> is something like '../<component>/test/runtime',
    77 # <component> in turn being one of the top level directories (for
    78 # example 'hotspot').
    79 #
    80 # The below will strip the path prefix and delegate to the
    81 # corresponding ../<component>/test/Makefile.
    83 ifneq ($(TESTDIRS),)
    84 # Extract the component from ../<component>/...
    85 COMPONENT=$(word 2,$(subst /, ,$(TESTDIRS)))
    87 # Strip off the ../<component>/test prefix and pass the rest as TESTDIRS
    88 # to the delegate Makefile
    89 TESTDIRS_TESTS=$(patsubst ../$(COMPONENT)/test/%,%,$(TESTDIRS))
    90 endif
    92 jtreg_tests:
    93 	@$(NO_STOPPING)$(call SUBDIR_TEST, $(TOPDIR)/$(COMPONENT), TESTDIRS=$(TESTDIRS_TESTS) $@)
    95 ################################################################
    97 # Phony targets (e.g. these are not filenames)
    98 .PHONY: all clean
   100 ################################################################

mercurial