diff --git a/testsuite/expect/README b/testsuite/expect/README index 53b2fa9172003c9e9270b0a0902d42ee2de528b4..a38429ea40b6399b9d15f711ab14a940ac87b178 100644 --- a/testsuite/expect/README +++ b/testsuite/expect/README @@ -359,6 +359,9 @@ test15.18 Test of running non-existant job, confirm timely termination. test15.19 Confirm that a job executes with the proper node count (--nodes option). test15.20 Test of contiguous option with multiple nodes (--contiguous option). +test15.21 Test of contiguous option with multiple nodes (--contiguous option). +test15.22 Test of partition specification on job submission (--partition + option). test16.# Testing of sattach options. diff --git a/testsuite/expect/test15.22 b/testsuite/expect/test15.22 new file mode 100755 index 0000000000000000000000000000000000000000..d9decbdfec84cd191532397e52353a34a98cbc47 --- /dev/null +++ b/testsuite/expect/test15.22 @@ -0,0 +1,186 @@ +#!/usr/bin/expect +############################################################################ +# Purpose: Test of SLURM functionality +# Test of partition specification on job submission (--partition +# option). +# +# Output: "TEST: #.#" followed by "SUCCESS" if test was successful, OR +# "WARNING: ..." with an explanation of why the test can't be made, 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., +# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. +############################################################################ +source ./globals + +set test_id "15.22" +set def_part_name "" +set exit_code 0 +set file_in "test$test_id.input" +set job_id 0 +set other_part_name "" + +print_header $test_id + +# +# Identify the partitions in the cluster, identifying the default +# +spawn $sinfo --summarize +expect { + -re "($end_of_line)($alpha_numeric)(\[ \*\]) *up" { + if (![string compare $expect_out(3,string) "*"]) { + set def_part_name $expect_out(2,string) + } else { + set other_part_name $expect_out(2,string) + } + exp_continue + } + -re "Unable to contact" { + send_user "\nFAILURE: slurm appears to be down\n" + exit 1 + } + timeout { + send_user "\nFAILURE: sinfo not responding\n" + set exit_code 1 + } + eof { + wait + } +} + +# +# Submit a job explicitly to the default partition +# +set job_id 0 +set timeout $max_job_delay +set salloc_pid [spawn $salloc --partition=$def_part_name -t1 $bin_sleep 1] +expect { + -re "Granted job allocation ($number)" { + set job_id $expect_out(1,string) + exp_continue + } + timeout { + send_user "\nFAILURE: salloc not responding\n" + if {$job_id == 0} { + slow_kill $salloc_pid + } else { + cancel_job $job_id + } + set exit_code 1 + exp_continue + } + eof { + wait + } +} +# Confirm the job's partition +if {$job_id == 0} { + send_user "\nFAILURE: job submit failure\n" + set exit_code 1 +} else { + set read_part "" + spawn $scontrol show job $job_id + expect { + -re "Partition=($alpha_numeric)" { + set read_part $expect_out(1,string) + exp_continue + } + timeout { + send_user "\nFAILURE: scontrol not responding\n" + set exit_code 1 + } + eof { + wait + } + } + if ([string compare $read_part $def_part_name]) { + send_user "\nFAILURE: Improper partition selected\n" + set exit_code 1 + } + cancel_job $job_id +} + +# +# Test if a non-default partition exists, terminate if none +# +if (![string compare $other_part_name ""]) { + send_user "\nWARNING: can't test salloc partition option" + send_user " only the default partition exists\n" + exit $exit_code +} + +# +# Submit job explicitly to a non-default partition +# +set job_id 0 +set salloc_pid [spawn $salloc --partition=$other_part_name -t1 $bin_sleep 1] +expect { + -re "Granted job allocation ($number)" { + set job_id $expect_out(1,string) + exp_continue + } + timeout { + send_user "\nFAILURE: srun not responding\n" + if {$job_id == 0} { + slow_kill $salloc_pid + } else { + cancel_job $job_id + } + set exit_code 1 + exp_continue + } + eof { + wait + } +} +# Confirm the job's partition +if {$job_id == 0} { + send_user "\nFAILURE: batch submit failure\n" + set exit_code 1 +} else { + set read_part "" + spawn $scontrol show job $job_id + expect { + -re "Partition=($alpha_numeric)" { + set read_part $expect_out(1,string) + exp_continue + } + timeout { + send_user "\nFAILURE: scontrol not responding\n" + set exit_code 1 + } + eof { + wait + } + } + if ([string compare $read_part $other_part_name]) { + send_user "\nFAILURE: Improper partition selected\n" + set exit_code 1 + } + cancel_job $job_id +} + +if {$exit_code == 0} { + send_user "\nSUCCESS\n" +} +exit $exit_code