diff --git a/testsuite/expect/Makefile.am b/testsuite/expect/Makefile.am index 50d3221a9cdd0928927b8f1b5e5b5abb625843ad..60dd7d8faad4238f5a20094511d31f1c39efb141 100644 --- a/testsuite/expect/Makefile.am +++ b/testsuite/expect/Makefile.am @@ -213,6 +213,7 @@ EXTRA_DIST = \ test12.2.prog.c \ test12.3 \ test12.4 \ + test12.5 \ test13.1 \ test14.1 \ test14.2 \ diff --git a/testsuite/expect/README b/testsuite/expect/README index b4b237b87426d37fce1647f181f302911c8eaa8d..baa6c2c16f17171df8c1bc1ed71382612149d507 100644 --- a/testsuite/expect/README +++ b/testsuite/expect/README @@ -354,7 +354,8 @@ test12.1 Test sacct --help option. test12.2 Test validity/accuracy of accounting data for exit code, memory and real-time information along with stating a running job. test12.3 Test sacct --allusers option. -test12.3 Test sacct --brief option. +test12.4 Test sacct --brief option. +test12.5 Test sacct --helpformat option. test13.# Testing of switch plugins diff --git a/testsuite/expect/test12.5 b/testsuite/expect/test12.5 new file mode 100755 index 0000000000000000000000000000000000000000..d8113e3bafb384e3a6290bfe23885fdfb98b03cf --- /dev/null +++ b/testsuite/expect/test12.5 @@ -0,0 +1,156 @@ +#!/usr/bin/expect +############################################################################ +# Purpose: Test of SLURM functionality +# Test sacct --helpformat option. +# +# Output: "TEST: #.#" followed by "SUCCESS" if test was successful, OR +# "FAILURE: ..." otherwise with an explanation of the failure, OR +# anything else indicates a failure mode that must be investigated. +############################################################################ +# Copyright (C) 2008-2009 TheLawrence Livermore National Security, LLC . +# Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). +# Written by Joseph Donaghy <donaghy1@llnl.gov> +# LLNL-CODE-402394. +# +# This file is part of SLURM, a resource management program. +# For details, see <http://www.llnl.gov/linux/slurm/>. +# +# 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. +############################################################################ +source ./globals + +set test_id "12.5" +set exit_code 0 +set matches 0 +set not_support 0 + +print_header $test_id + +################################################################ +# +# Proc: sacct +# +# Purpose: Pass sacct options and test +# +# Returns: Number of matches. +# +# Input: Switch options -e and --helpformat +# +################################################################ + +proc sacct_job { soption } { + global sacct +set exit_code 0 +set matches 0 +set not_support 0 + send_user "sacct -$soption\n" +spawn $sacct -$soption +expect { + -re "SLURM accounting storage is disabled" { + set not_support 1 + exp_continue + } + -re "AllocCPUS Account AssocID AveCPU" { + incr matches + exp_continue + } + -re "AvePages AveRSS AveVSize BlockID" { + incr matches + exp_continue + } + -re "Cluster CPUTime CPUTimeRAW Elapsed" { + incr matches + exp_continue + } + -re "Eligible End ExitCode GID" { + incr matches + exp_continue + } + -re "Group JobID JobName NodeList" { + incr matches + exp_continue + } + -re "MaxPages MaxPagesNode MaxPagesTask MaxRSS" { + incr matches + exp_continue + } + -re "MaxRSSNode MaxRSSTask MaxVSize MaxVSizeNode" { + incr matches + exp_continue + } + -re "MaxVSizeTask MinCPU MinCPUNode MinCPUTask" { + incr matches + exp_continue + } + -re "NCPUS NNodes NTasks Priority" { + incr matches + exp_continue + } + -re "Partition QOS QOSRAW ReqCPUS" { + incr matches + exp_continue + } + -re "Reserved ResvCPU ResvCPURAW Start" { + incr matches + exp_continue + } + -re "State Submit Suspended SystemCPU" { + incr matches + exp_continue + } + -re "Timelimit TotalCPU UID User" { + incr matches + exp_continue + } + -re "UserCPU WCKey WCKeyID" { + incr matches + exp_continue + } + timeout { + send_user "\nFAILURE: sacct not responding\n" + set exit_code 1 + } + eof { + wait + } +} + +if {$not_support != 0} { + send_user "\nWARNING: can not test without accounting enabled\n" + exit 0 +} +if {$matches != 14} { + send_user "\nFAILURE: sacct -$soption failed ($matches)\n" + set exit_code 1 +} + return $matches +} +################################################################ +set matches [sacct_job -helpformat] +if {$matches != 14} { + send_user "\nFAILURE: sacct --allusers failed ($matches)\n" + set exit_code 1 +} + +set matches [sacct_job e] +if {$matches != 14} { + send_user "\nFAILURE: sacct -a failed ($matches)\n" + set exit_code 1 +} + +if {$exit_code == 0} { + send_user "\nSUCCESS\n" +} +exit $exit_code