#!/usr/bin/env expect ############################################################################ # Purpose: Establish global state information for Slurm hetergeneous job tests # # To define site-specific state information, set the values in a file # named 'globals.local'. Those values will override any specified here. # for example: # # $ cat globals.local # set slurm_dir "/usr/local" # set mpicc "/usr/local/bin/mpicc" # ############################################################################ # Copyright (C) 2016 SchedMD LLC. # Written by Isaac Hartung # This file is part of SLURM, a resource management program. # For details, see . # Please also read the supplied 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 # parse the string contained in HET_JOB_ID_SET # only use if there are three components to # het_job proc parse_id_set {id_set job_id} { set result [list] set r1 [split $id_set ,] if {[llength $r1]==3} { set result $r1 } elseif {[llength $r1]==1} { set r1 [split $id_set -] lappend result [lindex $r1 0] lappend result [expr {[lindex $r1 0]+1}] lappend result [lindex $r1 1] } elseif {[string first - [lindex $r1 0]] == -1} { lappend result [lindex $r1 0] set r1 [split [lindex $r1 1] -] lappend result [lindex $r1 0] lappend result [lindex $r1 1] } else { lappend result [lindex $r1 1] set r1 [split [lindex $r1 0] -] lappend result [lindex $r1 0] lappend result [lindex $r1 1] } set result [lsearch -all -inline -not -exact $result $job_id] return $result }