diff --git a/testsuite/expect/Makefile.am b/testsuite/expect/Makefile.am index f481e3e9e896037fb93a23320f0ea3434ce56076..50d3221a9cdd0928927b8f1b5e5b5abb625843ad 100644 --- a/testsuite/expect/Makefile.am +++ b/testsuite/expect/Makefile.am @@ -212,6 +212,7 @@ EXTRA_DIST = \ test12.2 \ test12.2.prog.c \ test12.3 \ + test12.4 \ test13.1 \ test14.1 \ test14.2 \ diff --git a/testsuite/expect/README b/testsuite/expect/README index 0c5bc41e4471a6225e43b0683c867f2112092718..b4b237b87426d37fce1647f181f302911c8eaa8d 100644 --- a/testsuite/expect/README +++ b/testsuite/expect/README @@ -354,6 +354,7 @@ 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. test13.# Testing of switch plugins diff --git a/testsuite/expect/test12.4 b/testsuite/expect/test12.4 new file mode 100755 index 0000000000000000000000000000000000000000..25cd2615a74a0ea386441a0b251bb27ac3c962db --- /dev/null +++ b/testsuite/expect/test12.4 @@ -0,0 +1,108 @@ +#!/usr/bin/expect +############################################################################ +# Purpose: Test of SLURM functionality +# Test sacct --brief 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.4" +set exit_code 0 +set matches 0 +set not_support 0 + +print_header $test_id + +################################################################ +# +# Proc: sacct +# +# Purpose: pass sacct options to one location +# +# Returns: The number of matches. +# +# Input: a switch option +# +################################################################ + +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 "JobID......State......ExitCode" { + incr matches + exp_continue + } + -re "---------- ---------- --------" { + 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 != 2} { + send_user "\nFAILURE: sacct -$soption failed ($matches)\n" + set exit_code 1 +} + return $matches +} +################################################################ +set matches [sacct_job -brief] +if {$matches != 2} { + send_user "\nFAILURE: sacct --brief failed ($matches)\n" + set exit_code 1 +} + +set matches [sacct_job b] +if {$matches != 2} { + send_user "\nFAILURE: sacct -b failed ($matches)\n" + set exit_code 1 +} + +if {$exit_code == 0} { + send_user "\nSUCCESS\n" +} +exit $exit_code