test/TestCommon.gmk
author tschatzl
Mon, 26 Mar 2018 16:51:43 +0200
changeset 49608 1852b17b0efc
parent 49194 ece10494786c
child 49552 05883543ee2a
permissions -rw-r--r--
8196485: FromCardCache default card index can cause crashes Summary: The default value of -1 for 32 bit card indices is a regular card value at the border of 2TB heap addresses in the from card cache, so G1 may loose remembered set entries. Extend from card cache entries to 64 bits. Reviewed-by: shade, sjohanss Contributed-by: Thomas Schatzl <thomas.schatzl@oracle.com>, Jarkko Miettinen <jarkko.miettinen@relex.fi>
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
42424
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
     1
#
48980
ab7784555b4c 8197906: Enable CDS mode execution of jtreg tests via make
mseledtsov
parents: 48693
diff changeset
     2
# Copyright (c) 1995, 2018, Oracle and/or its affiliates. All rights reserved.
42424
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
     3
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
     4
#
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
     5
# This code is free software; you can redistribute it and/or modify it
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
     6
# under the terms of the GNU General Public License version 2 only, as
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
     7
# published by the Free Software Foundation.  Oracle designates this
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
     8
# particular file as subject to the "Classpath" exception as provided
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
     9
# by Oracle in the LICENSE file that accompanied this code.
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    10
#
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    11
# This code is distributed in the hope that it will be useful, but WITHOUT
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    12
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    13
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    14
# version 2 for more details (a copy is included in the LICENSE file that
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    15
# accompanied this code).
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    16
#
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    17
# You should have received a copy of the GNU General Public License version
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    18
# 2 along with this work; if not, write to the Free Software Foundation,
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    19
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    20
#
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    21
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    22
# or visit www.oracle.com if you need additional information or have any
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    23
# questions.
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    24
#
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    25
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    26
#
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    27
# Common logic to run various tests for a component, to be included by the
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    28
# component specific test makefiles.
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    29
#
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    30
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    31
# Default values for some properties that can be overridden by components.
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    32
USE_JTREG_VERSION ?= 4.2
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    33
JTREG_VM_TYPE ?= -agentvm
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    34
USE_JTREG_ASSERT ?= true
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    35
LIMIT_JTREG_VM_MEMORY ?= true
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    36
49147
af37d9997bd6 8199197: Set _NT_SYMBOL_PATH when running tests on windows
erikj
parents: 48980
diff changeset
    37
X:=
af37d9997bd6 8199197: Set _NT_SYMBOL_PATH when running tests on windows
erikj
parents: 48980
diff changeset
    38
SPACE:=$(X) $(X)
af37d9997bd6 8199197: Set _NT_SYMBOL_PATH when running tests on windows
erikj
parents: 48980
diff changeset
    39
42424
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    40
.DEFAULT : all
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    41
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    42
# Empty these to get rid of some default rules
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    43
.SUFFIXES:
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    44
.SUFFIXES: .java
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    45
CO=
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    46
GET=
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    47
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    48
# Utilities used
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    49
AWK       = awk
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    50
CAT       = cat
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    51
CD        = cd
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    52
CHMOD     = chmod
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    53
CP        = cp
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    54
CUT       = cut
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    55
DIRNAME   = dirname
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    56
ECHO      = echo
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    57
EGREP     = egrep
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    58
EXPAND    = expand
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    59
FIND      = find
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    60
MKDIR     = mkdir
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    61
PWD       = pwd
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    62
RM        = rm -f
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    63
SED       = sed
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    64
SORT      = sort
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    65
TEE       = tee
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    66
UNAME     = uname
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    67
UNIQ      = uniq
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    68
WC        = wc
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    69
ZIPEXE    = zip
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    70
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    71
# Get OS name from uname (Cygwin inexplicably adds _NT-5.1)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    72
UNAME_S := $(shell $(UNAME) -s | $(CUT) -f1 -d_)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    73
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    74
# Commands to run on paths to make mixed paths for java on windows
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    75
ifeq ($(findstring CYGWIN,$(UNAME_S)), CYGWIN)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    76
  # Location of developer shared files
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    77
  SLASH_JAVA = J:
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    78
  GETMIXEDPATH = cygpath -m
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    79
  PLATFORM = windows
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    80
else
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    81
  # Location of developer shared files
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    82
  SLASH_JAVA = /java
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    83
  GETMIXEDPATH = $(ECHO)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    84
  PLATFORM = unix # we only care about windows or bsd.
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    85
  ifeq ($(UNAME_S), Darwin)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    86
    PLATFORM = bsd
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    87
  endif
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    88
  ifeq ($(findstring BSD,$(UNAME_S)), BSD)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    89
    PLATFORM = bsd
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    90
  endif
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    91
endif
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    92
49147
af37d9997bd6 8199197: Set _NT_SYMBOL_PATH when running tests on windows
erikj
parents: 48980
diff changeset
    93
# convert list of directories to dos paths
af37d9997bd6 8199197: Set _NT_SYMBOL_PATH when running tests on windows
erikj
parents: 48980
diff changeset
    94
define MixedDirs
af37d9997bd6 8199197: Set _NT_SYMBOL_PATH when running tests on windows
erikj
parents: 48980
diff changeset
    95
$(foreach i,$1,$(shell $(GETMIXEDPATH) "${i}"))
af37d9997bd6 8199197: Set _NT_SYMBOL_PATH when running tests on windows
erikj
parents: 48980
diff changeset
    96
endef
af37d9997bd6 8199197: Set _NT_SYMBOL_PATH when running tests on windows
erikj
parents: 48980
diff changeset
    97
