|  | #!/usr/bin/env expect | 
|  | ############################################################################ | 
|  | # Purpose: Test of Slurm functionality | 
|  | #          Validate scontrol pidinfo command. | 
|  | ############################################################################ | 
|  | # 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> | 
|  | # 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 file_in     "$test_dir/input" | 
|  | set file_out    "$test_dir/output" | 
|  | set file_err    "$test_dir/error" | 
|  | set job_id      0 | 
|  | set scontrol_id 0 | 
|  | set rem_time    0 | 
|  |  | 
|  | proc cleanup {} { | 
|  | global job_id | 
|  |  | 
|  | cancel_job $job_id | 
|  | } | 
|  |  | 
|  | # | 
|  | # Build input script file | 
|  | # | 
|  | make_bash_script $file_in "$scontrol pidinfo \$\$" | 
|  |  | 
|  | # | 
|  | # Spawn a srun batch job that uses stdout/err and confirm their contents | 
|  | # | 
|  | set job_id [submit_job -fail "--output=$file_out --error=$file_err -t1 $file_in"] | 
|  |  | 
|  | # | 
|  | # Wait for job to complete | 
|  | # | 
|  | wait_for_job -fail $job_id "DONE" | 
|  |  | 
|  | # | 
|  | # Verify job_id in output file | 
|  | # | 
|  | wait_for_file -fail $file_out | 
|  | set output [run_command_output -fail "$bin_cat $file_out"] | 
|  |  | 
|  | subtest {[regexp "JobId=($number)" $output - scontrol_id]} "Verify JobId message is printed" | 
|  | subtest {$job_id == $scontrol_id} "Verify scontrol pidinfo error" | 
|  | subtest {[regexp "Job remaining time is ($number)" $output - rem_time]} "Verify remaining time message is printed" | 
|  | subtest [tolerance 60 $rem_time -5] "Verify Job remaining time is within expected tolerance" | 
|  | subtest {![regexp "error" $output - scontrol_id]} "Verify that no error was printed" |