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 |
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) \ |