8212028: Use run-test makefile framework for testing in Oracle's Mach5
Reviewed-by: ihse
This commit is contained in:
parent
7d7da8976b
commit
232912a6ca
@ -119,7 +119,7 @@ print-configurations:
|
|||||||
run-test-prebuilt:
|
run-test-prebuilt:
|
||||||
@( cd $(topdir) && \
|
@( cd $(topdir) && \
|
||||||
$(MAKE) --no-print-directory -r -R -I make/common/ -f make/RunTestsPrebuilt.gmk \
|
$(MAKE) --no-print-directory -r -R -I make/common/ -f make/RunTestsPrebuilt.gmk \
|
||||||
run-test-prebuilt TEST="$(TEST)" )
|
run-test-prebuilt CUSTOM_MAKE_DIR=$(CUSTOM_MAKE_DIR) TEST="$(TEST)" )
|
||||||
|
|
||||||
ALL_GLOBAL_TARGETS := help print-configurations run-test-prebuilt
|
ALL_GLOBAL_TARGETS := help print-configurations run-test-prebuilt
|
||||||
|
|
||||||
|
@ -45,8 +45,8 @@ ifneq ($(TEST_VM_OPTS), )
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
$(eval $(call ParseKeywordVariable, TEST_OPTS, \
|
$(eval $(call ParseKeywordVariable, TEST_OPTS, \
|
||||||
KEYWORDS := JOBS TIMEOUT, \
|
SINGLE_KEYWORDS := JOBS TIMEOUT_FACTOR, \
|
||||||
STRING_KEYWORDS := VM_OPTIONS, \
|
STRING_KEYWORDS := VM_OPTIONS JAVA_OPTIONS, \
|
||||||
))
|
))
|
||||||
|
|
||||||
# Helper function to propagate TEST_OPTS values.
|
# Helper function to propagate TEST_OPTS values.
|
||||||
@ -103,6 +103,31 @@ endif
|
|||||||
GTEST_LAUNCHER_DIRS := $(patsubst %/gtestLauncher, %, $(wildcard $(TEST_IMAGE_DIR)/hotspot/gtest/*/gtestLauncher))
|
GTEST_LAUNCHER_DIRS := $(patsubst %/gtestLauncher, %, $(wildcard $(TEST_IMAGE_DIR)/hotspot/gtest/*/gtestLauncher))
|
||||||
GTEST_VARIANTS := $(strip $(patsubst $(TEST_IMAGE_DIR)/hotspot/gtest/%, %, $(GTEST_LAUNCHER_DIRS)))
|
GTEST_VARIANTS := $(strip $(patsubst $(TEST_IMAGE_DIR)/hotspot/gtest/%, %, $(GTEST_LAUNCHER_DIRS)))
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Setup global test running parameters
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
# Each factor variable comes in 3 variants. The first one is reserved for users
|
||||||
|
# to use on command line. The other two are for predifined configurations in JDL
|
||||||
|
# and for machine specific configurations respectively.
|
||||||
|
TEST_JOBS_FACTOR ?= 1
|
||||||
|
TEST_JOBS_FACTOR_JDL ?= 1
|
||||||
|
TEST_JOBS_FACTOR_MACHINE ?= 1
|
||||||
|
|
||||||
|
ifeq ($(TEST_JOBS), 0)
|
||||||
|
# Concurrency based on min(cores / 2, 12) * TEST_JOBS_FACTOR
|
||||||
|
TEST_JOBS := $(shell $(AWK) \
|
||||||
|
'BEGIN { \
|
||||||
|
c = $(NUM_CORES) / 2; \
|
||||||
|
if (c > 12) c = 12; \
|
||||||
|
c = c * $(TEST_JOBS_FACTOR); \
|
||||||
|
c = c * $(TEST_JOBS_FACTOR_JDL); \
|
||||||
|
c = c * $(TEST_JOBS_FACTOR_MACHINE); \
|
||||||
|
if (c < 1) c = 1; \
|
||||||
|
printf "%.0f", c; \
|
||||||
|
}')
|
||||||
|
endif
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Parse control variables
|
# Parse control variables
|
||||||
################################################################################
|
################################################################################
|
||||||
@ -110,16 +135,19 @@ GTEST_VARIANTS := $(strip $(patsubst $(TEST_IMAGE_DIR)/hotspot/gtest/%, %, $(GTE
|
|||||||
ifneq ($(TEST_OPTS), )
|
ifneq ($(TEST_OPTS), )
|
||||||
# Inform the user
|
# Inform the user
|
||||||
$(info Running tests using TEST_OPTS control variable '$(TEST_OPTS)')
|
$(info Running tests using TEST_OPTS control variable '$(TEST_OPTS)')
|
||||||
|
|
||||||
$(eval $(call SetTestOpt,VM_OPTIONS,JTREG))
|
|
||||||
$(eval $(call SetTestOpt,VM_OPTIONS,GTEST))
|
|
||||||
|
|
||||||
$(eval $(call SetTestOpt,JOBS,JTREG))
|
|
||||||
$(eval $(call SetTestOpt,TIMEOUT,JTREG))
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
$(eval $(call SetTestOpt,VM_OPTIONS,JTREG))
|
||||||
|
$(eval $(call SetTestOpt,JAVA_OPTIONS,JTREG))
|
||||||
|
$(eval $(call SetTestOpt,VM_OPTIONS,GTEST))
|
||||||
|
$(eval $(call SetTestOpt,JAVA_OPTIONS,GTEST))
|
||||||
|
|
||||||
|
$(eval $(call SetTestOpt,JOBS,JTREG))
|
||||||
|
$(eval $(call SetTestOpt,TIMEOUT_FACTOR,JTREG))
|
||||||
|
|
||||||
$(eval $(call ParseKeywordVariable, JTREG, \
|
$(eval $(call ParseKeywordVariable, JTREG, \
|
||||||
KEYWORDS := JOBS TIMEOUT TEST_MODE ASSERT VERBOSE RETAIN MAX_MEM, \
|
SINGLE_KEYWORDS := JOBS TIMEOUT_FACTOR TEST_MODE ASSERT VERBOSE RETAIN MAX_MEM \
|
||||||
|
EXTRA_PROBLEM_LISTS KEYWORDS, \
|
||||||
STRING_KEYWORDS := OPTIONS JAVA_OPTIONS VM_OPTIONS, \
|
STRING_KEYWORDS := OPTIONS JAVA_OPTIONS VM_OPTIONS, \
|
||||||
))
|
))
|
||||||
|
|
||||||
@ -129,8 +157,8 @@ ifneq ($(JTREG), )
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
$(eval $(call ParseKeywordVariable, GTEST, \
|
$(eval $(call ParseKeywordVariable, GTEST, \
|
||||||
KEYWORDS := REPEAT, \
|
SINGLE_KEYWORDS := REPEAT, \
|
||||||
STRING_KEYWORDS := OPTIONS VM_OPTIONS, \
|
STRING_KEYWORDS := OPTIONS VM_OPTIONS JAVA_OPTIONS, \
|
||||||
))
|
))
|
||||||
|
|
||||||
ifneq ($(GTEST), )
|
ifneq ($(GTEST), )
|
||||||
@ -143,17 +171,6 @@ endif
|
|||||||
# Component-specific Jtreg settings
|
# Component-specific Jtreg settings
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
ifeq ($(TEST_JOBS), 0)
|
|
||||||
# If TEST_JOBS is not specified, hotspot fallback default is
|
|
||||||
# min(num_cores / 2, 12).
|
|
||||||
hotspot_JTREG_JOBS := $(shell $(EXPR) $(NUM_CORES) / 2)
|
|
||||||
ifeq ($(hotspot_JTREG_JOBS), 0)
|
|
||||||
hotspot_JTREG_JOBS := 1
|
|
||||||
else ifeq ($(shell $(EXPR) $(hotspot_JTREG_JOBS) \> 12), 1)
|
|
||||||
hotspot_JTREG_JOBS := 12
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
hotspot_JTREG_MAX_MEM := 0
|
hotspot_JTREG_MAX_MEM := 0
|
||||||
hotspot_JTREG_ASSERT := false
|
hotspot_JTREG_ASSERT := false
|
||||||
hotspot_JTREG_NATIVEPATH := $(TEST_IMAGE_DIR)/hotspot/jtreg/native
|
hotspot_JTREG_NATIVEPATH := $(TEST_IMAGE_DIR)/hotspot/jtreg/native
|
||||||
@ -165,6 +182,8 @@ langtools_JTREG_PROBLEM_LIST += $(TOPDIR)/test/langtools/ProblemList.txt
|
|||||||
nashorn_JTREG_PROBLEM_LIST += $(TOPDIR)/test/nashorn/ProblemList.txt
|
nashorn_JTREG_PROBLEM_LIST += $(TOPDIR)/test/nashorn/ProblemList.txt
|
||||||
hotspot_JTREG_PROBLEM_LIST += $(TOPDIR)/test/hotspot/jtreg/ProblemList.txt
|
hotspot_JTREG_PROBLEM_LIST += $(TOPDIR)/test/hotspot/jtreg/ProblemList.txt
|
||||||
|
|
||||||
|
langtools_JTREG_MAX_MEM := 768m
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Parse test selection
|
# Parse test selection
|
||||||
#
|
#
|
||||||
@ -368,7 +387,7 @@ define SetupRunGtestTestBody
|
|||||||
$1_GTEST_REPEAT :=--gtest_repeat=$$(GTEST_REPEAT)
|
$1_GTEST_REPEAT :=--gtest_repeat=$$(GTEST_REPEAT)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
run-test-$1:
|
run-test-$1: $(TEST_PREREQS)
|
||||||
$$(call LogWarn)
|
$$(call LogWarn)
|
||||||
$$(call LogWarn, Running test '$$($1_TEST)')
|
$$(call LogWarn, Running test '$$($1_TEST)')
|
||||||
$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
|
$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
|
||||||
@ -377,6 +396,7 @@ define SetupRunGtestTestBody
|
|||||||
-jdk $(JDK_IMAGE_DIR) $$($1_GTEST_FILTER) \
|
-jdk $(JDK_IMAGE_DIR) $$($1_GTEST_FILTER) \
|
||||||
--gtest_output=xml:$$($1_TEST_RESULTS_DIR)/gtest.xml \
|
--gtest_output=xml:$$($1_TEST_RESULTS_DIR)/gtest.xml \
|
||||||
$$($1_GTEST_REPEAT) $$(GTEST_OPTIONS) $$(GTEST_VM_OPTIONS) \
|
$$($1_GTEST_REPEAT) $$(GTEST_OPTIONS) $$(GTEST_VM_OPTIONS) \
|
||||||
|
$$($1_GTEST_JAVA_OPTIONS) \
|
||||||
> >($(TEE) $$($1_TEST_RESULTS_DIR)/gtest.txt) \
|
> >($(TEE) $$($1_TEST_RESULTS_DIR)/gtest.txt) \
|
||||||
&& $$(ECHO) $$$$? > $$($1_EXITCODE) \
|
&& $$(ECHO) $$$$? > $$($1_EXITCODE) \
|
||||||
|| $$(ECHO) $$$$? > $$($1_EXITCODE) \
|
|| $$(ECHO) $$$$? > $$($1_EXITCODE) \
|
||||||
@ -447,12 +467,11 @@ define SetupRunJtregTestBody
|
|||||||
|
|
||||||
$1_TEST_NAME := $$(strip $$(patsubst jtreg:%, %, $$($1_TEST)))
|
$1_TEST_NAME := $$(strip $$(patsubst jtreg:%, %, $$($1_TEST)))
|
||||||
|
|
||||||
$1_COMPONENT := \
|
$1_TEST_ROOT := \
|
||||||
$$(strip $$(foreach root, $$(JTREG_TESTROOTS), \
|
$$(strip $$(foreach root, $$(JTREG_TESTROOTS), \
|
||||||
$$(if $$(filter $$(root)%, $$(JTREG_TOPDIR)/$$($1_TEST_NAME)), \
|
$$(if $$(filter $$(root)%, $$(JTREG_TOPDIR)/$$($1_TEST_NAME)), $$(root)) \
|
||||||
$$(lastword $$(subst /, $$(SPACE), $$(root))) \
|
|
||||||
) \
|
|
||||||
))
|
))
|
||||||
|
$1_COMPONENT := $$(lastword $$(subst /, $$(SPACE), $$($1_TEST_ROOT)))
|
||||||
# This will work only as long as just hotspot has the additional "jtreg" directory
|
# This will work only as long as just hotspot has the additional "jtreg" directory
|
||||||
ifeq ($$($1_COMPONENT), jtreg)
|
ifeq ($$($1_COMPONENT), jtreg)
|
||||||
$1_COMPONENT := hotspot
|
$1_COMPONENT := hotspot
|
||||||
@ -475,11 +494,12 @@ define SetupRunJtregTestBody
|
|||||||
$$(eval $$(call SetJtregValue,$1,JTREG_BASIC_OPTIONS))
|
$$(eval $$(call SetJtregValue,$1,JTREG_BASIC_OPTIONS))
|
||||||
$$(eval $$(call SetJtregValue,$1,JTREG_PROBLEM_LIST))
|
$$(eval $$(call SetJtregValue,$1,JTREG_PROBLEM_LIST))
|
||||||
|
|
||||||
|
# Only the problem list for the current test root should be used.
|
||||||
|
$1_JTREG_PROBLEM_LIST := $$(filter $$($1_TEST_ROOT)%, $$($1_JTREG_PROBLEM_LIST))
|
||||||
|
|
||||||
ifneq ($(TEST_JOBS), 0)
|
ifneq ($(TEST_JOBS), 0)
|
||||||
# User has specified TEST_JOBS, use that as fallback default
|
|
||||||
$$(eval $$(call SetJtregValue,$1,JTREG_JOBS,$$(TEST_JOBS)))
|
$$(eval $$(call SetJtregValue,$1,JTREG_JOBS,$$(TEST_JOBS)))
|
||||||
else
|
else
|
||||||
# Use JOBS as default (except for hotspot)
|
|
||||||
$$(eval $$(call SetJtregValue,$1,JTREG_JOBS,$$(JOBS)))
|
$$(eval $$(call SetJtregValue,$1,JTREG_JOBS,$$(JOBS)))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -487,7 +507,7 @@ define SetupRunJtregTestBody
|
|||||||
# we may end up with a lot of JVM's
|
# we may end up with a lot of JVM's
|
||||||
$1_JTREG_MAX_RAM_PERCENTAGE := $$(shell $$(EXPR) 25 / $$($1_JTREG_JOBS))
|
$1_JTREG_MAX_RAM_PERCENTAGE := $$(shell $$(EXPR) 25 / $$($1_JTREG_JOBS))
|
||||||
|
|
||||||
JTREG_TIMEOUT ?= 4
|
JTREG_TIMEOUT_FACTOR ?= 4
|
||||||
JTREG_VERBOSE ?= fail,error,summary
|
JTREG_VERBOSE ?= fail,error,summary
|
||||||
JTREG_RETAIN ?= fail,error
|
JTREG_RETAIN ?= fail,error
|
||||||
|
|
||||||
@ -498,10 +518,10 @@ define SetupRunJtregTestBody
|
|||||||
|
|
||||||
$1_JTREG_BASIC_OPTIONS += -$$($1_JTREG_TEST_MODE) \
|
$1_JTREG_BASIC_OPTIONS += -$$($1_JTREG_TEST_MODE) \
|
||||||
-verbose:$$(JTREG_VERBOSE) -retain:$$(JTREG_RETAIN) \
|
-verbose:$$(JTREG_VERBOSE) -retain:$$(JTREG_RETAIN) \
|
||||||
-concurrency:$$($1_JTREG_JOBS) -timeoutFactor:$$(JTREG_TIMEOUT) \
|
-concurrency:$$($1_JTREG_JOBS) -timeoutFactor:$$(JTREG_TIMEOUT_FACTOR) \
|
||||||
-vmoption:-XX:MaxRAMPercentage=$$($1_JTREG_MAX_RAM_PERCENTAGE)
|
-vmoption:-XX:MaxRAMPercentage=$$($1_JTREG_MAX_RAM_PERCENTAGE)
|
||||||
|
|
||||||
$1_JTREG_BASIC_OPTIONS += -automatic -keywords:\!ignore -ignore:quiet
|
$1_JTREG_BASIC_OPTIONS += -automatic -ignore:quiet
|
||||||
|
|
||||||
# Make it possible to specify the JIB_DATA_DIR for tests using the
|
# Make it possible to specify the JIB_DATA_DIR for tests using the
|
||||||
# JIB Artifact resolver
|
# JIB Artifact resolver
|
||||||
@ -531,6 +551,14 @@ define SetupRunJtregTestBody
|
|||||||
$1_JTREG_BASIC_OPTIONS += $$(addprefix -exclude:, $$($1_JTREG_PROBLEM_LIST))
|
$1_JTREG_BASIC_OPTIONS += $$(addprefix -exclude:, $$($1_JTREG_PROBLEM_LIST))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifneq ($$(JTREG_EXTRA_PROBLEM_LISTS), )
|
||||||
|
# Accept both absolute paths as well as relative to the current test root.
|
||||||
|
$1_JTREG_BASIC_OPTIONS += $$(addprefix -exclude:, $$(wildcard \
|
||||||
|
$$(JTREG_EXTRA_PROBLEM_LISTS) \
|
||||||
|
$$(addprefix $$($1_TEST_ROOT)/, $$(JTREG_EXTRA_PROBLEM_LISTS)) \
|
||||||
|
))
|
||||||
|
endif
|
||||||
|
|
||||||
ifneq ($$(JIB_HOME), )
|
ifneq ($$(JIB_HOME), )
|
||||||
$1_JTREG_BASIC_OPTIONS += -e:JIB_HOME=$$(JIB_HOME)
|
$1_JTREG_BASIC_OPTIONS += -e:JIB_HOME=$$(JIB_HOME)
|
||||||
endif
|
endif
|
||||||
@ -541,10 +569,21 @@ define SetupRunJtregTestBody
|
|||||||
$1_JTREG_LAUNCHER_OPTIONS += -Djava.library.path="$(JTREG_FAILURE_HANDLER_DIR)"
|
$1_JTREG_LAUNCHER_OPTIONS += -Djava.library.path="$(JTREG_FAILURE_HANDLER_DIR)"
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifneq ($$(JTREG_KEYWORDS), )
|
||||||
|
# The keywords string may contain problematic characters and may be quoted
|
||||||
|
# already when it arrives here. Remove any existing quotes and replace them
|
||||||
|
# with one set of single quotes.
|
||||||
|
$1_JTREG_KEYWORDS := \
|
||||||
|
$$(strip $$(subst $$(SQUOTE),,$$(subst $$(DQUOTE),,$$(JTREG_KEYWORDS))))
|
||||||
|
ifneq ($$($1_JTREG_KEYWORDS), )
|
||||||
|
$1_JTREG_BASIC_OPTIONS += -k:'$$($1_JTREG_KEYWORDS)'
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
clean-workdir-$1:
|
clean-workdir-$1:
|
||||||
$$(RM) -r $$($1_TEST_SUPPORT_DIR)
|
$$(RM) -r $$($1_TEST_SUPPORT_DIR)
|
||||||
|
|
||||||
run-test-$1: clean-workdir-$1
|
run-test-$1: clean-workdir-$1 $(TEST_PREREQS)
|
||||||
$$(call LogWarn)
|
$$(call LogWarn)
|
||||||
$$(call LogWarn, Running test '$$($1_TEST)')
|
$$(call LogWarn, Running test '$$($1_TEST)')
|
||||||
$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
|
$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
|
||||||
@ -631,7 +670,7 @@ define SetupRunSpecialTestBody
|
|||||||
$$(error Invalid special test specification: $$($1_TEST_NAME))
|
$$(error Invalid special test specification: $$($1_TEST_NAME))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
run-test-$1:
|
run-test-$1: $(TEST_PREREQS)
|
||||||
$$(call LogWarn)
|
$$(call LogWarn)
|
||||||
$$(call LogWarn, Running test '$$($1_TEST)')
|
$$(call LogWarn, Running test '$$($1_TEST)')
|
||||||
$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
|
$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
|
||||||
|
@ -49,10 +49,11 @@ TOPDIR := $(strip $(patsubst %/make/, %, $(dir $(makefile_path))))
|
|||||||
# given.
|
# given.
|
||||||
# Note: No spaces are allowed around the arguments.
|
# Note: No spaces are allowed around the arguments.
|
||||||
#
|
#
|
||||||
# $1: The name of the argument
|
# $1: The name of the variable
|
||||||
# $2: The default value, if any, or OPTIONAL (do not provide a default but
|
# $2: The default value, if any, or OPTIONAL (do not provide a default but
|
||||||
# do not exit if it is missing)
|
# do not exit if it is missing)
|
||||||
# $3: If NO_CHECK, disable checking for target file/directory existence
|
# $3: If NO_CHECK, disable checking for target file/directory existence
|
||||||
|
# If MKDIR, create the default directory
|
||||||
define SetupVariable
|
define SetupVariable
|
||||||
ifeq ($$($1), )
|
ifeq ($$($1), )
|
||||||
ifeq ($2, )
|
ifeq ($2, )
|
||||||
@ -75,11 +76,18 @@ define SetupVariable
|
|||||||
endif
|
endif
|
||||||
# If $1 has a value (is not optional), and $3 is not set (to NO_CHECK),
|
# If $1 has a value (is not optional), and $3 is not set (to NO_CHECK),
|
||||||
# and if wildcard is empty, then complain that the file is missing.
|
# and if wildcard is empty, then complain that the file is missing.
|
||||||
ifeq ($$(strip $$(if $$($1), , OPTIONAL) $$(wildcard $$($1)) $3), )
|
ifeq ($3, MKDIR)
|
||||||
|
ifneq ($$(findstring $$(LOG), info debug trace), )
|
||||||
|
$$(info Creating directory for $1)
|
||||||
|
endif
|
||||||
|
$$(shell mkdir -p $$($1))
|
||||||
|
else ifneq ($3, NO_CHECK)
|
||||||
|
ifeq ($$(strip $$(if $$($1), , OPTIONAL) $$(wildcard $$($1))), )
|
||||||
$$(info Error: Prebuilt variable $1 points to missing file/directory:)
|
$$(info Error: Prebuilt variable $1 points to missing file/directory:)
|
||||||
$$(info '$$($1)')
|
$$(info '$$($1)')
|
||||||
$$(error Cannot continue.)
|
$$(error Cannot continue.)
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
endef
|
endef
|
||||||
|
|
||||||
# Create an ephemeral spec file
|
# Create an ephemeral spec file
|
||||||
@ -106,14 +114,14 @@ endef
|
|||||||
# Verify that user has given correct additional input.
|
# Verify that user has given correct additional input.
|
||||||
|
|
||||||
# These variables are absolutely necessary
|
# These variables are absolutely necessary
|
||||||
$(eval $(call SetupVariable,OUTPUTDIR))
|
$(eval $(call SetupVariable,OUTPUTDIR,$(TOPDIR)/build/run-test-prebuilt,MKDIR))
|
||||||
$(eval $(call SetupVariable,BOOT_JDK))
|
$(eval $(call SetupVariable,BOOT_JDK))
|
||||||
$(eval $(call SetupVariable,JT_HOME))
|
$(eval $(call SetupVariable,JT_HOME))
|
||||||
|
|
||||||
# These can have default values based on the ones above
|
# These can have default values based on the ones above
|
||||||
$(eval $(call SetupVariable,JDK_IMAGE_DIR,$(OUTPUTDIR)/images/jdk))
|
$(eval $(call SetupVariable,JDK_IMAGE_DIR,$(OUTPUTDIR)/images/jdk))
|
||||||
$(eval $(call SetupVariable,TEST_IMAGE_DIR,$(OUTPUTDIR)/images/test))
|
$(eval $(call SetupVariable,TEST_IMAGE_DIR,$(OUTPUTDIR)/images/test))
|
||||||
$(eval $(call SetupVariable,SYMBOLS_IMAGE_DIR,$(OUTPUTDIR)/images/symbols))
|
$(eval $(call SetupVariable,SYMBOLS_IMAGE_DIR,$(OUTPUTDIR)/images/symbols,NO_CHECK))
|
||||||
|
|
||||||
# Provide default values for tools that we need
|
# Provide default values for tools that we need
|
||||||
$(eval $(call SetupVariable,MAKE,make,NO_CHECK))
|
$(eval $(call SetupVariable,MAKE,make,NO_CHECK))
|
||||||
@ -202,8 +210,8 @@ endif
|
|||||||
|
|
||||||
ifeq ($(OPENJDK_TARGET_OS), windows)
|
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||||
ifeq ($(wildcard $(TEST_IMAGE_DIR)/bin/fixpath.exe), )
|
ifeq ($(wildcard $(TEST_IMAGE_DIR)/bin/fixpath.exe), )
|
||||||
$$(info Error: fixpath is missing from test image '$(TEST_IMAGE_DIR)')
|
$(info Error: fixpath is missing from test image '$(TEST_IMAGE_DIR)')
|
||||||
$$(error Cannot continue.)
|
$(error Cannot continue.)
|
||||||
endif
|
endif
|
||||||
FIXPATH := $(TEST_IMAGE_DIR)/bin/fixpath.exe -c
|
FIXPATH := $(TEST_IMAGE_DIR)/bin/fixpath.exe -c
|
||||||
PATH_SEP:=;
|
PATH_SEP:=;
|
||||||
@ -221,7 +229,9 @@ else ifeq ($(OPENJDK_TARGET_OS), solaris)
|
|||||||
NUM_CORES := $(shell LC_MESSAGES=C /usr/sbin/psrinfo -v | $(GREP) -c on-line)
|
NUM_CORES := $(shell LC_MESSAGES=C /usr/sbin/psrinfo -v | $(GREP) -c on-line)
|
||||||
else ifeq ($(OPENJDK_TARGET_OS), windows)
|
else ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||||
NUM_CORES := $(NUMBER_OF_PROCESSORS)
|
NUM_CORES := $(NUMBER_OF_PROCESSORS)
|
||||||
else
|
endif
|
||||||
|
ifeq ($(NUM_CORES), )
|
||||||
|
$(warn Could not find number of CPUs, assuming 1)
|
||||||
NUM_CORES := 1
|
NUM_CORES := 1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -276,9 +286,6 @@ run-test-prebuilt:
|
|||||||
@$(RM) -f $(MAKESUPPORT_OUTPUTDIR)/exit-with-error
|
@$(RM) -f $(MAKESUPPORT_OUTPUTDIR)/exit-with-error
|
||||||
@cd $(TOPDIR) && $(MAKE) $(MAKE_ARGS) -f make/RunTests.gmk run-test \
|
@cd $(TOPDIR) && $(MAKE) $(MAKE_ARGS) -f make/RunTests.gmk run-test \
|
||||||
TEST="$(TEST)"
|
TEST="$(TEST)"
|
||||||
@if test -f $(MAKESUPPORT_OUTPUTDIR)/exit-with-error ; then \
|
|
||||||
exit 1 ; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
all: run-test-prebuilt
|
all: run-test-prebuilt
|
||||||
|
|
||||||
|
@ -124,7 +124,7 @@ JLINK := $(FIXPATH) $(JLINK_CMD)
|
|||||||
JMOD := $(FIXPATH) $(JMOD_CMD)
|
JMOD := $(FIXPATH) $(JMOD_CMD)
|
||||||
JARSIGNER := $(FIXPATH) $(JARSIGNER_CMD)
|
JARSIGNER := $(FIXPATH) $(JARSIGNER_CMD)
|
||||||
|
|
||||||
BUILD_JAVA := $(JAVA)
|
BUILD_JAVA := $(JDK_IMAGE_DIR)/bin/JAVA
|
||||||
################################################################################
|
################################################################################
|
||||||
# Some common tools. Assume most common name and no path.
|
# Some common tools. Assume most common name and no path.
|
||||||
AWK := awk
|
AWK := awk
|
||||||
@ -172,3 +172,13 @@ UNZIP := unzip
|
|||||||
EXPR := expr
|
EXPR := expr
|
||||||
FILE := file
|
FILE := file
|
||||||
HG := hg
|
HG := hg
|
||||||
|
|
||||||
|
# On Solaris gnu versions of some tools are required.
|
||||||
|
ifeq ($(OPENJDK_BUILD_OS), solaris)
|
||||||
|
AWK := gawk
|
||||||
|
GREP := ggrep
|
||||||
|
EGREP := ggrep -E
|
||||||
|
FGREP := grep -F
|
||||||
|
SED := gsed
|
||||||
|
TAR := gtar
|
||||||
|
endif
|
||||||
|
@ -842,7 +842,7 @@ endef
|
|||||||
# Parameter 1 is the name of the rule, and is also the name of the variable.
|
# Parameter 1 is the name of the rule, and is also the name of the variable.
|
||||||
#
|
#
|
||||||
# Remaining parameters are named arguments. These include:
|
# Remaining parameters are named arguments. These include:
|
||||||
# KEYWORDS A list of valid keywords
|
# SINGLE_KEYWORDS A list of valid keywords with single string values
|
||||||
# STRING_KEYWORDS A list of valid keywords, processed as string. This means
|
# STRING_KEYWORDS A list of valid keywords, processed as string. This means
|
||||||
# that '%20' will be replaced by ' ' to allow for multi-word strings.
|
# that '%20' will be replaced by ' ' to allow for multi-word strings.
|
||||||
#
|
#
|
||||||
@ -856,7 +856,7 @@ define ParseKeywordVariableBody
|
|||||||
$$(eval mangled_part_eval := $$(call DoubleDollar, $$(mangled_part))) \
|
$$(eval mangled_part_eval := $$(call DoubleDollar, $$(mangled_part))) \
|
||||||
$$(eval part := $$$$(subst ||||,$$$$(SPACE),$$$$(mangled_part_eval))) \
|
$$(eval part := $$$$(subst ||||,$$$$(SPACE),$$$$(mangled_part_eval))) \
|
||||||
$$(eval $1_NO_MATCH := true) \
|
$$(eval $1_NO_MATCH := true) \
|
||||||
$$(foreach keyword, $$($1_KEYWORDS), \
|
$$(foreach keyword, $$($1_SINGLE_KEYWORDS), \
|
||||||
$$(eval keyword_eval := $$(call DoubleDollar, $$(keyword))) \
|
$$(eval keyword_eval := $$(call DoubleDollar, $$(keyword))) \
|
||||||
$$(if $$(filter $$(keyword)=%, $$(part)), \
|
$$(if $$(filter $$(keyword)=%, $$(part)), \
|
||||||
$$(eval $(strip $1)_$$$$(keyword_eval) := $$$$(strip $$$$(patsubst $$$$(keyword_eval)=%, %, $$$$(part)))) \
|
$$(eval $(strip $1)_$$$$(keyword_eval) := $$$$(strip $$$$(patsubst $$$$(keyword_eval)=%, %, $$$$(part)))) \
|
||||||
@ -871,11 +871,11 @@ define ParseKeywordVariableBody
|
|||||||
) \
|
) \
|
||||||
) \
|
) \
|
||||||
$$(if $$($1_NO_MATCH), \
|
$$(if $$($1_NO_MATCH), \
|
||||||
$$(if $$(filter $$(part), $$($1_KEYWORDS) $$($1_STRING_KEYWORDS)), \
|
$$(if $$(filter $$(part), $$($1_SINGLE_KEYWORDS) $$($1_STRING_KEYWORDS)), \
|
||||||
$$(info Keyword $$(part) for $1 needs to be assigned a value.) \
|
$$(info Keyword $$(part) for $1 needs to be assigned a value.) \
|
||||||
, \
|
, \
|
||||||
$$(info $$(part) is not a valid keyword for $1.) \
|
$$(info $$(part) is not a valid keyword for $1.) \
|
||||||
$$(info Valid keywords: $$($1_KEYWORDS) $$($1_STRING_KEYWORDS).) \
|
$$(info Valid keywords: $$($1_SINGLE_KEYWORDS) $$($1_STRING_KEYWORDS).) \
|
||||||
) \
|
) \
|
||||||
$$(error Cannot continue) \
|
$$(error Cannot continue) \
|
||||||
) \
|
) \
|
||||||
|
@ -755,16 +755,15 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
"run-test-prebuilt": {
|
"run-test-prebuilt": {
|
||||||
target_os: input.build_os,
|
target_os: input.build_os,
|
||||||
target_cpu: input.build_cpu,
|
target_cpu: input.build_cpu,
|
||||||
src: "src.conf",
|
|
||||||
dependencies: [ "jtreg", "gnumake", "boot_jdk", "jib", testedProfile + ".jdk",
|
dependencies: [ "jtreg", "gnumake", "boot_jdk", "jib", testedProfile + ".jdk",
|
||||||
testedProfile + ".test", "src.full"
|
testedProfile + ".test"
|
||||||
],
|
],
|
||||||
work_dir: input.get("src.full", "install_path") + "/test",
|
src: "src.conf",
|
||||||
|
make_args: [ "run-test-prebuilt", "LOG_CMDLINES=true" ],
|
||||||
environment: {
|
environment: {
|
||||||
"JT_JAVA": common.boot_jdk_home,
|
"BOOT_JDK": common.boot_jdk_home,
|
||||||
"PRODUCT_HOME": input.get(testedProfile + ".jdk", "home_path"),
|
"JDK_IMAGE_DIR": input.get(testedProfile + ".jdk", "home_path"),
|
||||||
"TEST_IMAGE_DIR": input.get(testedProfile + ".test", "home_path"),
|
"TEST_IMAGE_DIR": input.get(testedProfile + ".test", "home_path")
|
||||||
"TEST_OUTPUT_DIR": input.src_top_dir
|
|
||||||
},
|
},
|
||||||
labels: "test"
|
labels: "test"
|
||||||
}
|
}
|
||||||
@ -802,13 +801,34 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
windowsRunTestPrebuiltExtra = {
|
windowsRunTestPrebuiltExtra = {
|
||||||
dependencies: [ testedProfile + ".jdk_symbols" ],
|
dependencies: [ testedProfile + ".jdk_symbols" ],
|
||||||
environment: {
|
environment: {
|
||||||
"PRODUCT_SYMBOLS_HOME": input.get(testedProfile + ".jdk_symbols", "home_path"),
|
"SYMBOLS_IMAGE_DIR": input.get(testedProfile + ".jdk_symbols", "home_path"),
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
profiles["run-test-prebuilt"] = concatObjects(profiles["run-test-prebuilt"],
|
profiles["run-test-prebuilt"] = concatObjects(profiles["run-test-prebuilt"],
|
||||||
windowsRunTestPrebuiltExtra);
|
windowsRunTestPrebuiltExtra);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// The profile run-test-prebuilt defines src.conf as the src bundle. When
|
||||||
|
// running in Mach 5, this reduces the time it takes to populate the
|
||||||
|
// considerably. But with just src.conf, we cannot actually run any tests,
|
||||||
|
// so if running from a workspace with just src.conf in it, we need to also
|
||||||
|
// get src.full as a dependency, and define the work_dir (where make gets
|
||||||
|
// run) to be in the src.full install path. By running in the install path,
|
||||||
|
// the same cached installation of the full src can be reused for multiple
|
||||||
|
// test tasks. Care must however be taken not to polute that work dir by
|
||||||
|
// setting the appropriate make variables to control output directories.
|
||||||
|
//
|
||||||
|
// Use the existance of the top level README as indication of if this is
|
||||||
|
// the full source or just src.conf.
|
||||||
|
if (!new java.io.File(__DIR__, "../../README").exists()) {
|
||||||
|
var runTestPrebuiltSrcFullExtra = {
|
||||||
|
dependencies: "src.full",
|
||||||
|
work_dir: input.get("src.full", "install_path"),
|
||||||
|
}
|
||||||
|
profiles["run-test-prebuilt"] = concatObjects(profiles["run-test-prebuilt"],
|
||||||
|
runTestPrebuiltSrcFullExtra);
|
||||||
|
}
|
||||||
|
|
||||||
// Generate the missing platform attributes
|
// Generate the missing platform attributes
|
||||||
profiles = generatePlatformAttributes(profiles);
|
profiles = generatePlatformAttributes(profiles);
|
||||||
profiles = generateDefaultMakeTargetsConfigureArg(common, profiles);
|
profiles = generateDefaultMakeTargetsConfigureArg(common, profiles);
|
||||||
@ -835,7 +855,7 @@ var getJibProfilesDependencies = function (input, common) {
|
|||||||
: "gcc7.3.0-Fedora27+1.0"),
|
: "gcc7.3.0-Fedora27+1.0"),
|
||||||
linux_arm: (input.profile != null && input.profile.indexOf("hflt") >= 0
|
linux_arm: (input.profile != null && input.profile.indexOf("hflt") >= 0
|
||||||
? "gcc-linaro-arm-linux-gnueabihf-raspbian-2012.09-20120921_linux+1.0"
|
? "gcc-linaro-arm-linux-gnueabihf-raspbian-2012.09-20120921_linux+1.0"
|
||||||
: (input.profile.indexOf("arm32") >= 0
|
: (input.profile != null && input.profile.indexOf("arm32") >= 0
|
||||||
? "gcc7.3.0-Fedora27+1.0"
|
? "gcc7.3.0-Fedora27+1.0"
|
||||||
: "arm-linaro-4.7+1.0"
|
: "arm-linaro-4.7+1.0"
|
||||||
)
|
)
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
* @run driver ClassFileInstaller sun.hotspot.WhiteBox
|
* @run driver ClassFileInstaller sun.hotspot.WhiteBox
|
||||||
* sun.hotspot.WhiteBox$WhiteBoxPermission
|
* sun.hotspot.WhiteBox$WhiteBoxPermission
|
||||||
*
|
*
|
||||||
* @run main/othervm
|
* @run main/othervm/timeout=300
|
||||||
* -Xbootclasspath/a:.
|
* -Xbootclasspath/a:.
|
||||||
* -XX:+UnlockDiagnosticVMOptions
|
* -XX:+UnlockDiagnosticVMOptions
|
||||||
* -XX:+WhiteBoxAPI
|
* -XX:+WhiteBoxAPI
|
||||||
|
@ -34,5 +34,6 @@
|
|||||||
*
|
*
|
||||||
* @run driver jdk.test.lib.FileInstaller ../../ProblemList-graal.txt ExcludeList.txt
|
* @run driver jdk.test.lib.FileInstaller ../../ProblemList-graal.txt ExcludeList.txt
|
||||||
*
|
*
|
||||||
* @run main/othervm compiler.graalunit.common.GraalUnitTestLauncher -prefix org.graalvm.compiler.jtt.lang.Math_[a-lA-L] -exclude ExcludeList.txt
|
* @run main/othervm/timeout=300 compiler.graalunit.common.GraalUnitTestLauncher
|
||||||
|
* -prefix org.graalvm.compiler.jtt.lang.Math_[a-lA-L] -exclude ExcludeList.txt
|
||||||
*/
|
*/
|
||||||
|
@ -34,5 +34,6 @@
|
|||||||
*
|
*
|
||||||
* @run driver jdk.test.lib.FileInstaller ../../ProblemList-graal.txt ExcludeList.txt
|
* @run driver jdk.test.lib.FileInstaller ../../ProblemList-graal.txt ExcludeList.txt
|
||||||
*
|
*
|
||||||
* @run main/othervm compiler.graalunit.common.GraalUnitTestLauncher -prefix org.graalvm.compiler.jtt.lang.Math_[m-zM-Z] -exclude ExcludeList.txt
|
* @run main/othervm/timeout=300 compiler.graalunit.common.GraalUnitTestLauncher
|
||||||
|
* -prefix org.graalvm.compiler.jtt.lang.Math_[m-zM-Z] -exclude ExcludeList.txt
|
||||||
*/
|
*/
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
* @test
|
* @test
|
||||||
* @library /test/lib /
|
* @library /test/lib /
|
||||||
*
|
*
|
||||||
* @run driver compiler.jsr292.ContinuousCallSiteTargetChange
|
* @run driver/timeout=300 compiler.jsr292.ContinuousCallSiteTargetChange
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package compiler.jsr292;
|
package compiler.jsr292;
|
||||||
|
@ -116,10 +116,10 @@ public class InstrumentationApp {
|
|||||||
System.out.println("INFO: AppCDSv1 " + (wb.isSharedClass(InstrumentationApp.class) ? "enabled" :"disabled"));
|
System.out.println("INFO: AppCDSv1 " + (wb.isSharedClass(InstrumentationApp.class) ? "enabled" :"disabled"));
|
||||||
System.out.println("INFO: AppCDSv2 " + (isAppCDSV2Enabled() ? "enabled" : "disabled"));
|
System.out.println("INFO: AppCDSv2 " + (isAppCDSV2Enabled() ? "enabled" : "disabled"));
|
||||||
|
|
||||||
File bootJar = new File(args[0]);
|
String flagFile = args[0];
|
||||||
File appJar = new File(args[1]);
|
File bootJar = new File(args[1]);
|
||||||
File custJar = new File(args[2]);
|
File appJar = new File(args[2]);
|
||||||
String flagFile = args[3];
|
File custJar = new File(args[3]);
|
||||||
waitAttach(flagFile);
|
waitAttach(flagFile);
|
||||||
|
|
||||||
instrumentation = InstrumentationRegisterClassFileTransformer.getInstrumentation();
|
instrumentation = InstrumentationRegisterClassFileTransformer.getInstrumentation();
|
||||||
|
@ -120,7 +120,7 @@ public class InstrumentationTest {
|
|||||||
"-XX:+WhiteBoxAPI",
|
"-XX:+WhiteBoxAPI",
|
||||||
"-Xshare:off",
|
"-Xshare:off",
|
||||||
agentCmdArg,
|
agentCmdArg,
|
||||||
"InstrumentationApp", bootJar, appJar, custJar, flagFile);
|
"InstrumentationApp", flagFile, bootJar, appJar, custJar);
|
||||||
TestCommon.executeAndLog(pb, "no-sharing").shouldHaveExitValue(0);
|
TestCommon.executeAndLog(pb, "no-sharing").shouldHaveExitValue(0);
|
||||||
checkAttach(t);
|
checkAttach(t);
|
||||||
|
|
||||||
@ -155,7 +155,7 @@ public class InstrumentationTest {
|
|||||||
"-XX:+UnlockDiagnosticVMOptions",
|
"-XX:+UnlockDiagnosticVMOptions",
|
||||||
"-XX:+WhiteBoxAPI",
|
"-XX:+WhiteBoxAPI",
|
||||||
agentCmdArg,
|
agentCmdArg,
|
||||||
"InstrumentationApp", bootJar, appJar, custJar, flagFile);
|
"InstrumentationApp", flagFile, bootJar, appJar, custJar);
|
||||||
|
|
||||||
CDSOptions opts = (new CDSOptions()).setXShareMode("auto");
|
CDSOptions opts = (new CDSOptions()).setXShareMode("auto");
|
||||||
TestCommon.checkExec(out, opts);
|
TestCommon.checkExec(out, opts);
|
||||||
|
@ -50,7 +50,7 @@
|
|||||||
* @build vm.mlvm.share.ClassfileGeneratorTest
|
* @build vm.mlvm.share.ClassfileGeneratorTest
|
||||||
* @run driver vm.mlvm.share.IndifiedClassesBuilder
|
* @run driver vm.mlvm.share.IndifiedClassesBuilder
|
||||||
*
|
*
|
||||||
* @run main/othervm
|
* @run main/othervm/timeout=300
|
||||||
* vm.mlvm.share.ClassfileGeneratorTest
|
* vm.mlvm.share.ClassfileGeneratorTest
|
||||||
* -generator vm.mlvm.cp.share.GenManyIndyCorrectBootstrap
|
* -generator vm.mlvm.cp.share.GenManyIndyCorrectBootstrap
|
||||||
*/
|
*/
|
||||||
|
@ -51,7 +51,7 @@
|
|||||||
* @build vm.mlvm.share.ClassfileGeneratorTest
|
* @build vm.mlvm.share.ClassfileGeneratorTest
|
||||||
* @run driver vm.mlvm.share.IndifiedClassesBuilder
|
* @run driver vm.mlvm.share.IndifiedClassesBuilder
|
||||||
*
|
*
|
||||||
* @run main/othervm
|
* @run main/othervm/timeout=300
|
||||||
* vm.mlvm.share.ClassfileGeneratorTest
|
* vm.mlvm.share.ClassfileGeneratorTest
|
||||||
* -generator vm.mlvm.cp.share.GenManyIndyIncorrectBootstrap
|
* -generator vm.mlvm.cp.share.GenManyIndyIncorrectBootstrap
|
||||||
*/
|
*/
|
||||||
|
@ -50,6 +50,6 @@
|
|||||||
* @build vm.mlvm.share.ClassfileGeneratorTest
|
* @build vm.mlvm.share.ClassfileGeneratorTest
|
||||||
* @run driver vm.mlvm.share.IndifiedClassesBuilder
|
* @run driver vm.mlvm.share.IndifiedClassesBuilder
|
||||||
*
|
*
|
||||||
* @run main/othervm vm.mlvm.share.ClassfileGeneratorTest -generator vm.mlvm.cp.share.GenCPFullOfMH
|
* @run main/othervm/timeout=300 vm.mlvm.share.ClassfileGeneratorTest -generator vm.mlvm.cp.share.GenCPFullOfMH
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -50,6 +50,6 @@
|
|||||||
* @build vm.mlvm.share.ClassfileGeneratorTest
|
* @build vm.mlvm.share.ClassfileGeneratorTest
|
||||||
* @run driver vm.mlvm.share.IndifiedClassesBuilder
|
* @run driver vm.mlvm.share.IndifiedClassesBuilder
|
||||||
*
|
*
|
||||||
* @run main/othervm vm.mlvm.share.ClassfileGeneratorTest -generator vm.mlvm.cp.share.GenCPFullOfMT
|
* @run main/othervm/timeout=300 vm.mlvm.share.ClassfileGeneratorTest -generator vm.mlvm.cp.share.GenCPFullOfMT
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@
|
|||||||
* @build vm.mlvm.meth.stress.gc.createLotsOfMHConsts.Test
|
* @build vm.mlvm.meth.stress.gc.createLotsOfMHConsts.Test
|
||||||
* @run driver vm.mlvm.share.IndifiedClassesBuilder
|
* @run driver vm.mlvm.share.IndifiedClassesBuilder
|
||||||
*
|
*
|
||||||
* @run main/othervm
|
* @run main/othervm/timeout=300
|
||||||
* vm.mlvm.meth.stress.gc.createLotsOfMHConsts.Test
|
* vm.mlvm.meth.stress.gc.createLotsOfMHConsts.Test
|
||||||
* -stressIterationsFactor 100000
|
* -stressIterationsFactor 100000
|
||||||
* -generator vm.mlvm.cp.share.GenCPFullOfMH
|
* -generator vm.mlvm.cp.share.GenCPFullOfMH
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
* @library /test/lib
|
* @library /test/lib
|
||||||
* @modules jdk.jlink/jdk.tools.jimage
|
* @modules jdk.jlink/jdk.tools.jimage
|
||||||
* @build jdk.test.lib.Asserts
|
* @build jdk.test.lib.Asserts
|
||||||
* @run main/othervm JImageExtractTest
|
* @run main/othervm/timeout=300 JImageExtractTest
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
Loading…
Reference in New Issue
Block a user