42424
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    98
ifdef ALT_SLASH_JAVA
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
    99
  SLASH_JAVA = $(ALT_SLASH_JAVA)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   100
endif
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   101
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   102
# Root of this test area (important to use full paths in some places)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   103
TEST_ROOT := $(shell $(PWD))
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   104
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   105
# Root of all test results
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   106
ifdef TEST_OUTPUT_DIR
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   107
  $(shell $(MKDIR) -p $(TEST_OUTPUT_DIR)/jtreg)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   108
  ABS_TEST_OUTPUT_DIR := \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   109
    $(shell $(CD) $(TEST_OUTPUT_DIR)/jtreg && $(PWD))
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   110
else
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   111
  ifdef ALT_OUTPUTDIR
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   112
    ABS_OUTPUTDIR = $(shell $(CD) $(ALT_OUTPUTDIR) && $(PWD))
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   113
  else
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   114
    ABS_OUTPUTDIR = $(shell $(CD) $(TEST_ROOT)/.. && $(PWD))
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   115
  endif
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   116
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   117
  ABS_PLATFORM_BUILD_ROOT = $(ABS_OUTPUTDIR)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   118
  ABS_TEST_OUTPUT_DIR := $(ABS_PLATFORM_BUILD_ROOT)/testoutput/$(UNIQUE_DIR)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   119
endif
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   120
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   121
# Expect JPRT to set PRODUCT_HOME (the product or jdk in this case to test)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   122
ifndef PRODUCT_HOME
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   123
  # Try to use images/jdk if it exists
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   124
  ABS_JDK_IMAGE = $(ABS_PLATFORM_BUILD_ROOT)/images/jdk
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   125
  PRODUCT_HOME :=                               \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   126
    $(shell                                     \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   127
      if [ -d $(ABS_JDK_IMAGE) ] ; then         \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   128
         $(ECHO) "$(ABS_JDK_IMAGE)";            \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   129
       else                                     \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   130
         $(ECHO) "$(ABS_PLATFORM_BUILD_ROOT)";  \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   131
       fi)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   132
  PRODUCT_HOME := $(PRODUCT_HOME)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   133
endif
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   134
49147
af37d9997bd6 8199197: Set _NT_SYMBOL_PATH when running tests on windows
erikj
parents: 48980
diff changeset
   135
# On Windows, setup the _NT_SYMBOL_PATH if possible.
af37d9997bd6 8199197: Set _NT_SYMBOL_PATH when running tests on windows
erikj
parents: 48980
diff changeset
   136
ifeq ($(PLATFORM), windows)
af37d9997bd6 8199197: Set _NT_SYMBOL_PATH when running tests on windows
erikj
parents: 48980
diff changeset
   137
  ifndef _NT_SYMBOL_PATH
af37d9997bd6 8199197: Set _NT_SYMBOL_PATH when running tests on windows
erikj
parents: 48980
diff changeset
   138
    ifdef PRODUCT_SYMBOLS_HOME
af37d9997bd6 8199197: Set _NT_SYMBOL_PATH when running tests on windows
erikj
parents: 48980
diff changeset
   139
      _NT_SYMBOL_PATH := \
