Mercurial > hg > truffle
view test/Makefile @ 94:0834225a7916
6634032: CMS: Need CMSInitiatingPermOccupancyFraction for perm, divorcing from CMSInitiatingOccupancyFraction
Summary: The option CMSInitiatingPermOccupancyFraction now controls perm triggering threshold. Even though the actual value of the threshold has not yet been changed, so there is no change in policy, we now have the infrastructure in place for dynamically deciding when to collect the perm gen, an issue that will be addressed in the near future.
Reviewed-by: jmasa
author | ysr |
---|---|
date | Sun, 16 Mar 2008 21:57:25 -0700 |
parents | a61af66fc99e |
children | 68e0443dfd9c |
line wrap: on
line source
# # Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License version 2 only, as # published by the Free Software Foundation. # # This code is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License # version 2 for more details (a copy is included in the LICENSE file that # accompanied this code). # # You should have received a copy of the GNU General Public License version # 2 along with this work; if not, write to the Free Software Foundation, # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. # # Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, # CA 95054 USA or visit www.sun.com if you need additional information or # have any questions. # # # # Makefile to run jtreg # OSNAME = $(shell uname -s) ifeq ($(OSNAME), SunOS) PLATFORM = solaris JCT_PLATFORM = solaris ARCH = $(shell uname -p) ifeq ($(ARCH), i386) ARCH=i586 endif endif ifeq ($(OSNAME), Linux) PLATFORM = linux JCT_PLATFORM = linux ARCH = $(shell uname -m) ifeq ($(ARCH), i386) ARCH=i586 endif endif ifeq ($(OSNAME), Windows_NT) PLATFORM = windows JCT_PLATFORM = win32 ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),ia64) ARCH=ia64 else ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),AMD64) ARCH=x64 else ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),EM64T) ARCH=x64 else ARCH=i586 endif endif endif endif # Default bundle of all test results (passed or not) JPRT_ARCHIVE_BUNDLE=$(TEST_ROOT)/JPRT_ARCHIVE_BUNDLE.zip # Default home for JTREG ifeq ($(PLATFORM), windows) JT_HOME = J:/svc/jct-tools3.2.2_01 else JT_HOME = /java/svc/jct-tools3.2.2_01 endif # Default JTREG to run JTREG = $(JT_HOME)/$(JCT_PLATFORM)/bin/jtreg # Root of this test area TEST_ROOT := $(shell pwd) # Default JDK to test JAVA_HOME = $(TEST_ROOT)/../build/$(PLATFORM)-$(ARCH) # The test directories to run DEFAULT_TESTDIRS = serviceability TESTDIRS = $(DEFAULT_TESTDIRS) # Files that hold total passed and failed counts (passed==0 is bad) JTREG_TOTALS_DIR = $(TEST_ROOT)/JTREG_TOTALS_$(PLATFORM)_$(ARCH) JTREG_FAILED = $(JTREG_TOTALS_DIR)/failed_count JTREG_PASSED = $(JTREG_TOTALS_DIR)/passed_count # Root of all test results JTREG_ALL_OUTPUT_DIRNAME = JTREG_OUTPUT_$(PLATFORM)_$(ARCH) JTREG_ALL_OUTPUT_DIR = $(TEST_ROOT)/$(JTREG_ALL_OUTPUT_DIRNAME) # Test results for one test directory JTREG_TEST_OUTPUT_DIR = $(JTREG_ALL_OUTPUT_DIR)/$@ JTREG_TEST_REPORT_DIR = $(JTREG_TEST_OUTPUT_DIR)/JTreport JTREG_TEST_WORK_DIR = $(JTREG_TEST_OUTPUT_DIR)/JTwork JTREG_TEST_SUMMARY = $(JTREG_TEST_REPORT_DIR)/summary.txt # Temp files used by this Makefile JTREG_TEST_TEMP_DIR = $(JTREG_ALL_OUTPUT_DIR)/$@/temp JTREG_TEMP_PASSED = $(JTREG_TEST_TEMP_DIR)/passed JTREG_TEMP_FAILED = $(JTREG_TEST_TEMP_DIR)/failed JTREG_TEMP_OUTPUT = $(JTREG_TEST_TEMP_DIR)/output JTREG_TEMP_RESULTS = $(JTREG_TEST_TEMP_DIR)/results # JTREG options (different for 2.1.6 and 3.2.2_01) JTREG_COMMON_OPTIONS = -r:$(JTREG_TEST_REPORT_DIR) \ -w:$(JTREG_TEST_WORK_DIR) \ -testjdk:$(JAVA_HOME) \ -automatic \ -verbose:all JTREG_216_OPTIONS = $(JTREG_COMMON_OPTIONS) $@ $(JAVA_ARGS) JTREG_322_OPTIONS = $(JTREG_COMMON_OPTIONS) $(JAVA_ARGS:%=-vmoption:%) $@ # Default make rule all: clean check tests # Chaeck to make sure these directories exist check: $(JT_HOME) $(JAVA_HOME) $(JTREG) # Prime the test run primecounts: FRC @rm -f -r $(JTREG_TOTALS_DIR) @mkdir -p $(JTREG_TOTALS_DIR) @echo "0" > $(JTREG_FAILED) @echo "0" > $(JTREG_PASSED) # Run the tests and determine the 'make' command exit status # Ultimately we determine the make exit code based on the passed/failed count tests: primecounts $(TESTDIRS) @echo "JTREG TOTAL: passed=`cat $(JTREG_PASSED)` failed=`cat $(JTREG_FAILED)`" zip -q -r $(JPRT_ARCHIVE_BUNDLE) $(JTREG_ALL_OUTPUT_DIRNAME) @if [ `cat $(JTREG_FAILED)` -ne 0 -o \ `cat $(JTREG_PASSED)` -le 0 ] ; then \ echo "JTREG FAILED"; \ exit 1; \ else \ echo "JTREG PASSED"; \ exit 0; \ fi # Just make sure these directires exist $(JT_HOME) $(JAVA_HOME): FRC @if [ ! -d $@ ] ; then \ echo "ERROR: Directory $@ does not exist"; \ exit 1; \ fi # Make sure this file exists $(JTREG): FRC @if [ ! -f $@ ] ; then \ echo "ERROR: File $@ does not exist"; \ exit 1; \ fi # Process each test directory one by one, this rule always completes. # Note that the use of 'tee' tosses the jtreg process exit status, this # is as expected because even if jtreg fails, we need to save the # output. So we update the JTREG_PASSED and JTREG_FAILED count files. # Note that missing the 'results:' line in the last few lines of output # will indicate a failure (or a bump by one of the JTREG_FAILED file. # Note that passed: 0 or no passed: indication means a failure. # Note that any indication of the word 'failed' indicates failure. # Ultimately if the contents of JTREG_FAILED is not 0, we have failed # tests, and if the contents of JTREG_PASSED is 0, we consider that a # failure. $(TESTDIRS): FRC @if [ ! -d $@ ] ; then \ echo "ERROR: Directory $@ does not exist"; \ exit 1; \ fi @echo "---------------------------------------------------" @rm -f -r $(JTREG_TEST_OUTPUT_DIR) @mkdir -p $(JTREG_TEST_OUTPUT_DIR) @mkdir -p $(JTREG_TEST_WORK_DIR) @mkdir -p $(JTREG_TEST_WORK_DIR)/scratch @mkdir -p $(JTREG_TEST_REPORT_DIR) @mkdir -p $(JTREG_TEST_TEMP_DIR) @echo "Testing $@" @echo "Using JAVA_HOME=$(JAVA_HOME)" @echo "Using JAVA_ARGS=$(JAVA_ARGS)" @if [ "`$(JTREG) -help 2>&1 | fgrep -- -vmoption`" != "" ] ; then \ echo "Assume we are using jtreg 3.2.2_01 or newer"; \ echo "$(JTREG) $(JTREG_322_OPTIONS)"; \ $(JTREG) $(JTREG_322_OPTIONS) 2>&1 | tee $(JTREG_TEMP_OUTPUT) ; \ else \ echo "Assume we are using jtreg 2.1.6"; \ echo "$(JTREG) $(JTREG_216_OPTIONS)"; \ $(JTREG) $(JTREG_216_OPTIONS) 2>&1 | tee $(JTREG_TEMP_OUTPUT) ; \ fi @echo "---------------------------------------------------" @echo "Extracting passed and failed counts from jtreg output" @tail -10 $(JTREG_TEMP_OUTPUT) | fgrep -i 'results:' | \ tail -1 | tee $(JTREG_TEMP_RESULTS) @sed -e 's@.*\ passed:\ \([1-9][0-9]*\).*@\1@' $(JTREG_TEMP_RESULTS) \ > $(JTREG_TEMP_PASSED) @if [ "`cat $(JTREG_TEMP_PASSED)`" = "" ] ; then \ echo "ERROR: No passed indication in results"; \ expr `cat $(JTREG_FAILED)` '+' 1 > $(JTREG_FAILED); \ elif [ `cat $(JTREG_TEMP_PASSED)` -le 0 ] ; then \ echo "ERROR: Passed count appears to be 0"; \ expr `cat $(JTREG_FAILED)` '+' 1 > $(JTREG_FAILED); \ elif [ "`fgrep -i failed $(JTREG_TEMP_RESULTS)`" = "" ] ; then \ echo "No indication anything failed"; \ expr `cat $(JTREG_PASSED)` '+' `cat $(JTREG_TEMP_PASSED)` \ > $(JTREG_PASSED); \ else \ sed -e 's@.*\ failed:\ \([1-9][0-9]*\).*@\1@' $(JTREG_TEMP_FAILED) \ > $(JTREG_TEMP_FAILED); \ if [ "`cat $(JTREG_TEMP_FAILED)`" = "" ] ; then \ echo "ERROR: Failed pattern but no failed count in results"; \ expr `cat $(JTREG_FAILED)` '+' 1 > $(JTREG_FAILED); \ elif [ `cat $(JTREG_TEMP_FAILED)` -le 0 ] ; then \ echo "ERROR: Failed count is 0, did something failed or not?"; \ expr `cat $(JTREG_FAILED)` '+' 1 > $(JTREG_FAILED); \ else \ expr `cat $(JTREG_FAILED)` '+' `cat $(JTREG_TEMP_FAILED)` \ > $(JTREG_FAILED); \ fi; \ fi @echo "---------------------------------------------------" @echo "Summary: " @if [ -f $(JTREG_TEST_SUMMARY) ] ; then \ cat $(JTREG_TEST_SUMMARY) ; \ else \ echo "ERROR: Missing $(JTREG_TEST_SUMMARY)"; \ fi @echo "---------------------------------------------------" # Cleanup clean: rm -f -r $(JTREG_ALL_OUTPUT_DIR) rm -f $(JPRT_ARCHIVE_BUNDLE) FRC: