diff --git a/testsuite/expect/Makefile.am b/testsuite/expect/Makefile.am index a8e133394bd92e82d4e1ba1b2a44a483109f4d3d..5f0ca52bffe82e438d18fbadda0a581f76d2995a 100644 --- a/testsuite/expect/Makefile.am +++ b/testsuite/expect/Makefile.am @@ -103,6 +103,7 @@ EXTRA_DIST = \ test2.9 \ test2.10 \ test2.11 \ + test2.12 \ test3.1 \ test3.2 \ test3.3 \ diff --git a/testsuite/expect/Makefile.in b/testsuite/expect/Makefile.in index ab59b71c6ec96bea173f1b1b6f141cbcfeb0406d..20bdb0ff89eea35971935eb49651ae0dabadacd0 100644 --- a/testsuite/expect/Makefile.in +++ b/testsuite/expect/Makefile.in @@ -347,6 +347,7 @@ EXTRA_DIST = \ test2.9 \ test2.10 \ test2.11 \ + test2.12 \ test3.1 \ test3.2 \ test3.3 \ diff --git a/testsuite/expect/README b/testsuite/expect/README index d13ee304c40359c8353f84b50e305a5fd3d93179..8da01f22b2d7e2e398c7baff7897f4ec723bd585 100644 --- a/testsuite/expect/README +++ b/testsuite/expect/README @@ -199,6 +199,7 @@ 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. +test2.12 Validate scontrol show topology option. test3.# Testing of scontrol options (best run as SlurmUser or root). diff --git a/testsuite/expect/test2.12 b/testsuite/expect/test2.12 new file mode 100755 index 0000000000000000000000000000000000000000..6753b534a3fa69f8b54e82de485fccb6d2af9840 --- /dev/null +++ b/testsuite/expect/test2.12 @@ -0,0 +1,112 @@ +#!/usr/bin/expect +############################################################################ +# Purpose: Test of SLURM functionality +# Validate scontrol show topology 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) 2009 The Regents of the University of California. +# 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 "2.12" +set exit_code 0 + +print_header $test_id + +# test if running with Topology/Tree +set topology_tree 0 +log_user 0 +spawn $scontrol show config +expect { + -re "TopologyPlugin *= *topology/tree" { + set topology_tree 1 + exp_continue + } + eof { + wait + } +} +log_user 1 + +if {$topology_tree == 0} { + send_user "\nWARNING: This test is only valid with a topology/tree configuration\n" + exit 0 +} + +# +# Report the slurm configuration +# +set matches 0 +spawn $scontrol show topology +expect { + -re "SwitchName=($alpha_numeric_under)" { + if {$matches == 0} { + set switch_name $expect_out(1,string) + } + incr matches + } + timeout { + send_user "\nFAILURE: scontrol not responding\n" + set exit_code 1 + } + eof { + wait + } +} + +if {$matches == 0} { + send_user "\nFAILURE: scontrol reported no switches\n" + exit 1 +} + +# +# Report one slurm switch +# +set matches 0 +spawn $scontrol show topology $switch_name +expect { + -re "SwitchName" { + incr matches + exp_continue + } + timeout { + send_user "\nFAILURE: scontrol not responding\n" + set exit_code 1 + } + eof { + wait + } +} +if {$matches != 1} { + send_user "\nFAILURE: scontrol topology with switch name filter failed\n" + set exit_code 1 +} + +if {$exit_code == 0} { + send_user "\nSUCCESS\n" +} +exit $exit_code