From ea5dc8b16f25a8c021d2d377cec9d69c84308e12 Mon Sep 17 00:00:00 2001 From: Moe Jette <jette1@llnl.gov> Date: Thu, 23 Aug 2007 20:38:55 +0000 Subject: [PATCH] add very basic checkpoint test --- testsuite/expect/README | 3 +- testsuite/expect/test1.12 | 83 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+), 1 deletion(-) create mode 100755 testsuite/expect/test1.12 diff --git a/testsuite/expect/README b/testsuite/expect/README index 335243f7b10..1846e8a2653 100644 --- a/testsuite/expect/README +++ b/testsuite/expect/README @@ -69,7 +69,8 @@ test1.8 Confirm that basic srun stdin, stdout, and stderr options work test1.9 Test of srun verbose mode (--verbose option). test1.10 Test of srun/slurmd debug mode (--debug option). test1.11 Test job name option (--job-name). -test1.12 REMOVED +test1.12 Test of --checkpoint option. This does not validate the + checkpoint file itself. test1.13 Test of immediate allocation option (--immediate option). test1.14 REMOVED test1.15 Test of wait option (--wait option). diff --git a/testsuite/expect/test1.12 b/testsuite/expect/test1.12 new file mode 100755 index 00000000000..0de3b62d179 --- /dev/null +++ b/testsuite/expect/test1.12 @@ -0,0 +1,83 @@ +#!/usr/bin/expect +############################################################################ +# Purpose: Test of SLURM functionality +# Test of --checkpoint option. This does not validate the +# checkpoint file itself. +# +# 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) 2007 The Regents of the University of California. +# Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). +# Written by Morris Jette <jette1@llnl.gov> +# UCRL-CODE-226842. +# +# 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.12" +set exit_code 0 +set file_in "test$test_id.input" +set ckpt_in 12 +set ckpt_out -1 + +print_header $test_id + +# +# Submit a slurm job that print it's info from scontrol +# +exec $bin_rm -f $file_in +make_bash_script $file_in " + $scontrol show step \$SLURM_JOBID.\$SLURM_STEPID +" + +set srun_pid [spawn $srun -N1 -t1 --checkpoint=$ckpt_in $file_in] +expect { + -re "Checkpoint=($number)" { + set ckpt_out $expect_out(1,string) + exp_continue + } + -re "Unable to contact" { + send_user "\nFAILURE: slurm appears to be down\n" + exit 1 + } + timeout { + send_user "\nFAILURE: srun not responding\n" + slow_kill $srun_pid + set exit_code 1 + } + eof { + wait + } +} + +if {$ckpt_out == -1} { + send_user "\nFAILURE: No Checkpoint time reported for job step\n" + set exit_code 1 +} elseif {$ckpt_in != $ckpt_out} { + send_user "\nFAILURE: No Checkpoint time not set properly\n" + set exit_code 1 +} + +if {$exit_code == 0} { + exec $bin_rm -f $file_in + send_user "\nSUCCESS\n" +} +exit $exit_code -- GitLab