## Process this file with automake to produce Makefile.in -*- makefile -*- SUBDIRS = bin BACKENDS = @BACKENDS@ # we only run parallel regressions tests on backends that are truly multiprocessing EXCLUDED_BACKENDS=sequential now-uniprocess mill-uniprocess TEST_SUITES_PARALLEL:=$(shell echo ${BACKENDS} | awk '{ ORS=" " ; split($$0, a," ") ; for (i=1;i<=NF;i++) if (!index( "${EXCLUDED_BACKENDS}" , a[i] )) print a[i] }') TEST_SUITES_DISTRIBUTED:=$(shell echo ${TEST_SUITES_PARALLEL} | awk '{ ORS=" " ; split($$0, a," ") ; for (i=1;i<=NF;i++) if (a[i] != "smp") print a[i] }') # pure-uniprocessor test suites, in order of execution TEST_SUITES_U:=sanity domain1 domain1-sortoutput memory array pr compiler templates misc nested io inlining inlining2 bounds optimizer stats stoptifu per\ verse compiler-output rebuild-tlib TEST_SUITES_US:=${TEST_SUITES_U} smp # test suites which include parallel suites TEST_SUITES_ALL:=${TEST_SUITES_U} ${TEST_SUITES_PARALLEL} TEST_SUITES_DFLT:=${TEST_SUITES_ALL} TEST_SUITES:=${TEST_SUITES_DFLT} DESC=ALL # the backend to use for the wide pointer test, in order of decreasing preference WIDE_BACKENDS:=udp-cluster-smp udp-cluster-uniprocess mpi-cluster-smp mpi-cluster-uniprocess gasnet-mpi-smp gasnet-mpi-uni gasnet-lapi-smp gasnet-lapi-uni sp3 gasnet-gm-smp gasnet-gm-uni WIDE_BACKEND:=$(shell echo ${BACKENDS} | awk '{ split($$0, a," ") ; idx=1000 ; res="no-wide-backend-available" ; for (i=1;i<=NF;i++) { val=index( " ${WIDE_BACKENDS} ", " "a[i]" ") ; if (val > 0 && val < idx) {idx = val; res = a[i];} } ; print res; }') PWD:=$(shell pwd) LOG_FILE_ROOT:=${PWD}/log- LOG_FILE_BASE:=${LOG_FILE_ROOT}${LOG_FILE_PREFIX:=} # define CACHE_DIR using the pid of a subshell # we'd prefer this to be the pid of _this_ gmake process, but # there doesn't seem to be a portable way to get our hands on that - sigh... export CACHE_DIR:=${PWD}/tc-cache-$(shell echo $$$$) export TCBUILD_FLAGS+=--cache-dir ${CACHE_DIR} TEST_DRIVER:=bin/testDriver #DRIVER:=$(srcdir)/bin/testDriver # this is a stop-gap measure to ensure each suite eventually terminates # ideally, we stop such non-terminating behavior on a test-by-test basis DRIVER:=bin/watchdog 10800 1000000 ${TEST_DRIVER} .NOTPARALLEL: help: force @$${PAGER:-more} $(srcdir)/README test: bin @echo "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=" @if test "${DESC}" = "ALL" -a "${TEST_SUITES}" != "${TEST_SUITES_ALL}" ; then \ echo " Running SELECTED regression test suites: " ; \ else \ echo " Running ${DESC} regression test suites: " ; \ fi @echo " * TEST_SUITES=${TEST_SUITES}" @if test "${TESTS}" = "" ; then \ echo " * TESTS=" ; \ else \ echo " * TESTS=${TESTS}" ; \ fi @echo " * Cache directory is: ${CACHE_DIR}" @echo " * TCBUILD_FLAGS=${TCBUILD_FLAGS}" @echo "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=" @if test `set | grep '^TI_NOGC='` ; then echo "WARNING: TI_NOGC is set and will affect test execution" ; fi -@trap "echo Cleaning up cache... ; rm -Rf ${CACHE_DIR} ; exit 1" @SIGINT@ @SIGQUIT@ @SIGTERM@ @SIGHUP@ ; \ for suite in ${TEST_SUITES}; do \ srcdir=$(srcdir) $(DRIVER) "$(srcdir)/$$suite" "${LOG_FILE_BASE}$$suite"; \ done @echo Cleaning up cache... ; rm -Rf ${CACHE_DIR} test-u: @$(MAKE) TEST_SUITES="${TEST_SUITES_U}" DESC=UNIPROCESSOR test test-us: @$(MAKE) TEST_SUITES="${TEST_SUITES_US}" DESC="UNIPROCESSOR and SMP" test test-m: @$(MAKE) TEST_SUITES="${TEST_SUITES_PARALLEL}" DESC=MULTIPROCESSOR test test-d: @$(MAKE) TEST_SUITES="${TEST_SUITES_DISTRIBUTED}" DESC=DISTRIBUTED test test-w: @$(MAKE) TEST_SUITES_DFLT="${TEST_SUITES_U}" DESC="WIDE POINTER UNIPROCESSOR (${WIDE_BACKEND})" LOG_FILE_PREFIX=wide- TI_SPAWNFN=L TI_THREADS=1 SS_DEFAULT_COMPILER_FLAGS="-O --backend ${WIDE_BACKEND}" test bin: force @cd bin && $(MAKE) all force: clean: @rm -rf Work.* tc-cache* core a.out ${LOG_FILE_BASE}* .PHONY: force clean bin test test-u test-m test-us test-setup help EXTRA_DIST = \ README \ array \ array.suite \ bounds \ bounds.suite \ common.skip \ compiler \ compiler.suite \ compiler-output \ compiler-output.suite \ cray-t3e \ cray-t3e.suite \ domain1 \ domain1.suite \ domain1-sortoutput \ domain1-sortoutput.suite \ etc \ gas-gc \ gas-regions \ gasnet-elan-smp \ gasnet-elan-smp.suite \ gasnet-elan-uni \ gasnet-elan-uni.suite \ gasnet-gm-smp \ gasnet-gm-smp.suite \ gasnet-gm-uni \ gasnet-gm-uni.suite \ gasnet-lapi-smp \ gasnet-lapi-smp.suite \ gasnet-lapi-uni \ gasnet-lapi-uni.suite \ gasnet-shmem-uni \ gasnet-shmem-uni.suite \ gasnet-vapi-smp \ gasnet-vapi-smp.suite \ gasnet-vapi-uni \ gasnet-vapi-uni.suite \ gasnet-mpi-smp \ gasnet-mpi-smp.suite \ gasnet-mpi-uni \ gasnet-mpi-uni.suite \ inlining \ inlining.suite \ inlining2 \ inlining2.suite \ io \ io.suite \ memory \ memory.suite \ mill-cluster-smp \ mill-cluster-smp.suite \ mill-cluster-uniprocess \ mill-cluster-uniprocess.suite \ mill-smp \ mill-smp.suite \ misc \ misc.suite \ mpi-cluster-smp \ mpi-cluster-smp.suite \ mpi-cluster-uniprocess \ mpi-cluster-uniprocess.suite \ nested \ nested.suite \ now-cluster-uniprocess \ now-cluster-uniprocess.suite \ optimizer \ optimizer.suite \ parallel \ pr \ pr.suite \ rebuild-tlib \ rebuild-tlib.suite \ sanity \ sanity.suite \ smp \ smp.suite \ sp2 \ sp2.suite \ sp2clump \ sp2clump.suite \ sp3 \ sp3.suite \ stats \ stats.suite \ stoptifu \ stoptifu.suite \ templates \ templates.suite \ tera-thread \ tera-thread.suite \ udp-cluster-smp \ udp-cluster-smp.suite \ udp-cluster-uniprocess \ udp-cluster-uniprocess.suite dist-hook: cp -pR "$(srcdir)/per verse" "$(distdir)" cp -pR "$(srcdir)/per verse.suite" "$(distdir)"