af37d9997bd6 8199197: Set _NT_SYMBOL_PATH when running tests on windows
erikj
parents: 48980
diff changeset
   140
          $(subst $(SPACE),;,$(strip $(call MixedDirs, $(sort $(dir $(wildcard \
af37d9997bd6 8199197: Set _NT_SYMBOL_PATH when running tests on windows
erikj
parents: 48980
diff changeset
   141
          $(addprefix $(PRODUCT_SYMBOLS_HOME)/bin/, *.pdb */*.pdb)))))))
af37d9997bd6 8199197: Set _NT_SYMBOL_PATH when running tests on windows
erikj
parents: 48980
diff changeset
   142
      export _NT_SYMBOL_PATH
af37d9997bd6 8199197: Set _NT_SYMBOL_PATH when running tests on windows
erikj
parents: 48980
diff changeset
   143
    endif
af37d9997bd6 8199197: Set _NT_SYMBOL_PATH when running tests on windows
erikj
parents: 48980
diff changeset
   144
  endif
af37d9997bd6 8199197: Set _NT_SYMBOL_PATH when running tests on windows
erikj
parents: 48980
diff changeset
   145
  JTREG_BASIC_OPTIONS += -e:_NT_SYMBOL_PATH='$(_NT_SYMBOL_PATH)'
af37d9997bd6 8199197: Set _NT_SYMBOL_PATH when running tests on windows
erikj
parents: 48980
diff changeset
   146
endif
af37d9997bd6 8199197: Set _NT_SYMBOL_PATH when running tests on windows
erikj
parents: 48980
diff changeset
   147
42424
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   148
# Expect JPRT to set JPRT_PRODUCT_ARGS (e.g. -server etc.)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   149
#   Should be passed into 'java' only.
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   150
#   Could include: -d64 -server -client OR any java option
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   151
ifdef JPRT_PRODUCT_ARGS
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   152
  JAVA_ARGS = $(JPRT_PRODUCT_ARGS)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   153
endif
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   154
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   155
# Expect JPRT to set JPRT_PRODUCT_VM_ARGS (e.g. -Xcomp etc.)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   156
#   Should be passed into anything running the vm (java, javac, javadoc, ...).
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   157
ifdef JPRT_PRODUCT_VM_ARGS
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   158
  JAVA_VM_ARGS = $(JPRT_PRODUCT_VM_ARGS)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   159
endif
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   160
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   161
ifneq ($(NATIVE_TEST_PATH), )
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   162
  # jtreg -nativepath <dir>
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   163
  #
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   164
  # Local make tests will be TEST_IMAGE_DIR and JPRT with jprt.use.reg.test.bundle=true
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   165
  # should be JPRT_TESTNATIVE_PATH
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   166
  ifdef TEST_IMAGE_DIR
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   167
    TESTNATIVE_DIR = $(TEST_IMAGE_DIR)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   168
  else ifdef JPRT_TESTNATIVE_PATH
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   169
    TESTNATIVE_DIR = $(JPRT_TESTNATIVE_PATH)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   170
  endif
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   171
  ifdef TESTNATIVE_DIR
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   172
    JTREG_NATIVE_PATH = -nativepath:$(shell $(GETMIXEDPATH) "$(TESTNATIVE_DIR)/$(NATIVE_TEST_PATH)")
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   173
  endif
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   174
endif
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   175
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   176
ifeq ($(USE_FAILURE_HANDLER), true)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   177
  # jtreg failure handler config
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   178
  ifeq ($(FAILURE_HANDLER_DIR), )
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   179
    ifneq ($(TESTNATIVE_DIR), )
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   180
      FAILURE_HANDLER_DIR := $(TESTNATIVE_DIR)/failure_handler
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   181
    endif
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   182
  endif
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   183
  ifneq ($(FAILURE_HANDLER_DIR), )
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   184
    FAILURE_HANDLER_DIR_MIXED := $(shell $(GETMIXEDPATH) "$(FAILURE_HANDLER_DIR)")
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   185
    JTREG_FAILURE_HANDLER_OPTIONS := \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   186
        -timeoutHandlerDir:$(FAILURE_HANDLER_DIR_MIXED)/jtregFailureHandler.jar \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   187
        -observerDir:$(FAILURE_HANDLER_DIR_MIXED)/jtregFailureHandler.jar \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   188
        -timeoutHandler:jdk.test.failurehandler.jtreg.GatherProcessInfoTimeoutHandler \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   189
        -observer:jdk.test.failurehandler.jtreg.GatherDiagnosticInfoObserver \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   190
        -timeoutHandlerTimeout:0
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   191
  ifeq ($(PLATFORM), windows)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   192
      JTREG_FAILURE_HANDLER_OPTIONS += -J-Djava.library.path="$(FAILURE_HANDLER_DIR_MIXED)"
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   193
    endif
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   194
  endif
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   195
endif
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   196
48980
ab7784555b4c 8197906: Enable CDS mode execution of jtreg tests via make
mseledtsov
parents: 48693
diff changeset
   197
ab7784555b4c 8197906: Enable CDS mode execution of jtreg tests via make
mseledtsov
parents: 48693
diff changeset
   198
# Optionally create a CDS archive before running tests
ab7784555b4c 8197906: Enable CDS mode execution of jtreg tests via make
mseledtsov
parents: 48693
diff changeset
   199
ifeq ($(GENERATE_CDS_ARCHIVE), true)
ab7784555b4c 8197906: Enable CDS mode execution of jtreg tests via make
mseledtsov
parents: 48693
diff changeset
   200
  CDS_ARCHIVE_FILE := $(ABS_TEST_OUTPUT_DIR)/cds_archive.jsa
ab7784555b4c 8197906: Enable CDS mode execution of jtreg tests via make
mseledtsov
parents: 48693
diff changeset
   201
ab7784555b4c 8197906: Enable CDS mode execution of jtreg tests via make
mseledtsov
parents: 48693
diff changeset
   202
  $(CDS_ARCHIVE_FILE): $(PRODUCT_HOME)
ab7784555b4c 8197906: Enable CDS mode execution of jtreg tests via make
mseledtsov
parents: 48693
diff changeset
   203
	$(PRODUCT_HOME)/bin/java -XX:+UnlockDiagnosticVMOptions \
ab7784555b4c 8197906: Enable CDS mode execution of jtreg tests via make
mseledtsov
parents: 48693
diff changeset
   204
	    -XX:SharedArchiveFile=$(shell $(GETMIXEDPATH) "$(CDS_ARCHIVE_FILE)") -Xshare:dump
ab7784555b4c 8197906: Enable CDS mode execution of jtreg tests via make
mseledtsov
parents: 48693
diff changeset
   205
ab7784555b4c 8197906: Enable CDS mode execution of jtreg tests via make
mseledtsov
parents: 48693
diff changeset
   206
  CDS_VM_ARGS := -XX:+UnlockDiagnosticVMOptions -XX:SharedArchiveFile=$(shell $(GETMIXEDPATH) "$(CDS_ARCHIVE_FILE)")
ab7784555b4c 8197906: Enable CDS mode execution of jtreg tests via make
mseledtsov
parents: 48693
diff changeset
   207
  JTREG_TEST_OPTIONS += $(addprefix -vmoption:, $(CDS_VM_ARGS))
ab7784555b4c 8197906: Enable CDS mode execution of jtreg tests via make
mseledtsov
parents: 48693
diff changeset
   208
  TEST_PREREQS += $(CDS_ARCHIVE_FILE)
ab7784555b4c 8197906: Enable CDS mode execution of jtreg tests via make
mseledtsov
parents: 48693
diff changeset
   209
endif
ab7784555b4c 8197906: Enable CDS mode execution of jtreg tests via make
mseledtsov
parents: 48693
diff changeset
   210
42424
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   211
# Expect JPRT to set JPRT_ARCHIVE_BUNDLE (path to zip bundle for results)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   212
ifdef JPRT_ARCHIVE_BUNDLE
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   213
  ARCHIVE_BUNDLE = $(JPRT_ARCHIVE_BUNDLE)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   214
endif
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   215
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   216
# How to create the test bundle (pass or fail, we want to create this)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   217
#   Follow command with ";$(BUNDLE_UP_AND_EXIT)", so it always gets executed.
47434
7be5c153e8a4 8189664: Stop producing ARCHIVE_BUNDLE.zip from test makefiles unless asked to
erikj
parents: 47329
diff changeset
   218
ifneq ($(ARCHIVE_BUNDLE), )
7be5c153e8a4 8189664: Stop producing ARCHIVE_BUNDLE.zip from test makefiles unless asked to
erikj
parents: 47329
diff changeset
   219
  ZIP_UP_RESULTS = ( $(MKDIR) -p `$(DIRNAME) $(ARCHIVE_BUNDLE)`     \
42424
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   220
	           && $(CD) $(ABS_TEST_OUTPUT_DIR)             \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   221
	           && $(CHMOD) -R a+r . \
47434
7be5c153e8a4 8189664: Stop producing ARCHIVE_BUNDLE.zip from test makefiles unless asked to
erikj
parents: 47329
diff changeset
   222
	           && $(ZIPEXE) -q -r $(ARCHIVE_BUNDLE) . ) ;
7be5c153e8a4 8189664: Stop producing ARCHIVE_BUNDLE.zip from test makefiles unless asked to
erikj
parents: 47329
diff changeset
   223
  CLEAN_ARCHIVE_BUNDLE = @$(RM) $(ARCHIVE_BUNDLE)
7be5c153e8a4 8189664: Stop producing ARCHIVE_BUNDLE.zip from test makefiles unless asked to
erikj
parents: 47329
diff changeset
   224
endif
42424
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   225
47479
77a5f2ef1807 8189800: Add support for AddressSanitizer
asmotrak
parents: 47434
diff changeset
   226
# AddressSanitizer
77a5f2ef1807 8189800: Add support for AddressSanitizer
asmotrak
parents: 47434
diff changeset
   227
ifeq ($(ASAN_ENABLED), yes)
77a5f2ef1807 8189800: Add support for AddressSanitizer
asmotrak
parents: 47434
diff changeset
   228
  export ASAN_OPTIONS="handle_segv=0 detect_leaks=0"
77a5f2ef1807 8189800: Add support for AddressSanitizer
asmotrak
parents: 47434
diff changeset
   229
  JTREG_BASIC_OPTIONS += -e:ASAN_OPTIONS=$(ASAN_OPTIONS)
77a5f2ef1807 8189800: Add support for AddressSanitizer
asmotrak
parents: 47434
diff changeset
   230
  ifneq ($(DEVKIT_LIB_DIR),)
77a5f2ef1807 8189800: Add support for AddressSanitizer
asmotrak
parents: 47434
diff changeset
   231
    export LD_LIBRARY_PATH:=$(LD_LIBRARY_PATH):$(DEVKIT_LIB_DIR)
77a5f2ef1807 8189800: Add support for AddressSanitizer
asmotrak
parents: 47434
diff changeset
   232
    JTREG_BASIC_OPTIONS += -e:LD_LIBRARY_PATH=$(LD_LIBRARY_PATH)
77a5f2ef1807 8189800: Add support for AddressSanitizer
asmotrak
parents: 47434
diff changeset
   233
  endif
77a5f2ef1807 8189800: Add support for AddressSanitizer
asmotrak
parents: 47434
diff changeset
   234
endif
77a5f2ef1807 8189800: Add support for AddressSanitizer
asmotrak
parents: 47434
diff changeset
   235
42424
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   236
# important results files
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   237
SUMMARY_TXT = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/JTreport/text/summary.txt")
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   238
STATS_TXT_NAME = Stats.txt
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   239
STATS_TXT = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/$(STATS_TXT_NAME)")
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   240
RUNLIST   = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/runlist.txt")
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   241
PASSLIST  = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/passlist.txt")
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   242
FAILLIST  = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/faillist.txt")
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   243
EXITCODE  = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/exitcode.txt")
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   244
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   245
TESTEXIT = \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   246
  if [ ! -s $(EXITCODE) ] ; then \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   247
    $(ECHO) "ERROR: EXITCODE file not filled in."; \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   248
    $(ECHO) "1" > $(EXITCODE); \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   249
  fi ; \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   250
  testExitCode=`$(CAT) $(EXITCODE)`; \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   251
  $(ECHO) "EXIT CODE: $${testExitCode}"; \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   252
  exit $${testExitCode}
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   253
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   254
ifeq ($(TREAT_EXIT_CODE_1_AS_0), true)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   255
  ADJUST_EXIT_CODE := \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   256
  if [ $${jtregExitCode} = 1 ] ; then \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   257
    jtregExitCode=0; \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   258
  fi
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   259
else
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   260
  # colon is the shell no-op
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   261
  ADJUST_EXIT_CODE := :
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   262
endif
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   263
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   264
BUNDLE_UP_AND_EXIT = \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   265
( \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   266
  jtregExitCode=$$? && \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   267
  _summary="$(SUMMARY_TXT)"; \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   268
  $(ADJUST_EXIT_CODE) ; \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   269
  $(RM) -f $(STATS_TXT) $(RUNLIST) $(PASSLIST) $(FAILLIST) $(EXITCODE); \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   270
  $(ECHO) "$${jtregExitCode}" > $(EXITCODE); \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   271
  if [ -r "$${_summary}" ] ; then \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   272
    $(ECHO) "Summary: $(UNIQUE_DIR)" > $(STATS_TXT); \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   273
    $(EXPAND) $${_summary} | $(EGREP) -v ' Not run\.' > $(RUNLIST); \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   274
    $(EGREP) ' Passed\.' $(RUNLIST) \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   275
      | $(EGREP) -v ' Error\.' \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   276
      | $(EGREP) -v ' Failed\.' > $(PASSLIST); \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   277
    ( $(EGREP) ' Failed\.' $(RUNLIST); \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   278
      $(EGREP) ' Error\.' $(RUNLIST); \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   279
      $(EGREP) -v ' Passed\.' $(RUNLIST) ) \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   280
      | $(SORT) | $(UNIQ) > $(FAILLIST); \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   281
    if [ $${jtregExitCode} != 0 -o -s $(FAILLIST) ] ; then \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   282
      $(EXPAND) $(FAILLIST) \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   283
        | $(CUT) -d' ' -f1 \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   284
        | $(SED) -e 's@^@FAILED: @' >> $(STATS_TXT); \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   285
      if [ $${jtregExitCode} = 0 ] ; then \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   286
        jtregExitCode=1; \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   287
      fi; \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   288
    fi; \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   289
    runc="`$(CAT) $(RUNLIST)      | $(WC) -l | $(AWK) '{print $$1;}'`"; \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   290
    passc="`$(CAT) $(PASSLIST)    | $(WC) -l | $(AWK) '{print $$1;}'`"; \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   291
    failc="`$(CAT) $(FAILLIST)    | $(WC) -l | $(AWK) '{print $$1;}'`"; \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   292
    exclc="FIXME CODETOOLS-7900176"; \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   293
    $(ECHO) "TEST STATS: name=$(UNIQUE_DIR)  run=$${runc}  pass=$${passc}  fail=$${failc}" \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   294
      >> $(STATS_TXT); \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   295
  else \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   296
    $(ECHO) "Missing file: $${_summary}" >> $(STATS_TXT); \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   297
  fi; \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   298
  if [ -f $(STATS_TXT) ] ; then \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   299
    $(CAT) $(STATS_TXT); \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   300
  fi; \
47434
7be5c153e8a4 8189664: Stop producing ARCHIVE_BUNDLE.zip from test makefiles unless asked to
erikj
parents: 47329
diff changeset
   301
  $(ZIP_UP_RESULTS) \
42424
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   302
  $(TESTEXIT) \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   303
)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   304
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   305
################################################################
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   306
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   307
# Prep for output
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   308
# Change execute permissions on shared library files.
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   309
# Files in repositories should never have execute permissions, but
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   310
# there are some tests that have pre-built shared libraries, and these
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   311
# windows dll files must have execute permission. Adding execute
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   312
# permission may happen automatically on windows when using certain
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   313
# versions of mercurial but it cannot be guaranteed. And blindly
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   314
# adding execute permission might be seen as a mercurial 'change', so
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   315
# we avoid adding execute permission to repository files. But testing
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   316
# from a plain source tree needs the chmod a+rx. Applying the chmod to
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   317
# all shared libraries not just dll files. And with CYGWIN and sshd
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   318
# service, you may need CYGWIN=ntsec for this to work.
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   319
prep:
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   320
	@$(MKDIR) -p $(ABS_TEST_OUTPUT_DIR)
47285
7513299d1cd0 8188090: Running tests from make causes spurious mercurial changes
mcimadamore
parents: 47218
diff changeset
   321
	@if [ ! -d $(TEST_ROOT)/../../.hg ] && [ ! -d $(TEST_ROOT)/../../../.hg ]; then  \
42424
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   322
	  $(FIND) $(TEST_ROOT) \( -name \*.dll -o -name \*.DLL -o -name \*.so \)  \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   323
	        -exec $(CHMOD) a+rx {} \; ;                                       \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   324
	fi
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   325
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   326
ifeq ($(CLEAN_BEFORE_PREP), true)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   327
prep: clean
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   328
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   329
endif
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   330
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   331
# Cleanup
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   332
clean:
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   333
	@$(RM) -r $(ABS_TEST_OUTPUT_DIR)
47434
7be5c153e8a4 8189664: Stop producing ARCHIVE_BUNDLE.zip from test makefiles unless asked to
erikj
parents: 47329
diff changeset
   334
	$(CLEAN_ARCHIVE_BUNDLE)
42424
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   335
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   336
################################################################
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   337
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   338
# jtreg tests
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   339
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   340
# Expect JT_HOME to be set for jtreg tests. (home for jtreg)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   341
ifndef JT_HOME
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   342
  JT_HOME = $(SLASH_JAVA)/re/jtreg/$(USE_JTREG_VERSION)/promoted/latest/binaries/jtreg
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   343
  ifdef JPRT_JTREG_HOME
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   344
    JT_HOME = $(JPRT_JTREG_HOME)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   345
  endif
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   346
endif
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   347
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   348
# Problematic tests to be excluded
49179
4b273ed9a82d 8197453: Add support of extra problem list
epavlova
parents: 48980
diff changeset
   349
EXTRA_PROBLEM_LISTS :=
4b273ed9a82d 8197453: Add support of extra problem list
epavlova
parents: 48980
diff changeset
   350
PROBLEM_LISTS := ProblemList.txt $(EXTRA_PROBLEM_LISTS)
42424
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   351
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   352
# Create exclude list for this platform and arch
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   353
ifdef NO_EXCLUDES
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   354
  JTREG_EXCLUSIONS =
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   355
else
49179
4b273ed9a82d 8197453: Add support of extra problem list
epavlova
parents: 48980
diff changeset
   356
  JTREG_EXCLUSIONS = $(addprefix -exclude:, $(wildcard $(PROBLEM_LISTS)))
42424
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   357
endif
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   358
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   359
# ------------------------------------------------------------------
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   360
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   361
# When called from JPRT the TESTDIRS variable is set to the jtreg tests to run
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   362
ifdef TESTDIRS
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   363
  TEST_SELECTION = $(TESTDIRS)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   364
endif
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   365
48677
62b6e9b1dfdc 8196197: Enable the make system to calculate concurrency for JDK tests
ctornqvi
parents: 47479
diff changeset
   366
ifeq ($(UNAME_S), SunOS)
62b6e9b1dfdc 8196197: Enable the make system to calculate concurrency for JDK tests
ctornqvi
parents: 47479
diff changeset
   367
  NUM_CORES := $(shell LC_MESSAGES=C /usr/sbin/psrinfo -v | grep -c on-line)
62b6e9b1dfdc 8196197: Enable the make system to calculate concurrency for JDK tests
ctornqvi
parents: 47479
diff changeset
   368
endif
62b6e9b1dfdc 8196197: Enable the make system to calculate concurrency for JDK tests
ctornqvi
parents: 47479
diff changeset
   369
ifeq ($(UNAME_S), Linux)
62b6e9b1dfdc 8196197: Enable the make system to calculate concurrency for JDK tests
ctornqvi
parents: 47479
diff changeset
   370
  NUM_CORES := $(shell cat /proc/cpuinfo  | grep -c processor)
62b6e9b1dfdc 8196197: Enable the make system to calculate concurrency for JDK tests
ctornqvi
parents: 47479
diff changeset
   371
endif
62b6e9b1dfdc 8196197: Enable the make system to calculate concurrency for JDK tests
ctornqvi
parents: 47479
diff changeset
   372
ifeq ($(UNAME_S), Darwin)
62b6e9b1dfdc 8196197: Enable the make system to calculate concurrency for JDK tests
ctornqvi
parents: 47479
diff changeset
   373
  NUM_CORES := $(shell /usr/sbin/sysctl -n hw.ncpu)
62b6e9b1dfdc 8196197: Enable the make system to calculate concurrency for JDK tests
ctornqvi
parents: 47479
diff changeset
   374
endif
62b6e9b1dfdc 8196197: Enable the make system to calculate concurrency for JDK tests
ctornqvi
parents: 47479
diff changeset
   375
ifeq ($(findstring CYGWIN,$(UNAME_S)), CYGWIN)
62b6e9b1dfdc 8196197: Enable the make system to calculate concurrency for JDK tests
ctornqvi
parents: 47479
diff changeset
   376
  ifneq ($(NUMBER_OF_PROCESSORS), )
62b6e9b1dfdc 8196197: Enable the make system to calculate concurrency for JDK tests
ctornqvi
parents: 47479
diff changeset
   377
    NUM_CORES := $(NUMBER_OF_PROCESSORS)
62b6e9b1dfdc 8196197: Enable the make system to calculate concurrency for JDK tests
ctornqvi
parents: 47479
diff changeset
   378
  else
62b6e9b1dfdc 8196197: Enable the make system to calculate concurrency for JDK tests
ctornqvi
parents: 47479
diff changeset
   379
    ifneq ($(HOTSPOT_BUILD_JOBS), )
62b6e9b1dfdc 8196197: Enable the make system to calculate concurrency for JDK tests
ctornqvi
parents: 47479
diff changeset
   380
      NUM_CORES := $(HOTSPOT_BUILD_JOBS)
62b6e9b1dfdc 8196197: Enable the make system to calculate concurrency for JDK tests
ctornqvi
parents: 47479
diff changeset
   381
    else
62b6e9b1dfdc 8196197: Enable the make system to calculate concurrency for JDK tests
ctornqvi
parents: 47479
diff changeset
   382
      NUM_CORES := 1 # fallback
62b6e9b1dfdc 8196197: Enable the make system to calculate concurrency for JDK tests
ctornqvi
parents: 47479
diff changeset
   383
    endif
62b6e9b1dfdc 8196197: Enable the make system to calculate concurrency for JDK tests
ctornqvi
parents: 47479
diff changeset
   384
  endif
42424
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   385
endif
48677
62b6e9b1dfdc 8196197: Enable the make system to calculate concurrency for JDK tests
ctornqvi
parents: 47479
diff changeset
   386
62b6e9b1dfdc 8196197: Enable the make system to calculate concurrency for JDK tests
ctornqvi
parents: 47479
diff changeset
   387
ifndef CONCURRENCY_FACTOR
62b6e9b1dfdc 8196197: Enable the make system to calculate concurrency for JDK tests
ctornqvi
parents: 47479
diff changeset
   388
  CONCURRENCY_FACTOR = 1
62b6e9b1dfdc 8196197: Enable the make system to calculate concurrency for JDK tests
ctornqvi
parents: 47479
diff changeset
   389
endif
62b6e9b1dfdc 8196197: Enable the make system to calculate concurrency for JDK tests
ctornqvi
parents: 47479
diff changeset
   390
62b6e9b1dfdc 8196197: Enable the make system to calculate concurrency for JDK tests
ctornqvi
parents: 47479
diff changeset
   391
# Concurrency based on min(cores / 2, 12) * CONCURRENCY_FACTOR
48693
a2d550f08617 8196524: Align MaxRAMPercentage settings between open and closed
erikj
parents: 48677
diff changeset
   392
CONCURRENCY := $(shell $(AWK) \
48677
62b6e9b1dfdc 8196197: Enable the make system to calculate concurrency for JDK tests
ctornqvi
parents: 47479
diff changeset
   393
  'BEGIN { \
62b6e9b1dfdc 8196197: Enable the make system to calculate concurrency for JDK tests
ctornqvi
parents: 47479
diff changeset
   394
    c = $(NUM_CORES) / 2; \
62b6e9b1dfdc 8196197: Enable the make system to calculate concurrency for JDK tests
ctornqvi
parents: 47479
diff changeset
   395
    if (c > 12) c = 12; \
62b6e9b1dfdc 8196197: Enable the make system to calculate concurrency for JDK tests
ctornqvi
parents: 47479
diff changeset
   396
    c = c * $(CONCURRENCY_FACTOR); \
62b6e9b1dfdc 8196197: Enable the make system to calculate concurrency for JDK tests
ctornqvi
parents: 47479
diff changeset
   397
    if (c < 1) c = 1; \
62b6e9b1dfdc 8196197: Enable the make system to calculate concurrency for JDK tests
ctornqvi
parents: 47479
diff changeset
   398
    printf "%.0f", c; \
62b6e9b1dfdc 8196197: Enable the make system to calculate concurrency for JDK tests
ctornqvi
parents: 47479
diff changeset
   399
  }')
62b6e9b1dfdc 8196197: Enable the make system to calculate concurrency for JDK tests
ctornqvi
parents: 47479
diff changeset
   400
JTREG_BASIC_OPTIONS += -concurrency:$(CONCURRENCY)
62b6e9b1dfdc 8196197: Enable the make system to calculate concurrency for JDK tests
ctornqvi
parents: 47479
diff changeset
   401
48693
a2d550f08617 8196524: Align MaxRAMPercentage settings between open and closed
erikj
parents: 48677
diff changeset
   402
# Make sure MaxRAMPercentage is low enough to not cause OOM or swapping since
a2d550f08617 8196524: Align MaxRAMPercentage settings between open and closed
erikj
parents: 48677
diff changeset
   403
# we may end up with a lot of JVM's
a2d550f08617 8196524: Align MaxRAMPercentage settings between open and closed
erikj
parents: 48677
diff changeset
   404
MAX_RAM_PERCENTAGE := $(shell expr 25 / $(CONCURRENCY))
a2d550f08617 8196524: Align MaxRAMPercentage settings between open and closed
erikj
parents: 48677
diff changeset
   405
JTREG_BASIC_OPTIONS += -vmoption:-XX:MaxRAMPercentage=$(MAX_RAM_PERCENTAGE)
48677
62b6e9b1dfdc 8196197: Enable the make system to calculate concurrency for JDK tests
ctornqvi
parents: 47479
diff changeset
   406
42424
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   407
ifdef EXTRA_JTREG_OPTIONS
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   408
  JTREG_BASIC_OPTIONS += $(EXTRA_JTREG_OPTIONS)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   409
endif
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   410
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   411
# Default JTREG to run
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   412
JTREG = $(JT_HOME)/bin/jtreg
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   413
# run in agentvm/othervm mode
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   414
JTREG_BASIC_OPTIONS += $(JTREG_VM_TYPE)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   415
# Only run automatic tests
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   416
JTREG_BASIC_OPTIONS += -a
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   417
# Always turn on assertions
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   418
ifeq ($(USE_JTREG_ASSERT), true)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   419
  JTREG_ASSERT_OPTION = -ea -esa
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   420
endif
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   421
JTREG_BASIC_OPTIONS += $(JTREG_ASSERT_OPTION)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   422
# jtreg verbosity setting
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   423
# Default is to report details on all failed or error tests, times too
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   424
JTREG_VERBOSE ?= fail,error,time
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   425
JTREG_BASIC_OPTIONS += $(if $(JTREG_VERBOSE),-v:$(JTREG_VERBOSE))
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   426
# Retain all files for failing tests
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   427
JTREG_BASIC_OPTIONS += -retain:fail,error
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   428
# Ignore tests are not run and completely silent about it
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   429
JTREG_IGNORE_OPTION = -ignore:quiet
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   430
JTREG_BASIC_OPTIONS += $(JTREG_IGNORE_OPTION)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   431
# Multiply by 4 the timeout factor
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   432
JTREG_TIMEOUT_OPTION =  -timeoutFactor:4
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   433
JTREG_BASIC_OPTIONS += $(JTREG_TIMEOUT_OPTION)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   434
ifeq ($(LIMIT_JTREG_VM_MEMORY), true)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   435
  # Set the max memory for jtreg control vm
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   436
  JTREG_MEMORY_OPTION = -J-Xmx512m
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   437
  JTREG_BASIC_OPTIONS += $(JTREG_MEMORY_OPTION)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   438
  # Set the max memory for jtreg target test vms
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   439
  JTREG_TESTVM_MEMORY_OPTION = -vmoption:-Xmx512m
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   440
  JTREG_TEST_OPTIONS += $(JTREG_TESTVM_MEMORY_OPTION)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   441
endif
47329
43b33ee91ea0 8189115: Pass JIB_DATA_DIR to jtreg harness
ctornqvi
parents: 47285
diff changeset
   442
# Make it possible to specify the JIB_DATA_DIR for tests using the
43b33ee91ea0 8189115: Pass JIB_DATA_DIR to jtreg harness
ctornqvi
parents: 47285
diff changeset
   443
# JIB Artifact resolver
43b33ee91ea0 8189115: Pass JIB_DATA_DIR to jtreg harness
ctornqvi
parents: 47285
diff changeset
   444
JTREG_BASIC_OPTIONS += -e:JIB_DATA_DIR
42424
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   445
# Give tests access to JT_JAVA, see JDK-8141609
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   446
JTREG_BASIC_OPTIONS += -e:JDK8_HOME=${JT_JAVA}
46192
14c55d15c9d7 8174203: Enable AOT Jtreg tests on Windows x86_64
bobv
parents: 42424
diff changeset
   447
# Give aot tests access to Visual Studio installation
14c55d15c9d7 8174203: Enable AOT Jtreg tests on Windows x86_64
bobv
parents: 42424
diff changeset
   448
ifneq ($(VS120COMNTOOLS), )
14c55d15c9d7 8174203: Enable AOT Jtreg tests on Windows x86_64
bobv
parents: 42424
diff changeset
   449
  JTREG_BASIC_OPTIONS += -e:VS120COMNTOOLS=$(shell $(GETMIXEDPATH) "$(VS120COMNTOOLS)")
14c55d15c9d7 8174203: Enable AOT Jtreg tests on Windows x86_64
bobv
parents: 42424
diff changeset
   450
endif
42424
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   451
# Set other vm and test options
46248
5a6c03b61979 8184772: Make it possible to pass arguments only to the Java running the tests when running jtreg through make
ctornqvi
parents: 46196
diff changeset
   452
JTREG_TEST_OPTIONS += $(JAVA_ARGS:%=-javaoptions:%) $(JAVA_VM_ARGS:%=-vmoption:%)
46196
822ca950ddaa 8175300: Enable artifact resolution for jtreg tests
ctornqvi
parents: 46193
diff changeset
   453
ifneq ($(JIB_JAR), )
822ca950ddaa 8175300: Enable artifact resolution for jtreg tests
ctornqvi
parents: 46193
diff changeset
   454
  JTREG_BASIC_OPTIONS += -cpa:$(shell $(GETMIXEDPATH) "$(JIB_JAR)")
822ca950ddaa 8175300: Enable artifact resolution for jtreg tests
ctornqvi
parents: 46193
diff changeset
   455
endif
42424
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   456
ifeq ($(IGNORE_MARKED_TESTS), true)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   457
  # Option to tell jtreg to not run tests marked with "ignore"
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   458
  ifeq ($(PLATFORM), windows)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   459
    JTREG_KEY_OPTION = -k:!ignore
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   460
  else
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   461
    JTREG_KEY_OPTION = -k:\!ignore
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   462
  endif
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   463
  JTREG_BASIC_OPTIONS += $(JTREG_KEY_OPTION)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   464
endif
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   465
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   466
# Make sure jtreg exists
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   467
ifeq ($(USE_WINDOWS_EXISTENCE_CHECK), true)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   468
  jtreg_exists:
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   469
	test -d $(shell $(GETMIXEDPATH) "$(JT_HOME)")
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   470
	test -f $(shell $(GETMIXEDPATH) "$(JTREG)")
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   471
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   472
else
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   473
  jtreg_exists: $(JT_HOME)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   474
endif
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   475
PHONY_LIST += jtreg_exists
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   476
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   477
# Run jtreg
48980
ab7784555b4c 8197906: Enable CDS mode execution of jtreg tests via make
mseledtsov
parents: 48693
diff changeset
   478
jtreg_tests: prep jtreg_exists $(PRODUCT_HOME) $(TEST_PREREQS)
42424
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   479
	(                                                                    \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   480
	  ( JT_HOME=$(shell $(GETMIXEDPATH) "$(JT_HOME)");                   \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   481
	    export JT_HOME;                                                  \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   482
	    $(shell $(GETMIXEDPATH) "$(JTREG)")                              \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   483
	      $(JTREG_BASIC_OPTIONS)                                         \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   484
	      -r:$(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/JTreport")  \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   485
	      -w:$(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/JTwork")    \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   486
	      -jdk:$(shell $(GETMIXEDPATH) "$(PRODUCT_HOME)")                \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   487
	      $(JTREG_NATIVE_PATH)                                           \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   488
	      $(JTREG_FAILURE_HANDLER_OPTIONS)                               \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   489
	      $(JTREG_EXCLUSIONS)                                            \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   490
	      $(JTREG_TEST_OPTIONS)                                          \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   491
	      $(TEST_SELECTION)                                              \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   492
	  ) ;                                                                \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   493
	  $(BUNDLE_UP_AND_EXIT)                                              \
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   494
	) 2>&1 | $(TEE) $(ABS_TEST_OUTPUT_DIR)/output.txt ; $(TESTEXIT)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   495
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   496
PHONY_LIST += jtreg_tests
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   497
47218
918745561887 8187445: Forest Consolidation: Make tests work
erikj
parents: 46248
diff changeset
   498
# Make it possible to call this with <component>_jtreg_tests
918745561887 8187445: Forest Consolidation: Make tests work
erikj
parents: 46248
diff changeset
   499
%_jtreg_tests: jtreg_tests
918745561887 8187445: Forest Consolidation: Make tests work
erikj
parents: 46248
diff changeset
   500
	# Must have a fake recipe here to prevent make from matching any other rule
918745561887 8187445: Forest Consolidation: Make tests work
erikj
parents: 46248
diff changeset
   501
42424
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   502
################################################################
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   503
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   504
# Phony targets (e.g. these are not filenames)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   505
.PHONY: all clean prep $(PHONY_LIST)
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   506
2ac2a6ef14a6 8170629: Remove code duplication in test makefiles
ihse
parents:
diff changeset
   507
################################################################