make/RunTests.gmk
branchJEP-230-microbenchmarks-branch
changeset 56978 8fbb2fb7589f
parent 56926 d86dd5847e6d
parent 52125 28375a1de254
child 56979 f62a71a762af
equal deleted inserted replaced
56975:3053039bdda3 56978:8fbb2fb7589f
    43     TEST_OPTS := VM_OPTIONS=$(TEST_VM_OPTS)
    43     TEST_OPTS := VM_OPTIONS=$(TEST_VM_OPTS)
    44   endif
    44   endif
    45 endif
    45 endif
    46 
    46 
    47 $(eval $(call ParseKeywordVariable, TEST_OPTS, \
    47 $(eval $(call ParseKeywordVariable, TEST_OPTS, \
    48     KEYWORDS := JOBS TIMEOUT, \
    48     SINGLE_KEYWORDS := JOBS TIMEOUT_FACTOR, \
    49     STRING_KEYWORDS := VM_OPTIONS, \
    49     STRING_KEYWORDS := VM_OPTIONS JAVA_OPTIONS, \
    50 ))
    50 ))
    51 
    51 
    52 # Helper function to propagate TEST_OPTS values.
    52 # Helper function to propagate TEST_OPTS values.
    53 #
    53 #
    54 # Note: No spaces are allowed around the arguments.
    54 # Note: No spaces are allowed around the arguments.
   102 
   102 
   103 GTEST_LAUNCHER_DIRS := $(patsubst %/gtestLauncher, %, $(wildcard $(TEST_IMAGE_DIR)/hotspot/gtest/*/gtestLauncher))
   103 GTEST_LAUNCHER_DIRS := $(patsubst %/gtestLauncher, %, $(wildcard $(TEST_IMAGE_DIR)/hotspot/gtest/*/gtestLauncher))
   104 GTEST_VARIANTS := $(strip $(patsubst $(TEST_IMAGE_DIR)/hotspot/gtest/%, %, $(GTEST_LAUNCHER_DIRS)))
   104 GTEST_VARIANTS := $(strip $(patsubst $(TEST_IMAGE_DIR)/hotspot/gtest/%, %, $(GTEST_LAUNCHER_DIRS)))
   105 
   105 
   106 ################################################################################
   106 ################################################################################
       
   107 # Setup global test running parameters
       
   108 ################################################################################
       
   109 
       
   110 # Each factor variable comes in 3 variants. The first one is reserved for users
       
   111 # to use on command line. The other two are for predifined configurations in JDL
       
   112 # and for machine specific configurations respectively.
       
   113 TEST_JOBS_FACTOR ?= 1
       
   114 TEST_JOBS_FACTOR_JDL ?= 1
       
   115 TEST_JOBS_FACTOR_MACHINE ?= 1
       
   116 
       
   117 ifeq ($(TEST_JOBS), 0)
       
   118   # Concurrency based on min(cores / 2, 12) * TEST_JOBS_FACTOR
       
   119   TEST_JOBS := $(shell $(AWK) \
       
   120     'BEGIN { \
       
   121       c = $(NUM_CORES) / 2; \
       
   122       if (c > 12) c = 12; \
       
   123       c = c * $(TEST_JOBS_FACTOR); \
       
   124       c = c * $(TEST_JOBS_FACTOR_JDL); \
       
   125       c = c * $(TEST_JOBS_FACTOR_MACHINE); \
       
   126       if (c < 1) c = 1; \
       
   127       printf "%.0f", c; \
       
   128     }')
       
   129 endif
       
   130 
       
   131 ################################################################################
   107 # Parse control variables
   132 # Parse control variables
   108 ################################################################################
   133 ################################################################################
   109 
   134 
   110 ### Jtreg
   135 ### Jtreg
   111 
   136 
   112 ifneq ($(TEST_OPTS), )
   137 ifneq ($(TEST_OPTS), )
   113   # Inform the user
   138   # Inform the user
   114   $(info Running tests using TEST_OPTS control variable '$(TEST_OPTS)')
   139   $(info Running tests using TEST_OPTS control variable '$(TEST_OPTS)')
   115 
   140 endif
   116   $(eval $(call SetTestOpt,VM_OPTIONS,JTREG))
   141 
   117   $(eval $(call SetTestOpt,VM_OPTIONS,GTEST))
   142 $(eval $(call SetTestOpt,VM_OPTIONS,JTREG))
   118   $(eval $(call SetTestOpt,VM_OPTIONS,MICRO))
   143 $(eval $(call SetTestOpt,JAVA_OPTIONS,JTREG))
   119 
   144 $(eval $(call SetTestOpt,VM_OPTIONS,GTEST))
   120   $(eval $(call SetTestOpt,JOBS,JTREG))
   145 $(eval $(call SetTestOpt,JAVA_OPTIONS,GTEST))
   121   $(eval $(call SetTestOpt,TIMEOUT,JTREG))
   146 $(eval $(call SetTestOpt,VM_OPTIONS,MICRO))
   122 endif
   147 $(eval $(call SetTestOpt,JAVA_OPTIONS,MICRO))
       
   148 
       
   149 $(eval $(call SetTestOpt,JOBS,JTREG))
       
   150 $(eval $(call SetTestOpt,TIMEOUT_FACTOR,JTREG))
   123 
   151 
   124 $(eval $(call ParseKeywordVariable, JTREG, \
   152 $(eval $(call ParseKeywordVariable, JTREG, \
   125     KEYWORDS := JOBS TIMEOUT TEST_MODE ASSERT VERBOSE RETAIN MAX_MEM, \
   153     SINGLE_KEYWORDS := JOBS TIMEOUT_FACTOR TEST_MODE ASSERT VERBOSE RETAIN MAX_MEM \
       
   154         EXTRA_PROBLEM_LISTS KEYWORDS, \
   126     STRING_KEYWORDS := OPTIONS JAVA_OPTIONS VM_OPTIONS, \
   155     STRING_KEYWORDS := OPTIONS JAVA_OPTIONS VM_OPTIONS, \
   127 ))
   156 ))
   128 
   157 
   129 ifneq ($(JTREG), )
   158 ifneq ($(JTREG), )
   130   # Inform the user
   159   # Inform the user
   132 endif
   161 endif
   133 
   162 
   134 ### Gtest
   163 ### Gtest
   135 
   164 
   136 $(eval $(call ParseKeywordVariable, GTEST, \
   165 $(eval $(call ParseKeywordVariable, GTEST, \
   137     KEYWORDS := REPEAT, \
   166     SINGLE_KEYWORDS := REPEAT, \
   138     STRING_KEYWORDS := OPTIONS VM_OPTIONS, \
   167     STRING_KEYWORDS := OPTIONS VM_OPTIONS JAVA_OPTIONS, \
   139 ))
   168 ))
   140 
   169 
   141 ifneq ($(GTEST), )
   170 ifneq ($(GTEST), )
   142   # Inform the user
   171   # Inform the user
   143   $(info Running tests using GTEST control variable '$(GTEST)')
   172   $(info Running tests using GTEST control variable '$(GTEST)')
   157 
   186 
   158 
   187 
   159 ################################################################################
   188 ################################################################################
   160 # Component-specific Jtreg settings
   189 # Component-specific Jtreg settings
   161 ################################################################################
   190 ################################################################################
   162 
       
   163 ifeq ($(TEST_JOBS), 0)
       
   164   # If TEST_JOBS is not specified, hotspot fallback default is
       
   165   # min(num_cores / 2, 12).
       
   166   hotspot_JTREG_JOBS := $(shell $(EXPR) $(NUM_CORES) / 2)
       
   167   ifeq ($(hotspot_JTREG_JOBS), 0)
       
   168     hotspot_JTREG_JOBS := 1
       
   169   else ifeq ($(shell $(EXPR) $(hotspot_JTREG_JOBS) \> 12), 1)
       
   170     hotspot_JTREG_JOBS := 12
       
   171   endif
       
   172 endif
       
   173 
   191 
   174 hotspot_JTREG_MAX_MEM := 0
   192 hotspot_JTREG_MAX_MEM := 0
   175 hotspot_JTREG_ASSERT := false
   193 hotspot_JTREG_ASSERT := false
   176 hotspot_JTREG_NATIVEPATH := $(TEST_IMAGE_DIR)/hotspot/jtreg/native
   194 hotspot_JTREG_NATIVEPATH := $(TEST_IMAGE_DIR)/hotspot/jtreg/native
   177 jdk_JTREG_NATIVEPATH := $(TEST_IMAGE_DIR)/jdk/jtreg/native
   195 jdk_JTREG_NATIVEPATH := $(TEST_IMAGE_DIR)/jdk/jtreg/native
   179 jdk_JTREG_PROBLEM_LIST += $(TOPDIR)/test/jdk/ProblemList.txt
   197 jdk_JTREG_PROBLEM_LIST += $(TOPDIR)/test/jdk/ProblemList.txt
   180 jaxp_JTREG_PROBLEM_LIST += $(TOPDIR)/test/jaxp/ProblemList.txt
   198 jaxp_JTREG_PROBLEM_LIST += $(TOPDIR)/test/jaxp/ProblemList.txt
   181 langtools_JTREG_PROBLEM_LIST += $(TOPDIR)/test/langtools/ProblemList.txt
   199 langtools_JTREG_PROBLEM_LIST += $(TOPDIR)/test/langtools/ProblemList.txt
   182 nashorn_JTREG_PROBLEM_LIST += $(TOPDIR)/test/nashorn/ProblemList.txt
   200 nashorn_JTREG_PROBLEM_LIST += $(TOPDIR)/test/nashorn/ProblemList.txt
   183 hotspot_JTREG_PROBLEM_LIST += $(TOPDIR)/test/hotspot/jtreg/ProblemList.txt
   201 hotspot_JTREG_PROBLEM_LIST += $(TOPDIR)/test/hotspot/jtreg/ProblemList.txt
       
   202 
       
   203 langtools_JTREG_MAX_MEM := 768m
   184 
   204 
   185 ################################################################################
   205 ################################################################################
   186 # Parse test selection
   206 # Parse test selection
   187 #
   207 #
   188 # The user has given a test selection in the TEST variable. We must parse it
   208 # The user has given a test selection in the TEST variable. We must parse it
   404 
   424 
   405   ifneq ($$(GTEST_REPEAT), )
   425   ifneq ($$(GTEST_REPEAT), )
   406     $1_GTEST_REPEAT :=--gtest_repeat=$$(GTEST_REPEAT)
   426     $1_GTEST_REPEAT :=--gtest_repeat=$$(GTEST_REPEAT)
   407   endif
   427   endif
   408 
   428 
   409   run-test-$1:
   429   run-test-$1: $(TEST_PREREQS)
   410 	$$(call LogWarn)
   430 	$$(call LogWarn)
   411 	$$(call LogWarn, Running test '$$($1_TEST)')
   431 	$$(call LogWarn, Running test '$$($1_TEST)')
   412 	$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
   432 	$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
   413 	$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/gtest, \
   433 	$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/gtest, \
   414 	    $$(FIXPATH) $$(TEST_IMAGE_DIR)/hotspot/gtest/$$($1_VARIANT)/gtestLauncher \
   434 	    $$(FIXPATH) $$(TEST_IMAGE_DIR)/hotspot/gtest/$$($1_VARIANT)/gtestLauncher \
   415 	         -jdk $(JDK_IMAGE_DIR) $$($1_GTEST_FILTER) \
   435 	        -jdk $(JDK_IMAGE_DIR) $$($1_GTEST_FILTER) \
   416 	         --gtest_output=xml:$$($1_TEST_RESULTS_DIR)/gtest.xml \
   436 	        --gtest_output=xml:$$($1_TEST_RESULTS_DIR)/gtest.xml \
   417 	         $$($1_GTEST_REPEAT) $$(GTEST_OPTIONS) $$(GTEST_VM_OPTIONS) \
   437 	        $$($1_GTEST_REPEAT) $$(GTEST_OPTIONS) $$(GTEST_VM_OPTIONS) \
       
   438 	        $$($1_GTEST_JAVA_OPTIONS) \
   418 	        > >($(TEE) $$($1_TEST_RESULTS_DIR)/gtest.txt) \
   439 	        > >($(TEE) $$($1_TEST_RESULTS_DIR)/gtest.txt) \
   419 	    && $$(ECHO) $$$$? > $$($1_EXITCODE) \
   440 	    && $$(ECHO) $$$$? > $$($1_EXITCODE) \
   420 	    || $$(ECHO) $$$$? > $$($1_EXITCODE) \
   441 	    || $$(ECHO) $$$$? > $$($1_EXITCODE) \
   421 	)
   442 	)
   422 
   443 
   490   # Save output as JSON or CSV file
   511   # Save output as JSON or CSV file
   491   ifneq ($$(MICRO_RESULTS_FORMAT), )
   512   ifneq ($$(MICRO_RESULTS_FORMAT), )
   492     $1_MICRO_BASIC_OPTIONS += -rf $$(MICRO_RESULTS_FORMAT) -rff $$($1_TEST_RESULTS_DIR)/jmh-result.$(MICRO_RESULTS_FORMAT)
   513     $1_MICRO_BASIC_OPTIONS += -rf $$(MICRO_RESULTS_FORMAT) -rff $$($1_TEST_RESULTS_DIR)/jmh-result.$(MICRO_RESULTS_FORMAT)
   493   endif
   514   endif
   494 
   515 
   495   ifneq ($$(MICRO_VM_OPTIONS), )
   516   ifneq ($$(MICRO_VM_OPTIONS)$$(MICRO_JAVA_OPTIONS), )
   496     $1_MICRO_VM_OPTIONS := -jvmArgs $$(MICRO_VM_OPTIONS)
   517     $1_MICRO_VM_OPTIONS := -jvmArgs $$(MICRO_VM_OPTIONS) $$(MICRO_JAVA_OPTIONS)
   497   endif
   518   endif
   498 
   519 
   499   ifneq ($$(MICRO_ITER), )
   520   ifneq ($$(MICRO_ITER), )
   500     $1_MICRO_ITER := -i $$(MICRO_ITER)
   521     $1_MICRO_ITER := -i $$(MICRO_ITER)
   501   endif
   522   endif
   590   $1_TEST_SUPPORT_DIR := $$(TEST_SUPPORT_DIR)/$1
   611   $1_TEST_SUPPORT_DIR := $$(TEST_SUPPORT_DIR)/$1
   591   $1_EXITCODE := $$($1_TEST_RESULTS_DIR)/exitcode.txt
   612   $1_EXITCODE := $$($1_TEST_RESULTS_DIR)/exitcode.txt
   592 
   613 
   593   $1_TEST_NAME := $$(strip $$(patsubst jtreg:%, %, $$($1_TEST)))
   614   $1_TEST_NAME := $$(strip $$(patsubst jtreg:%, %, $$($1_TEST)))
   594 
   615 
   595   $1_COMPONENT := \
   616   $1_TEST_ROOT := \
   596       $$(strip $$(foreach root, $$(JTREG_TESTROOTS), \
   617       $$(strip $$(foreach root, $$(JTREG_TESTROOTS), \
   597         $$(if $$(filter $$(root)%, $$(JTREG_TOPDIR)/$$($1_TEST_NAME)), \
   618         $$(if $$(filter $$(root)%, $$(JTREG_TOPDIR)/$$($1_TEST_NAME)), $$(root)) \
   598           $$(lastword $$(subst /, $$(SPACE), $$(root))) \
       
   599         ) \
       
   600       ))
   619       ))
       
   620   $1_COMPONENT := $$(lastword $$(subst /, $$(SPACE), $$($1_TEST_ROOT)))
   601   # This will work only as long as just hotspot has the additional "jtreg" directory
   621   # This will work only as long as just hotspot has the additional "jtreg" directory
   602   ifeq ($$($1_COMPONENT), jtreg)
   622   ifeq ($$($1_COMPONENT), jtreg)
   603     $1_COMPONENT := hotspot
   623     $1_COMPONENT := hotspot
   604   endif
   624   endif
   605 
   625 
   618   $$(eval $$(call SetJtregValue,$1,JTREG_MAX_MEM,512m))
   638   $$(eval $$(call SetJtregValue,$1,JTREG_MAX_MEM,512m))
   619   $$(eval $$(call SetJtregValue,$1,JTREG_NATIVEPATH))
   639   $$(eval $$(call SetJtregValue,$1,JTREG_NATIVEPATH))
   620   $$(eval $$(call SetJtregValue,$1,JTREG_BASIC_OPTIONS))
   640   $$(eval $$(call SetJtregValue,$1,JTREG_BASIC_OPTIONS))
   621   $$(eval $$(call SetJtregValue,$1,JTREG_PROBLEM_LIST))
   641   $$(eval $$(call SetJtregValue,$1,JTREG_PROBLEM_LIST))
   622 
   642 
       
   643   # Only the problem list for the current test root should be used.
       
   644   $1_JTREG_PROBLEM_LIST := $$(filter $$($1_TEST_ROOT)%, $$($1_JTREG_PROBLEM_LIST))
       
   645 
   623   ifneq ($(TEST_JOBS), 0)
   646   ifneq ($(TEST_JOBS), 0)
   624     # User has specified TEST_JOBS, use that as fallback default
       
   625     $$(eval $$(call SetJtregValue,$1,JTREG_JOBS,$$(TEST_JOBS)))
   647     $$(eval $$(call SetJtregValue,$1,JTREG_JOBS,$$(TEST_JOBS)))
   626   else
   648   else
   627     # Use JOBS as default (except for hotspot)
       
   628     $$(eval $$(call SetJtregValue,$1,JTREG_JOBS,$$(JOBS)))
   649     $$(eval $$(call SetJtregValue,$1,JTREG_JOBS,$$(JOBS)))
   629   endif
   650   endif
   630 
   651 
   631   # Make sure MaxRAMPercentage is high enough to not cause OOM or swapping since
   652   # Make sure MaxRAMPercentage is high enough to not cause OOM or swapping since
   632   # we may end up with a lot of JVM's
   653   # we may end up with a lot of JVM's
   633   $1_JTREG_MAX_RAM_PERCENTAGE := $$(shell $$(EXPR) 25 / $$($1_JTREG_JOBS))
   654   $1_JTREG_MAX_RAM_PERCENTAGE := $$(shell $$(EXPR) 25 / $$($1_JTREG_JOBS))
   634 
   655 
   635   JTREG_TIMEOUT ?= 4
   656   JTREG_TIMEOUT_FACTOR ?= 4
   636   JTREG_VERBOSE ?= fail,error,summary
   657   JTREG_VERBOSE ?= fail,error,summary
   637   JTREG_RETAIN ?= fail,error
   658   JTREG_RETAIN ?= fail,error
   638 
   659 
   639   ifneq ($$($1_JTREG_MAX_MEM), 0)
   660   ifneq ($$($1_JTREG_MAX_MEM), 0)
   640     $1_JTREG_BASIC_OPTIONS += -vmoption:-Xmx$$($1_JTREG_MAX_MEM)
   661     $1_JTREG_BASIC_OPTIONS += -vmoption:-Xmx$$($1_JTREG_MAX_MEM)
   641     $1_JTREG_LAUNCHER_OPTIONS += -Xmx$$($1_JTREG_MAX_MEM)
   662     $1_JTREG_LAUNCHER_OPTIONS += -Xmx$$($1_JTREG_MAX_MEM)
   642   endif
   663   endif
   643 
   664 
   644   $1_JTREG_BASIC_OPTIONS += -$$($1_JTREG_TEST_MODE) \
   665   $1_JTREG_BASIC_OPTIONS += -$$($1_JTREG_TEST_MODE) \
   645       -verbose:$$(JTREG_VERBOSE) -retain:$$(JTREG_RETAIN) \
   666       -verbose:$$(JTREG_VERBOSE) -retain:$$(JTREG_RETAIN) \
   646       -concurrency:$$($1_JTREG_JOBS) -timeoutFactor:$$(JTREG_TIMEOUT) \
   667       -concurrency:$$($1_JTREG_JOBS) -timeoutFactor:$$(JTREG_TIMEOUT_FACTOR) \
   647       -vmoption:-XX:MaxRAMPercentage=$$($1_JTREG_MAX_RAM_PERCENTAGE)
   668       -vmoption:-XX:MaxRAMPercentage=$$($1_JTREG_MAX_RAM_PERCENTAGE)
   648 
   669 
   649   $1_JTREG_BASIC_OPTIONS += -automatic -keywords:\!ignore -ignore:quiet
   670   $1_JTREG_BASIC_OPTIONS += -automatic -ignore:quiet
   650 
   671 
   651   # Make it possible to specify the JIB_DATA_DIR for tests using the
   672   # Make it possible to specify the JIB_DATA_DIR for tests using the
   652   # JIB Artifact resolver
   673   # JIB Artifact resolver
   653   $1_JTREG_BASIC_OPTIONS += -e:JIB_DATA_DIR
   674   $1_JTREG_BASIC_OPTIONS += -e:JIB_DATA_DIR
   654   # Some tests needs to find a boot JDK using the JDK8_HOME variable.
   675   # Some tests needs to find a boot JDK using the JDK8_HOME variable.
   674 
   695 
   675   ifneq ($$($1_JTREG_PROBLEM_LIST), )
   696   ifneq ($$($1_JTREG_PROBLEM_LIST), )
   676     $1_JTREG_BASIC_OPTIONS += $$(addprefix -exclude:, $$($1_JTREG_PROBLEM_LIST))
   697     $1_JTREG_BASIC_OPTIONS += $$(addprefix -exclude:, $$($1_JTREG_PROBLEM_LIST))
   677   endif
   698   endif
   678 
   699 
       
   700   ifneq ($$(JTREG_EXTRA_PROBLEM_LISTS), )
       
   701     # Accept both absolute paths as well as relative to the current test root.
       
   702     $1_JTREG_BASIC_OPTIONS += $$(addprefix -exclude:, $$(wildcard \
       
   703         $$(JTREG_EXTRA_PROBLEM_LISTS) \
       
   704         $$(addprefix $$($1_TEST_ROOT)/, $$(JTREG_EXTRA_PROBLEM_LISTS)) \
       
   705     ))
       
   706   endif
       
   707 
   679   ifneq ($$(JIB_HOME), )
   708   ifneq ($$(JIB_HOME), )
   680     $1_JTREG_BASIC_OPTIONS += -e:JIB_HOME=$$(JIB_HOME)
   709     $1_JTREG_BASIC_OPTIONS += -e:JIB_HOME=$$(JIB_HOME)
   681   endif
   710   endif
   682 
   711 
   683   $1_JTREG_BASIC_OPTIONS += -e:TEST_IMAGE_GRAAL_DIR=${TEST_IMAGE_DIR}/hotspot/jtreg/graal
   712   $1_JTREG_BASIC_OPTIONS += -e:TEST_IMAGE_GRAAL_DIR=${TEST_IMAGE_DIR}/hotspot/jtreg/graal
   684 
   713 
   685   ifneq ($$(JTREG_FAILURE_HANDLER_OPTIONS), )
   714   ifneq ($$(JTREG_FAILURE_HANDLER_OPTIONS), )
   686     $1_JTREG_LAUNCHER_OPTIONS += -Djava.library.path="$(JTREG_FAILURE_HANDLER_DIR)"
   715     $1_JTREG_LAUNCHER_OPTIONS += -Djava.library.path="$(JTREG_FAILURE_HANDLER_DIR)"
   687   endif
   716   endif
   688 
   717 
       
   718   ifneq ($$(JTREG_KEYWORDS), )
       
   719     # The keywords string may contain problematic characters and may be quoted
       
   720     # already when it arrives here. Remove any existing quotes and replace them
       
   721     # with one set of single quotes.
       
   722     $1_JTREG_KEYWORDS := \
       
   723         $$(strip $$(subst $$(SQUOTE),,$$(subst $$(DQUOTE),,$$(JTREG_KEYWORDS))))
       
   724     ifneq ($$($1_JTREG_KEYWORDS), )
       
   725       $1_JTREG_BASIC_OPTIONS += -k:'$$($1_JTREG_KEYWORDS)'
       
   726     endif
       
   727   endif
       
   728 
   689   clean-workdir-$1:
   729   clean-workdir-$1:
   690 	$$(RM) -r $$($1_TEST_SUPPORT_DIR)
   730 	$$(RM) -r $$($1_TEST_SUPPORT_DIR)
   691 
   731 
   692   run-test-$1: clean-workdir-$1
   732   run-test-$1: clean-workdir-$1 $(TEST_PREREQS)
   693 	$$(call LogWarn)
   733 	$$(call LogWarn)
   694 	$$(call LogWarn, Running test '$$($1_TEST)')
   734 	$$(call LogWarn, Running test '$$($1_TEST)')
   695 	$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
   735 	$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
   696 	$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/jtreg, \
   736 	$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/jtreg, \
   697 	    $$(JAVA) $$($1_JTREG_LAUNCHER_OPTIONS) \
   737 	    $$(JAVA) $$($1_JTREG_LAUNCHER_OPTIONS) \
   774         TestMake.gmk $$($1_TEST_ARGS))
   814         TestMake.gmk $$($1_TEST_ARGS))
   775   else
   815   else
   776     $$(error Invalid special test specification: $$($1_TEST_NAME))
   816     $$(error Invalid special test specification: $$($1_TEST_NAME))
   777   endif
   817   endif
   778 
   818 
   779   run-test-$1:
   819   run-test-$1: $(TEST_PREREQS)
   780 	$$(call LogWarn)
   820 	$$(call LogWarn)
   781 	$$(call LogWarn, Running test '$$($1_TEST)')
   821 	$$(call LogWarn, Running test '$$($1_TEST)')
   782 	$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
   822 	$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
   783 	$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/test-execution, \
   823 	$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/test-execution, \
   784 	    $$($1_TEST_COMMAND_LINE) \
   824 	    $$($1_TEST_COMMAND_LINE) \