8222737: [TESTBUG] Allow for tier 1 like testing in OpenJDK 8u jdk8u232-b02

Thu, 25 Apr 2019 14:03:39 +0200

author
sgehwolf
date
Thu, 25 Apr 2019 14:03:39 +0200
changeset 3835
19908109cb37
parent 3834
45746e46893b
child 3836
671c4ba50c6f

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 =

mercurial