Mercurial > hg > graal-compiler
view test/Makefile @ 267:9d6a3a6891f8
6720130: NUMA allocator: The linux version should search for libnuma.so.1
Summary: Search for libnuma.so.1 on Linux and liblgrp.so.1 on Solaris.
Reviewed-by: jmasa
author | iveresov |
---|---|
date | Mon, 14 Jul 2008 04:12:47 -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: