#!/usr/bin/env bash ############################################################################ # Purpose: Test of Slurm functionality # Executes the full battery of tests. # # Output: "Failures:#\nCompletions:#" with a count of tests executed # successfully and failures respectively. The exit code is zero # only if all tests executed successfully. ############################################################################ # Copyright (C) 2002 The Regents of the University of California. # Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). # Written by Morris Jette # CODE-OCEC-09-009. All rights reserved. # # This file is part of Slurm, a resource management program. # For details, see . # Please also read the supplied file: DISCLAIMER. # # Slurm is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free # Software Foundation; either version 2 of the License, or (at your option) # any later version. # # Slurm 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 for more # details. # # You should have received a copy of the GNU General Public License along # with Slurm; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ############################################################################ FAILURES=0 COMPLETIONS=0 # Clear any environment variables that could break the tests. # Cray sets some squeue format options that break tests unset SQUEUE_ALL unset SQUEUE_SORT unset SQUEUE_FORMAT unset SQUEUE_FORMAT2 # Make sure we are in the desired directory before possibly # removing files the user does not want to lose. if [ ! -x ./regression ]; then echo "FAILURE: cd to 'testsuite/expect' before starting 'regression'" exit 1 fi if [ ! -e ./globals ]; then echo "FAILURE: 'globals' file not found" exit 1 fi if [ ! -x ./globals ]; then echo "FAILURE: 'globals' file not executable" exit 1 fi # Remove any recently edited back-up files /bin/rm -f test*.*% test*input test*output test*error # Run the tests in this directory /bin/date BEGIN_TIME=`date +%s` for major in `seq 1 100`; do for minor in `seq 1 150`; do TEST=test${major}.${minor} if [ ! -f ./$TEST ]; then continue; fi ./$TEST if [ $? -eq 0 ] then COMPLETIONS=$((COMPLETIONS+1)) else FAILURES=$((FAILURES+1)) echo "=============" >& 2 echo "$TEST FAILURE" >& 2 echo "$TEST FAILURE" grep "$TEST " README >& 2 echo "=============" >& 2 if [ -f ./slurm_status ]; then ./slurm_status; fi fi /bin/echo "============================================" done done END_TIME=`date +%s` DELTA_TIME=`expr $END_TIME - $BEGIN_TIME` # Report the results /bin/date echo "" echo "" echo "Completions:$COMPLETIONS" echo "Failures: $FAILURES" echo "Time (sec): $DELTA_TIME" echo "Completions:$COMPLETIONS" >& 2 echo "Failures: $FAILURES" >& 2 echo "Time (sec): $DELTA_TIME" >& 2 echo "Remember to check for mail send by tests" >& 2 if [ $FAILURES -eq 0 ] then /bin/rm -f test*input test*output test*error exit 0 else exit 1 fi