Skip to content
Snippets Groups Projects
Commit a8692baf authored by Christopher J. Morrone's avatar Christopher J. Morrone
Browse files

Add test for buffered standard IO with really long lines

parent 361c4d2d
No related branches found
No related tags found
No related merge requests found
......@@ -131,6 +131,7 @@ test1.54 Test of running different executables with different arguments
for each task (--multi-prog option).
test1.55 Make certain that srun behaves when its controlling terminal
disappears.
test1.56 Test buffered standard IO with really long lines
**NOTE** The following tests attempt to utilize multiple CPUs or partitions,
The test will print "WARNING" and terminate with an exit code of
......
#!/usr/bin/expect
############################################################################
# Purpose: Test of SLURM functionality
# Test buffered standard IO with really long lines
#
# 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) 2006 The Regents of the University of California.
# Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
# Written by Christopher J. Morrone <morrone2@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 "1.56"
set file_in "test$test_id.input"
set file_out "test$test_id.output"
set slurmstepd_cbuf_size 4096
print_header $test_id
set short_string "foo bar baz "
set count [expr $slurmstepd_cbuf_size / [string length $short_string] + 1]
set really_big_string [string repeat $short_string $count]
unset count
send_user "really_big_string is [string length $really_big_string] bytes\n"
#
# Create a test input file
#
exec $bin_rm -f $file_in $file_out
set file [open $file_in "w"]
puts $file $really_big_string
for {set i 0} {$i < 100} {incr i} {
puts $file $short_string
}
close $file
#
# Launch the test script
#
spawn $srun -v -n1 --input=$file_in --output=$file_out --error=- cat
set timeout 30
expect {
-re {launching (([0-9]+)\.[0-9]+)} {
set stepid $expect_out(1,string)
set jobid $expect_out(2,string)
}
timeout {
send_user "\nFAILURE: Failed to launch test program through srun\n"
catch {exec $scancel $jobid}
exit 1
}
}
#send_user "job id: $jobid, step id: $stepid\n"
expect {
eof {}
timeout {
send_user "\nFAILURE: srun is hung\n"
catch {exec $scancel $jobid}
exit 1
}
}
#
# Make sure that the contents of the input and output files are the same
#
if {[catch {exec diff $file_in $file_out}]} {
send_user "\nFAILURE: File $file_out does not match file $file_in\n"
exit 1
}
send_user "\nSUCCESS\n"
exec $bin_rm -f $file_in $file_out
exit 0
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment