Thu, 25 Apr 2019 14:03:39 +0200
8222737: [TESTBUG] Allow for tier 1 like testing in OpenJDK 8u
Reviewed-by: adinn, shade, andrew
test/Makefile | file | annotate | diff | comparison | revisions | |
test/TEST.groups | file | annotate | diff | comparison | revisions |
1.1 --- a/test/Makefile Mon Jun 01 15:19:54 2015 -0700 1.2 +++ b/test/Makefile Thu Apr 25 14:03:39 2019 +0200 1.3 @@ -16,6 +16,44 @@ 1.4 # JPRT may invoke this Makefile directly, as part of a langtools build, 1.5 # or indirectly, via FOREST/test/Makefile, as part of a control build. 1.6 1.7 + 1.8 +# Utilities used 1.9 +AWK = awk 1.10 +CAT = cat 1.11 +CD = cd 1.12 +CHMOD = chmod 1.13 +CP = cp 1.14 +CUT = cut 1.15 +DIRNAME = dirname 1.16 +ECHO = echo 1.17 +EGREP = egrep 1.18 +EXPAND = expand 1.19 +FIND = find 1.20 +MKDIR = mkdir 1.21 +PWD = pwd 1.22 +SED = sed 1.23 +SORT = sort 1.24 +TEE = tee 1.25 +UNAME = uname 1.26 +UNIQ = uniq 1.27 +WC = wc 1.28 +ZIP = zip 1.29 + 1.30 +# Get OS name from uname (Cygwin inexplicably adds _NT-5.1) 1.31 +UNAME_S := $(shell $(UNAME) -s | $(CUT) -f1 -d_) 1.32 + 1.33 +# Commands to run on paths to make mixed paths for java on windows 1.34 +ifeq ($(UNAME_S), CYGWIN) 1.35 + # Location of developer shared files 1.36 + SLASH_JAVA = J: 1.37 + GETMIXEDPATH = cygpath -m 1.38 +else 1.39 + # Location of developer shared files 1.40 + SLASH_JAVA = /java 1.41 + 1.42 + GETMIXEDPATH=$(ECHO) 1.43 +endif 1.44 + 1.45 # Get OS/ARCH specifics 1.46 OSNAME = $(shell uname -s) 1.47 ifeq ($(OSNAME), SunOS) 1.48 @@ -183,7 +221,7 @@ 1.49 endif 1.50 1.51 # Default verbosity setting for jtreg 1.52 -JTREG_VERBOSE = fail,error,nopass 1.53 +JTREG_VERBOSE = fail,error,summary 1.54 1.55 # Default verbosity setting for jck 1.56 JCK_VERBOSE = non-pass 1.57 @@ -218,14 +256,16 @@ 1.58 1.59 # Root of all test results 1.60 TEST_OUTPUT_DIR = $(TEST_ROOT)/../build/$(PLATFORM)-$(ARCH)/test/langtools 1.61 -ABS_TEST_OUTPUT_DIR := \ 1.62 - $(shell mkdir -p $(TEST_OUTPUT_DIR); \ 1.63 - cd $(TEST_OUTPUT_DIR); \ 1.64 - pwd $(CYGPATH)) 1.65 +ifdef ALT_OUTPUTDIR 1.66 + ABS_OUTPUTDIR := $(shell cd $(ALT_OUTPUTDIR) && pwd $(CYGPATH)) 1.67 +else 1.68 + ABS_OUTPUTDIR := $(shell mkdir -p $(TEST_OUTPUT_DIR); cd $(TEST_OUTPUT_DIR) && pwd $(CYGPATH)) 1.69 +endif 1.70 +ABS_TEST_OUTPUT_DIR := $(ABS_OUTPUTDIR)/testoutput/$(UNIQUE_DIR) 1.71 # Subdirectories for different test runs 1.72 -JTREG_OUTPUT_DIR = $(ABS_TEST_OUTPUT_DIR)/jtreg 1.73 -JCK_COMPILER_OUTPUT_DIR = $(ABS_TEST_OUTPUT_DIR)/jck-compiler 1.74 -JCK_RUNTIME_OUTPUT_DIR = $(ABS_TEST_OUTPUT_DIR)/jck-runtime-Xcompile 1.75 +JTREG_OUTPUT_DIR = $(ABS_OUTPUTDIR)/jtreg 1.76 +JCK_COMPILER_OUTPUT_DIR = $(ABS_OUTPUTDIR)/jck-compiler 1.77 +JCK_RUNTIME_OUTPUT_DIR = $(ABS_OUTPUTDIR)/jck-runtime-Xcompile 1.78 1.79 # Default make rule -- warning, may take a while 1.80 all: $(JPRT_CLEAN) jtreg-tests jck-compiler-tests jck-runtime-tests $(JPRT_ARCHIVE_BUNDLE) all-summary 1.81 @@ -240,6 +280,8 @@ 1.82 jck-runtime: $(JPRT_CLEAN) jck-runtime-tests $(JPRT_ARCHIVE_BUNDLE) jck-runtime-summary 1.83 @echo "Testing completed successfully" 1.84 1.85 +tier1: jtreg-tests-tier1 1.86 + 1.87 # for use with JPRT -testrule 1.88 all: JTREG_TESTDIRS = . 1.89 jtreg: JTREG_TESTDIRS = . 1.90 @@ -305,7 +347,6 @@ 1.91 # Check to make sure these directories exist 1.92 check-jtreg: $(PRODUCT_HOME) $(JTREG) 1.93 1.94 - 1.95 # Run JCK-compiler tests 1.96 # 1.97 # JCK_HOME 1.98 @@ -434,11 +475,105 @@ 1.99 # Used to force a target rules to run 1.100 FRC: 1.101 1.102 +# 1.103 +# Tier 1 langtools testing logic 1.104 +# 1.105 + 1.106 +ARCHIVE_BUNDLE = $(ABS_TEST_OUTPUT_DIR)/ARCHIVE_BUNDLE.zip 1.107 + 1.108 +# How to create the test bundle (pass or fail, we want to create this) 1.109 +# Follow command with ";$(BUNDLE_UP_AND_EXIT)", so it always gets executed. 1.110 +ZIP_UP_RESULTS = ( $(MKDIR) -p `$(DIRNAME) $(ARCHIVE_BUNDLE)` \ 1.111 + && $(CD) $(ABS_TEST_OUTPUT_DIR) \ 1.112 + && $(CHMOD) -R a+r . \ 1.113 + && $(ZIP) -q -r $(ARCHIVE_BUNDLE) . ) 1.114 + 1.115 +# important results files 1.116 +SUMMARY_TXT = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/JTreport/text/summary.txt") 1.117 +STATS_TXT_NAME = Stats.txt 1.118 +STATS_TXT = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/$(STATS_TXT_NAME)") 1.119 +RUNLIST = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/runlist.txt") 1.120 +PASSLIST = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/passlist.txt") 1.121 +FAILLIST = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/faillist.txt") 1.122 +EXITCODE = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/exitcode.txt") 1.123 + 1.124 +TESTEXIT = \ 1.125 + if [ ! -s $(EXITCODE) ] ; then \ 1.126 + $(ECHO) "ERROR: EXITCODE file not filled in."; \ 1.127 + $(ECHO) "1" > $(EXITCODE); \ 1.128 + fi ; \ 1.129 + testExitCode=`$(CAT) $(EXITCODE)`; \ 1.130 + $(ECHO) "EXIT CODE: $${testExitCode}"; \ 1.131 + exit $${testExitCode} 1.132 + 1.133 +BUNDLE_UP_AND_EXIT = \ 1.134 +( \ 1.135 + jtregExitCode=$$? && \ 1.136 + _summary="$(SUMMARY_TXT)"; \ 1.137 + $(RM) -f $(STATS_TXT) $(RUNLIST) $(PASSLIST) $(FAILLIST) $(EXITCODE); \ 1.138 + $(ECHO) "$${jtregExitCode}" > $(EXITCODE); \ 1.139 + if [ -r "$${_summary}" ] ; then \ 1.140 + $(ECHO) "Summary: $(UNIQUE_DIR)" > $(STATS_TXT); \ 1.141 + $(EXPAND) $${_summary} | $(EGREP) -v ' Not run\.' > $(RUNLIST); \ 1.142 + $(EGREP) ' Passed\.' $(RUNLIST) \ 1.143 + | $(EGREP) -v ' Error\.' \ 1.144 + | $(EGREP) -v ' Failed\.' > $(PASSLIST); \ 1.145 + ( $(EGREP) ' Failed\.' $(RUNLIST); \ 1.146 + $(EGREP) ' Error\.' $(RUNLIST); \ 1.147 + $(EGREP) -v ' Passed\.' $(RUNLIST) ) \ 1.148 + | $(SORT) | $(UNIQ) > $(FAILLIST); \ 1.149 + if [ $${jtregExitCode} != 0 -o -s $(FAILLIST) ] ; then \ 1.150 + $(EXPAND) $(FAILLIST) \ 1.151 + | $(CUT) -d' ' -f1 \ 1.152 + | $(SED) -e 's@^@FAILED: @' >> $(STATS_TXT); \ 1.153 + if [ $${jtregExitCode} = 0 ] ; then \ 1.154 + jtregExitCode=1; \ 1.155 + fi; \ 1.156 + fi; \ 1.157 + runc="`$(CAT) $(RUNLIST) | $(WC) -l | $(AWK) '{print $$1;}'`"; \ 1.158 + passc="`$(CAT) $(PASSLIST) | $(WC) -l | $(AWK) '{print $$1;}'`"; \ 1.159 + failc="`$(CAT) $(FAILLIST) | $(WC) -l | $(AWK) '{print $$1;}'`"; \ 1.160 + exclc="FIXME CODETOOLS-7900176"; \ 1.161 + $(ECHO) "TEST STATS: name=$(UNIQUE_DIR) run=$${runc} pass=$${passc} fail=$${failc}" \ 1.162 + >> $(STATS_TXT); \ 1.163 + else \ 1.164 + $(ECHO) "Missing file: $${_summary}" >> $(STATS_TXT); \ 1.165 + fi; \ 1.166 + if [ -f $(STATS_TXT) ] ; then \ 1.167 + $(CAT) $(STATS_TXT); \ 1.168 + fi; \ 1.169 + $(ZIP_UP_RESULTS) ; \ 1.170 + $(TESTEXIT) \ 1.171 +) 1.172 + 1.173 +prep-tier1: 1.174 + @$(MKDIR) -p $(ABS_TEST_OUTPUT_DIR) 1.175 + 1.176 +# Run tier1 jtreg 1.177 +jtreg-tests-tier1: check-jtreg prep-tier1 FRC 1.178 + ( \ 1.179 + ( JT_HOME=$(shell $(GETMIXEDPATH) "$(JT_HOME)"); \ 1.180 + export JT_HOME; \ 1.181 + $(shell $(GETMIXEDPATH) "$(JTREG)") \ 1.182 + -J-Xmx512m \ 1.183 + -vmoption:-Xmx768m \ 1.184 + -a -ignore:quiet $(if $(JTREG_VERBOSE),-v:$(JTREG_VERBOSE)) \ 1.185 + -r:$(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/JTreport") \ 1.186 + -w:$(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/JTwork") \ 1.187 + -jdk:$(shell $(GETMIXEDPATH) "$(TESTJAVA)") \ 1.188 + $(JAVA_ARGS:%=-vmoption:%) \ 1.189 + $(JTREG_OPTIONS) \ 1.190 + :langtools_tier1 \ 1.191 + ) ; \ 1.192 + $(BUNDLE_UP_AND_EXIT) \ 1.193 + ) 2>&1 | $(TEE) $(ABS_TEST_OUTPUT_DIR)/output.txt ; $(TESTEXIT) 1.194 + 1.195 # Phony targets (e.g. these are not filenames) 1.196 .PHONY: all clean \ 1.197 jtreg javac javadoc javah javap jdeps jtreg-tests jtreg-summary check-jtreg \ 1.198 jck-compiler jck-compiler-tests jck-compiler-summary \ 1.199 - jck-runtime jck-runtime-tests jck-runtime-summary check-jck 1.200 + jck-runtime jck-runtime-tests jck-runtime-summary check-jck prep-tier1 \ 1.201 + jtreg-tests-tier1 tier1 1.202 1.203 # No use of suffix rules 1.204 .SUFFIXES:
2.1 --- a/test/TEST.groups Mon Jun 01 15:19:54 2015 -0700 2.2 +++ b/test/TEST.groups Thu Apr 25 14:03:39 2019 +0200 2.3 @@ -23,10 +23,10 @@ 2.4 # Tiered testing definitions 2.5 2.6 # All langtools tests are tier 1 2.7 -tier1 = \ 2.8 +langtools_tier1 = \ 2.9 tools \ 2.10 com \ 2.11 lib 2.12 2.13 # No langtools tests are tier 2 2.14 -tier2 = 2.15 +langtools_tier2 =