From ddfab710406885fb9ef9c263ae1ad5aa76df9e98 Mon Sep 17 00:00:00 2001 From: Moe Jette <jette1@llnl.gov> Date: Tue, 12 Dec 2006 17:30:16 +0000 Subject: [PATCH] Add basic test of "scontrol listpids" command. --- testsuite/expect/README | 1 + testsuite/expect/test2.11 | 119 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 120 insertions(+) create mode 100755 testsuite/expect/test2.11 diff --git a/testsuite/expect/README b/testsuite/expect/README index be746d18f22..e5e24f251d2 100644 --- a/testsuite/expect/README +++ b/testsuite/expect/README @@ -174,6 +174,7 @@ test2.7 Validate scontrol pidinfo command. test2.8 Validate scontrol show commands for jobs and steps. test2.9 Validate scontrol completing command. test2.10 Validate scontrol oneliner mode (--oneliner option). +test2.11 Validate scontrol listpids command. test3.# Testing of scontrol options (best run as SlurmUser or root). diff --git a/testsuite/expect/test2.11 b/testsuite/expect/test2.11 new file mode 100755 index 00000000000..aca2e00bc19 --- /dev/null +++ b/testsuite/expect/test2.11 @@ -0,0 +1,119 @@ +#!/usr/bin/expect +############################################################################ +# Purpose: Test of SLURM functionality +# Validate scontrol listpids command. +# +# 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) 2002-2006 The Regents of the University of California. +# Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). +# Written by Morris Jette <jette1@llnl.gov> +# UCRL-CODE-217948. +# +# 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 "2.11" +set exit_code 0 +set file_in "test$test_id.input" +set file_out "test$test_id.output" +set job_id 0 +set scontrol_id 0 + +print_header $test_id + +# Delete left-over stdout file +file delete $file_out + +# +# Build input script file +# +make_bash_script $file_in " + $srun $bin_sleep 10 & + $bin_sleep 1 + $scontrol listpids \$SLURM_JOBID.10 + $scontrol listpids \$SLURM_JOBID.0 + $scontrol listpids \$SLURM_JOBID" + +# +# Spawn a srun batch job that uses stdout/err and confirm their contents +# +set srun_pid [spawn $srun --batch --output=$file_out -t1 $file_in] +expect { + -re "jobid ($number) submitted" { + set job_id $expect_out(1,string) + exp_continue + } + timeout { + send_user "\nFAILURE: srun not responding\n" + slow_kill $srun_pid + set exit_code 1 + } + eof { + wait + } +} + +if {$job_id == 0} { + send_user "\nFAILURE: batch submit failure\n" + exec $bin_rm -f $file_in + exit 1 +} + +# +# Wait for job to complete +# +if {[wait_for_job $job_id "DONE"] != 0} { + send_user "\nFAILURE: waiting for job to complete\n" + exec $bin_rm -f $file_in + exit 1 +} + +# +# Verify job_id in output file +# +set matches 0 +if {[wait_for_file $file_out] == 0} { + spawn $bin_cat $file_out + expect { + -re "Job step ($number).10 does not exist on this node." { + incr matches + exp_continue + } + -re "$job_id *0 *0 *0" { + incr matches + exp_continue + } + eof { + wait + } + } +} +if {$matches != 3} { + send_user "\nFAILURE: scontrol listpids output error\n" + set exit_code 1 +} + +if {$exit_code == 0} { + send_user "\nSUCCESS\n" + exec $bin_rm -f $file_in $file_out +} +exit $exit_code -- GitLab