| #!/usr/bin/env expect |
| ############################################################################ |
| # Purpose: Test of Slurm sreport functionality |
| # sreport h, n, p, P, t, V options. |
| ############################################################################ |
| # Copyright (C) 2009 Lawrence Livermore National Security. |
| # Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). |
| # Written by Joseph Donaghy <donaghy1@llnl.gov> |
| # CODE-OCEC-09-009. All rights reserved. |
| # |
| # This file is part of Slurm, a resource management program. |
| # For details, see <https://slurm.schedmd.com/>. |
| # 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 timeout 60 |
| |
| # |
| # Check accounting config and bail if not found. |
| # |
| if {[get_config_param "AccountingStorageType"] ne "accounting_storage/slurmdbd"} { |
| skip "This test can't be run without a usable AccountStorageType" |
| } |
| |
| ################################################################ |
| # |
| # Proc: sreport_opt |
| # |
| # Purpose: Pass sreport options and test |
| # |
| # Returns: Number of matches. |
| # |
| # Input: Switch options not requiring arguments |
| # |
| ################################################################ |
| |
| proc sreport_opt { soption } { |
| global number sreport |
| set debug 0 |
| set matches 0 |
| set not_support 0 |
| log_debug "$sreport -$soption " |
| |
| if { $soption == "-help"|| $soption == "-usage" || $soption == "h" } { |
| |
| spawn $sreport -$soption |
| expect { |
| -re "Slurm accounting storage is disabled" { |
| set not_support 1 |
| exp_continue |
| } |
| -re "sreport...OPTION.....COMMAND" { |
| if {$debug} {log_debug "Match1"} |
| incr matches |
| exp_continue |
| } |
| -re "Valid .OPTION. values are" { |
| if {$debug} {log_debug "Match2"} |
| incr matches |
| exp_continue |
| } |
| -re "Valid .COMMAND. values are" { |
| if {$debug} {log_debug "Match3"} |
| incr matches |
| exp_continue |
| } |
| timeout { |
| fail "sreport not responding" |
| } |
| eof { |
| wait |
| } |
| } |
| |
| if {$not_support == 1} { |
| skip "Can not test without accounting enabled" |
| } |
| |
| subtest {$matches == 3} "Verify sreport -$soption option" |
| } |
| |
| if { $soption == "-noheader" || $soption == "n" } { |
| |
| spawn $sreport -$soption job sizes |
| expect { |
| -re "Slurm accounting storage is disabled" { |
| set not_support 1 |
| exp_continue |
| } |
| -re "Cluster|Account|0-49 CPUs|50-249 CPUs|250-499 CPUs|500-999 CPUs|1000 CPUs|of cluster" { |
| if {$debug} {log_debug "Match4"} |
| incr matches |
| exp_continue |
| } |
| timeout { |
| fail "sreport not responding" |
| } |
| eof { |
| wait |
| } |
| } |
| |
| if {$not_support == 1} { |
| skip "Can not test without accounting enabled" |
| } |
| subtest {$matches == 0} "Verify sreport -$soption option" |
| } |
| |
| if { $soption == "-parsable" || $soption == "p" } { |
| |
| spawn $sreport -$soption job sizes |
| expect { |
| -re "Slurm accounting storage is disabled" { |
| set not_support 1 |
| exp_continue |
| } |
| -re "Cluster\\|Account\\|0-49 CPUs\\|50-249 CPUs\\|250-499 CPUs\\|" { |
| if {$debug} {log_debug "Match5"} |
| incr matches |
| exp_continue |
| } |
| -re "500-999 CPUs\\|>= 1000 CPUs\\|Total Count\\|% of cluster\\|" { |
| if {$debug} {log_debug "Match6"} |
| incr matches |
| exp_continue |
| } |
| timeout { |
| fail "sreport not responding" |
| } |
| eof { |
| wait |
| } |
| } |
| |
| if {$not_support != 0} { |
| skip "Can not test without accounting enabled" |
| } |
| subtest {$matches == 2} "Verify sreport -$soption option" |
| } |
| |
| if { $soption == "-parsable2" || $soption == "P" } { |
| |
| spawn $sreport -$soption job sizes |
| expect { |
| -re "Slurm accounting storage is disabled" { |
| set not_support 1 |
| exp_continue |
| } |
| -re "Cluster\\|Account\\|0-49 CPUs\\|50-249 CPUs\\|250-499 CPUs\\|" { |
| if {$debug} {log_debug "Match7"} |
| incr matches |
| exp_continue |
| } |
| -re "500-999 CPUs\\|>= 1000 CPUs\\|Total Count\\|% of cluster" { |
| if {$debug} {log_debug "Match8"} |
| incr matches |
| exp_continue |
| } |
| timeout { |
| fail "sreport not responding" |
| } |
| eof { |
| wait |
| } |
| } |
| |
| if {$not_support == 1} { |
| skip "Can not test without accounting enabled" |
| } |
| |
| subtest {$matches == 2} "Verify sreport -$soption option" |
| } |
| |
| if { $soption == "-version" || $soption == "V" } { |
| |
| spawn $sreport -$soption |
| expect { |
| -re "Slurm accounting storage is disabled" { |
| set not_support 1 |
| exp_continue |
| } |
| -re "slurm $number.$number.$number" { |
| if {$debug} {log_debug "Match9"} |
| incr matches |
| exp_continue |
| } |
| timeout { |
| fail "sreport not responding" |
| } |
| eof { |
| wait |
| } |
| } |
| |
| if {$not_support == 1} { |
| skip "Can not test without accounting enabled" |
| } |
| |
| subtest {$matches == 1} "Verify sreport -$soption option" |
| return $matches |
| } |
| } |
| |
| ################################################################ |
| |
| sreport_opt h |
| sreport_opt -help |
| sreport_opt -usage |
| sreport_opt n |
| sreport_opt -noheader |
| sreport_opt p |
| sreport_opt -parsable |
| sreport_opt P |
| sreport_opt -parsable2 |
| sreport_opt V |
| sreport_opt -version |