From 3f2f4a2c44b5243512841f4097d7e82720cf5f7b Mon Sep 17 00:00:00 2001 From: Moe Jette <jette1@llnl.gov> Date: Thu, 2 Dec 2010 00:03:56 +0000 Subject: [PATCH] Add tests of srun/salloc interrupt while waiting for an allocation --- testsuite/expect/Makefile.am | 2 + testsuite/expect/Makefile.in | 2 + testsuite/expect/README | 1 + testsuite/expect/test1.64 | 85 ++++++++++++++++++++++++++++++++++++ testsuite/expect/test15.26 | 85 ++++++++++++++++++++++++++++++++++++ 5 files changed, 175 insertions(+) create mode 100755 testsuite/expect/test1.64 create mode 100755 testsuite/expect/test15.26 diff --git a/testsuite/expect/Makefile.am b/testsuite/expect/Makefile.am index 4a45fa25327..d00794e9f2e 100644 --- a/testsuite/expect/Makefile.am +++ b/testsuite/expect/Makefile.am @@ -80,6 +80,7 @@ EXTRA_DIST = \ test1.62.bash \ test1.63 \ test1.63.prog.c \ + test1.64 \ test1.80 \ test1.81 \ test1.82 \ @@ -263,6 +264,7 @@ EXTRA_DIST = \ test15.23 \ test15.24 \ test15.25 \ + test15.26 \ test16.1 \ test16.2 \ test16.3 \ diff --git a/testsuite/expect/Makefile.in b/testsuite/expect/Makefile.in index 36f7ce89ebe..995fbfbe019 100644 --- a/testsuite/expect/Makefile.in +++ b/testsuite/expect/Makefile.in @@ -352,6 +352,7 @@ EXTRA_DIST = \ test1.62.bash \ test1.63 \ test1.63.prog.c \ + test1.64 \ test1.80 \ test1.81 \ test1.82 \ @@ -535,6 +536,7 @@ EXTRA_DIST = \ test15.23 \ test15.24 \ test15.25 \ + test15.26 \ test16.1 \ test16.2 \ test16.3 \ diff --git a/testsuite/expect/README b/testsuite/expect/README index e37dd6c9a4a..4a060046eaf 100644 --- a/testsuite/expect/README +++ b/testsuite/expect/README @@ -166,6 +166,7 @@ test1.60 Test of labelling output when writing a file per task or per node test1.61 Test of srun job step time limit test1.62 Test of gres/gpu plugin (if configured). test1.63 Test of srun --disbale-status/-X option, SIGINT to be sent to tasks. +test1.64 Test interuption of srun while waiting for resource allocation. **NOTE** The following tests attempt to utilize multiple CPUs or partitions, The test will print "WARNING" and terminate with an exit code of diff --git a/testsuite/expect/test1.64 b/testsuite/expect/test1.64 new file mode 100755 index 00000000000..86e0d6bb311 --- /dev/null +++ b/testsuite/expect/test1.64 @@ -0,0 +1,85 @@ +#!/usr/bin/expect +############################################################################ +# Purpose: Test of SLURM functionality +# Test interuption of srun while waiting for resource allocation. +# +# 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-2007 The Regents of the University of California. +# Copyright (C) 2008-2010 Lawrence Livermore National Security +# Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). +# Written by Morris Jette <jette1@llnl.gov> +# CODE-OCEC-09-009. All rights reserved. +# +# This file is part of SLURM, a resource management program. +# For details, see <https://computing.llnl.gov/linux/slurm/>. +# Please also read the included 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. +############################################################################ +source ./globals + +set test_id "1.64" +set exit_code 0 +set matches 0 + +print_header $test_id + +if { [test_xcpu] } { + send_user "\nWARNING: This test is incompatible with XCPU systems\n" + exit $exit_code +} + +# +# Spawn initial program via srun +# Send the signal while the srun is waiting for a resource allocation +# +set srun_pid [spawn $srun -N1 -t1 --begin=noon -v $bin_sleep 1] +expect { + -re "queued and waiting for resources" { + incr matches + exec $bin_kill -INT $srun_pid + send_user "\nSent SIGINT\n" + exp_continue + } + -re "Terminated job" { + incr matches + exp_continue + } + timeout { + send_user "\nFAILURE: srun not responding\n" + set matches -999 + slow_kill $srun_pid + set exit_code 1 + } + eof { + send_user "\nEOF\n" + wait + } +} +if {$matches != 2} { + send_user "\nFAILURE: srun failed to process SIGINT while waiting for allocation\n" + set exit_code 1 +} + +# +# Post-processing +# +if {$exit_code == 0} { + send_user "\nSUCCESS\n" +} +exit $exit_code diff --git a/testsuite/expect/test15.26 b/testsuite/expect/test15.26 new file mode 100755 index 00000000000..571cde06e9b --- /dev/null +++ b/testsuite/expect/test15.26 @@ -0,0 +1,85 @@ +#!/usr/bin/expect +############################################################################ +# Purpose: Test of SLURM functionality +# Test interuption of salloc while waiting for resource allocation. +# +# 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-2007 The Regents of the University of California. +# Copyright (C) 2008-2010 Lawrence Livermore National Security +# Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). +# Written by Morris Jette <jette1@llnl.gov> +# CODE-OCEC-09-009. All rights reserved. +# +# This file is part of SLURM, a resource management program. +# For details, see <https://computing.llnl.gov/linux/slurm/>. +# Please also read the included 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. +############################################################################ +source ./globals + +set test_id "15.26" +set exit_code 0 +set matches 0 + +print_header $test_id + +if { [test_xcpu] } { + send_user "\nWARNING: This test is incompatible with XCPU systems\n" + exit $exit_code +} + +# +# Spawn initial program via srun +# Send the signal while the srun is waiting for a resource allocation +# +set salloc_pid [spawn $salloc -N1 -t1 --begin=noon -v $bin_sleep 1] +expect { + -re "queued and waiting for resources" { + incr matches + exec $bin_kill -INT $salloc_pid + send_user "\nSent SIGINT\n" + exp_continue + } + -re "Job allocation ($number) has been revoked" { + incr matches + exp_continue + } + timeout { + send_user "\nFAILURE: salloc not responding\n" + set matches -999 + slow_kill $salloc_pid + set exit_code 1 + } + eof { + send_user "\nEOF\n" + wait + } +} +if {$matches != 2} { + send_user "\nFAILURE: salloc failed to process SIGINT while waiting for allocation\n" + set exit_code 1 +} + +# +# Post-processing +# +if {$exit_code == 0} { + send_user "\nSUCCESS\n" +} +exit $exit_code -- GitLab