blob: 3b92b8d5081d5885d4ef56d5f63e05e2613f2b96 [file] [log] [blame]
Kelly O'Hair891aa6b2010-03-06 15:00:40 -08001#
Erik Helin321b0ae2015-12-15 11:04:18 +01002# Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
Kelly O'Hair891aa6b2010-03-06 15:00:40 -08003# 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
Kelly O'Hair136614e2010-05-25 15:51:26 -07007# published by the Free Software Foundation. Oracle designates this
Kelly O'Hair891aa6b2010-03-06 15:00:40 -08008# particular file as subject to the "Classpath" exception as provided
Kelly O'Hair136614e2010-05-25 15:51:26 -07009# by Oracle in the LICENSE file that accompanied this code.
Kelly O'Hair891aa6b2010-03-06 15:00:40 -080010#
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#
Kelly O'Hair136614e2010-05-25 15:51:26 -070021# 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.
Kelly O'Hair891aa6b2010-03-06 15:00:40 -080024#
25
26#
27# Makefile to run tests from multiple sibling directories
28#
29
Kelly O'Hair891aa6b2010-03-06 15:00:40 -080030# Macro to run a test target in a subdir
31define SUBDIR_TEST # subdirectory target
32if [ -d $1 ] ; then \
Erik Joelsson467119a2017-09-12 19:03:59 +020033 if [ -r $1/Makefile ] ; then \
34 $(MAKE) --no-print-directory -k -C $1 $2 ; \
Kelly O'Hair891aa6b2010-03-06 15:00:40 -080035 else \
Erik Joelsson467119a2017-09-12 19:03:59 +020036 echo "ERROR: File does not exist: $1/Makefile"; \
Kelly O'Hair235a0d92010-03-19 18:17:49 -070037 exit 1; \
Kelly O'Hair891aa6b2010-03-06 15:00:40 -080038 fi; \
39else \
40 echo "WARNING: No testing done, directory does not exist: $1"; \
41fi
42endef
43
Mike Duigou58d87022013-02-06 11:12:46 -080044# Default test target (core)
Tristan Yana78b9852014-12-15 13:09:39 -080045default: jdk_core langtools_jtreg jaxp_all
Kelly O'Hairc0323a82011-12-12 08:11:05 -080046
47# All testing
Tristan Yana78b9852014-12-15 13:09:39 -080048all: jdk_all langtools_all jaxp_all
Kelly O'Hair891aa6b2010-03-06 15:00:40 -080049
Erik Helin321b0ae2015-12-15 11:04:18 +010050ifeq ($(TEST_JOBS), 0)
Magnus Ihse Bursie53b0b932017-11-27 19:13:20 +010051 JDK_TEST_JOBS=$(JOBS)
Erik Helin321b0ae2015-12-15 11:04:18 +010052else
53 JDK_TEST_JOBS=$(TEST_JOBS)
54endif
Kelly O'Hair891aa6b2010-03-06 15:00:40 -080055# Test targets
Mike Duigouf9030912013-08-26 10:09:15 -070056langtools_% :
Erik Joelssonc1112772017-09-18 18:15:05 -070057 @$(NO_STOPPING)$(call SUBDIR_TEST, langtools, \
58 $(if $(JDK_TEST_JOBS), CONCURRENCY=$(JDK_TEST_JOBS)) \
Erik Joelsson467119a2017-09-12 19:03:59 +020059 JT_JAVA=$(PRODUCT_HOME) JTREG_HOME=$(JT_HOME) \
60 TEST="$(subst langtools_,,$@)" $(subst langtools_,,$@))
Mike Duigou58d87022013-02-06 11:12:46 -080061
Alan Batemane0fbec82013-11-19 14:11:59 +000062jdk_% core_%s svc_%:
Erik Joelssonc1112772017-09-18 18:15:05 -070063 @$(NO_STOPPING)$(call SUBDIR_TEST, jdk, \
64 $(if $(JDK_TEST_JOBS), CONCURRENCY=$(JDK_TEST_JOBS)) TEST="$@" $@)
Kelly O'Hair891aa6b2010-03-06 15:00:40 -080065
Tristan Yana78b9852014-12-15 13:09:39 -080066jaxp_%:
Erik Joelssonc1112772017-09-18 18:15:05 -070067 @$(NO_STOPPING)$(call SUBDIR_TEST, jaxp, \
68 $(if $(JDK_TEST_JOBS), CONCURRENCY=$(JDK_TEST_JOBS)) TEST="$@" $@)
Erik Joelsson467119a2017-09-12 19:03:59 +020069
70nashorn_%:
Erik Joelssonc1112772017-09-18 18:15:05 -070071 @$(NO_STOPPING)$(call SUBDIR_TEST, nashorn, \
72 $(if $(JDK_TEST_JOBS), CONCURRENCY=$(JDK_TEST_JOBS)) TEST="$@" $@)
Tristan Yana78b9852014-12-15 13:09:39 -080073
Christian Tornqvist05ab5452016-10-18 06:14:35 -040074SUB_MAKE_ARGS :=
75ifneq ($(TEST_JOBS), 0)
76 ifneq ($(TEST_JOBS), )
77 SUB_MAKE_ARGS += CONCURRENCY=$(TEST_JOBS)
78 endif
Erik Helin321b0ae2015-12-15 11:04:18 +010079endif
Mikael Vidstedt630cca22014-05-12 06:16:36 -070080hotspot_%:
Erik Joelsson467119a2017-09-12 19:03:59 +020081 @$(NO_STOPPING)$(call SUBDIR_TEST, hotspot/jtreg, $(SUB_MAKE_ARGS) TEST="$@" $@)
Mikael Vidstedt630cca22014-05-12 06:16:36 -070082
Mikael Vidstedt158c7ec2014-07-15 21:45:50 -070083#
84# jtreg_tests
85#
86# Invocation:
87#
Staffan Larsene6526de2016-05-11 11:06:37 +020088# make jtreg_tests TESTDIRS=<test-dirs> TEST_SELECTION=<path to test or jtreg group> TEST_OUTPUT_DIR=<path>
Mikael Vidstedt158c7ec2014-07-15 21:45:50 -070089#
90# where <test-dirs> is something like '../<component>/test/runtime',
91# <component> in turn being one of the top level directories (for
92# example 'hotspot').
93#
94# The below will strip the path prefix and delegate to the
95# corresponding ../<component>/test/Makefile.
96
97ifneq ($(TESTDIRS),)
Erik Joelsson467119a2017-09-12 19:03:59 +020098 # Extract the component from ../test/<component>/...
99 TESTDIRS_NORM := $(patsubst test/%, %, $(patsubst ../%, %, $(TESTDIRS)))
100 COMPONENT := $(word 1,$(subst /, ,$(TESTDIRS_NORM)))
Mikael Vidstedt158c7ec2014-07-15 21:45:50 -0700101
Erik Joelsson467119a2017-09-12 19:03:59 +0200102 # Strip off the ../<component>/test prefix and pass the rest as TESTDIRS
103 # to the delegate Makefile
104 # The hotspot tests are in a subdir "java". Accept paths both including
105 # and excluding this extra subdir
106 TESTDIRS_TESTS := $(patsubst $(COMPONENT)/%,%,$(patsubst hotspot/jtreg/%,%, \
107 $(patsubst ../%, %, $(TESTDIRS_NORM))))
Mikael Vidstedt158c7ec2014-07-15 21:45:50 -0700108endif
109
110jtreg_tests:
Erik Joelsson467119a2017-09-12 19:03:59 +0200111 $(MAKE) --no-print-directory TESTDIRS=$(TESTDIRS_TESTS) \
112 $(COMPONENT)_jtreg_tests
Mikael Vidstedt158c7ec2014-07-15 21:45:50 -0700113
Kelly O'Hair891aa6b2010-03-06 15:00:40 -0800114################################################################
115
116# Phony targets (e.g. these are not filenames)
Mike Duigouf9030912013-08-26 10:09:15 -0700117.PHONY: all clean
Kelly O'Hair891aa6b2010-03-06 15:00:40 -0800118
119################################################################