Linux Container Development
 help / color / mirror / Atom feed
From: Sukadev Bhattiprolu <sukadev-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
To: serue-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org
Cc: Containers
	<containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org>
Subject: [PATCH 02/11] Make runtests.sh a wrapper for fileio tests
Date: Fri, 29 Jan 2010 12:37:43 -0800	[thread overview]
Message-ID: <20100129203743.GA26721@us.ibm.com> (raw)
In-Reply-To: <20100129202842.GA25490-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>


From: Sukadev Bhattiprolu <sukadev-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
Date: Fri, 22 Jan 2010 11:55:45 -0800
Subject: [PATCH 02/11] Make runtests.sh a wrapper for fileio tests

Move runtests.sh to run-fileio1.sh and create a runtests.sh that
runs both run-fileio1.sh and run-filelock1.sh. It can later be
extended to run other, possibly all, fileio tests.

Signed-off-by: Sukadev Bhattiprolu <sukadev-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
---
 fileio/run-fileio1.sh |  148 +++++++++++++++++++++++++++++++++++++++++++++++
 fileio/runtests.sh    |  153 +++----------------------------------------------
 2 files changed, 156 insertions(+), 145 deletions(-)
 create mode 100755 fileio/run-fileio1.sh
 mode change 100644 => 100755 fileio/runtests.sh

diff --git a/fileio/run-fileio1.sh b/fileio/run-fileio1.sh
new file mode 100755
index 0000000..c7179ab
--- /dev/null
+++ b/fileio/run-fileio1.sh
@@ -0,0 +1,148 @@
+#!/bin/bash
+# Copyright 2009 IBM Corp.
+# Author: Sukadev Bhattiprolu <sukadev-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
+
+source ../common.sh
+
+# test_case could be a command-line-arg, but since only one test
+# uses this for now, hard code.
+test_case="fileio1"
+
+dir=`mktemp -p . -d -t cr_${test_case}_XXXXXXX` || (echo "mktemp failed"; exit 1)
+echo "Using output dir $dir"
+
+SLOW_DOWN="$dir/slow-down-fileio"
+CKPT_FILE="$dir/checkpoint-${test_case}"
+CKPT_READY="$dir/checkpoint.ready"
+COPY_DONE="$dir/copy.done"
+SRC_FILE="$dir/input-data.1";
+DEST_FILE="$dir/output-data.1";
+DEST_FILE_SNAP="$dir/output-data.1.snap";
+TEST_LOG="$dir/log.${test_case}"
+TEST_LOG_SNAP="$dir/log.${test_case}.snap"
+
+LOG_FILE="$dir/f1-loop.log"
+TEST_CMD="./$test_case"
+NS_EXEC="../ns_exec"
+
+# Make sure no stray TEST_CMD from another run is still going
+killall $TEST_CMD
+
+#echo > $LOG_FILE
+
+#Create the SRC_FILE
+$TEST_CMD -d  $dir -C $SRC_FILE
+
+cnt=1
+sleep_time=3;
+
+NUMTESTS=5
+for testnum in `seq 1 $NUMTESTS`; do
+	echo "----- Iteration $cnt"
+
+	# Copy file slowly, so we can checkpoint
+	touch $SLOW_DOWN
+
+	# Remove CKPT_READY file, start the application and let app tell
+	# us when it is ready
+	rm -f $CKPT_READY;
+	$NS_EXEC -m $TEST_CMD -d $dir -c $SRC_FILE $DEST_FILE &
+	while [ ! -f $CKPT_READY ]; do
+		sleep 1;
+	done;
+
+	# Let it run for a while before checkpointing
+	echo "Created $TEST_CMD process, sleep $sleep_time"
+	sleep $sleep_time
+
+	pid=`pidof $TEST_CMD`
+	if [  "x$pid" == "x" ]; then
+		echo "$TEST_CMD is not running!  pid is $pid.  fail"
+		ps -ef |grep $TEST_CMD
+		exit 1
+	fi
+
+	freeze_pid $pid
+
+	# Checkpoint
+	echo $CHECKPOINT $pid > $CKPT_FILE
+	$CHECKPOINT $pid > $CKPT_FILE
+	ret=$?
+	if [ $ret -ne 0 ]; then
+		echo "===== Checkpoint of $pid failed"
+		ps aux |grep $TEST_CMD
+		exit 1;
+	fi
+
+	# Snapshot the outfile and log file
+	cp $DEST_FILE $DEST_FILE_SNAP
+	cp $TEST_LOG $TEST_LOG_SNAP
+
+	ls -l $SRC_FILE $DEST_FILE
+
+	thaw $pid
+
+	kill -9 $pid
+
+	# Restore the snapshot after the main process has been killed
+	cp ${DEST_FILE}.snap $DEST_FILE
+
+	cp $TEST_LOG_SNAP $TEST_LOG
+
+	# Remove COPY_DONE file. We will wait below for application to
+	# finish copying and let us know.
+	rm -f $COPY_DONE;
+
+	# Restart.
+	$NS_EXEC -m rstrsh $CKPT_FILE &
+	ret=$?
+
+	if [ $ret -ne 0 ]; then
+		echo "===== Restart of $pid failed"
+		ps aux |grep $TEST_CMD
+		exit 1;
+	fi
+
+	# Find pid of restarted test cmd...
+
+	sleep 1;
+	pid=`pidof $TEST_CMD`
+	if [ "x$pid" == "x" ]; then
+		echo "Can't find pid of $TEST_CMD"
+		exit 1
+	fi
+
+	nspid=`pidof $NS_EXEC`
+	if [ "x$nspid" == "x" ]; then
+		echo "Can't find pid of $NS_EXEC"
+		exit 1
+	fi
+
+	# ...then zip through rest of copy.
+	rm $SLOW_DOWN
+
+	wait $nspid;
+	ret=$?
+
+	echo "$nspid exited, status $ret"
+
+	#ls -l $SRC_FILE $DEST_FILE $CKPT_FILE
+
+	/usr/bin/cmp $SRC_FILE $DEST_FILE
+	if [ $? -ne 0 ]; then
+		echo "file copy ($SRC_FILE -> $DEST_FILE) failed after restart"
+		exit 1;
+	fi
+
+	cnt=$((cnt+1))
+
+	# Change delay so next checkpoint happens at a different point
+	sleep_time=$((sleep_time+1))
+	if [ $sleep_time -gt 10 ]; then
+		sleep_time=2;
+	fi
+done
+
+echo PASS
+
+exit 0
diff --git a/fileio/runtests.sh b/fileio/runtests.sh
old mode 100644
new mode 100755
index 69758f0..3e3e495
--- a/fileio/runtests.sh
+++ b/fileio/runtests.sh
@@ -1,148 +1,11 @@
 #!/bin/bash
-# Copyright 2009 IBM Corp.
-# Author: Sukadev Bhattiprolu <sukadev-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
 
-source ../common.sh
+echo
+echo "****** $0: Running test: fileio1"
+echo
+./run-fileio1.sh
 
-# test_case could be a command-line-arg, but since only one test
-# uses this for now, hard code.
-test_case="fileio1"
-
-dir=`mktemp -p . -d -t cr_${test_case}_XXXXXXX` || (echo "mktemp failed"; exit 1)
-echo "Using output dir $dir"
-
-SLOW_DOWN="$dir/slow-down-fileio"
-CKPT_FILE="$dir/checkpoint-${test_case}"
-CKPT_READY="$dir/checkpoint.ready"
-COPY_DONE="$dir/copy.done"
-SRC_FILE="$dir/input-data.1";
-DEST_FILE="$dir/output-data.1";
-DEST_FILE_SNAP="$dir/output-data.1.snap";
-TEST_LOG="$dir/log.${test_case}"
-TEST_LOG_SNAP="$dir/log.${test_case}.snap"
-
-LOG_FILE="$dir/f1-loop.log"
-TEST_CMD="./$test_case"
-NS_EXEC="../ns_exec"
-
-# Make sure no stray TEST_CMD from another run is still going
-killall $TEST_CMD
-
-#echo > $LOG_FILE
-
-#Create the SRC_FILE
-$TEST_CMD -d  $dir -C $SRC_FILE
-
-cnt=1
-sleep_time=3;
-
-NUMTESTS=5
-for testnum in `seq 1 $NUMTESTS`; do
-	echo "----- Iteration $cnt"
-
-	# Copy file slowly, so we can checkpoint
-	touch $SLOW_DOWN
-
-	# Remove CKPT_READY file, start the application and let app tell
-	# us when it is ready
-	rm -f $CKPT_READY;
-	$NS_EXEC -m $TEST_CMD -d $dir -c $SRC_FILE $DEST_FILE &
-	while [ ! -f $CKPT_READY ]; do
-		sleep 1;
-	done;
-
-	# Let it run for a while before checkpointing
-	echo "Created $TEST_CMD process, sleep $sleep_time"
-	sleep $sleep_time
-
-	pid=`pidof $TEST_CMD`
-	if [  "x$pid" == "x" ]; then
-		echo "$TEST_CMD is not running!  pid is $pid.  fail"
-		ps -ef |grep $TEST_CMD
-		exit 1
-	fi
-
-	freeze_pid $pid
-
-	# Checkpoint
-	echo $CHECKPOINT $pid > $CKPT_FILE
-	$CHECKPOINT $pid > $CKPT_FILE
-	ret=$?
-	if [ $ret -ne 0 ]; then
-		echo "===== Checkpoint of $pid failed"
-		ps aux |grep $TEST_CMD
-		exit 1;
-	fi
-
-	# Snapshot the outfile and log file
-	cp $DEST_FILE $DEST_FILE_SNAP
-	cp $TEST_LOG $TEST_LOG_SNAP 
-
-	ls -l $SRC_FILE $DEST_FILE
-
-	thaw $pid
-
-	kill -9 $pid
-
-	# Restore the snapshot after the main process has been killed
-	cp ${DEST_FILE}.snap $DEST_FILE
-
-	cp $TEST_LOG_SNAP $TEST_LOG
-
-	# Remove COPY_DONE file. We will wait below for application to
-	# finish copying and let us know.
-	rm -f $COPY_DONE;
-
-	# Restart.
-	$NS_EXEC -m rstrsh $CKPT_FILE &
-	ret=$?
-
-	if [ $ret -ne 0 ]; then
-		echo "===== Restart of $pid failed"
-		ps aux |grep $TEST_CMD
-		exit 1;
-	fi
-
-	# Find pid of restarted test cmd...
-
-	sleep 1;
-	pid=`pidof $TEST_CMD`
-	if [ "x$pid" == "x" ]; then
-		echo "Can't find pid of $TEST_CMD"
-		exit 1
-	fi
-
-	nspid=`pidof $NS_EXEC`
-	if [ "x$nspid" == "x" ]; then
-		echo "Can't find pid of $NS_EXEC"
-		exit 1
-	fi
-
-	# ...then zip through rest of copy.
-	rm $SLOW_DOWN
-
-	wait $nspid;
-	ret=$?
-
-	echo "$nspid exited, status $ret"
-
-	#ls -l $SRC_FILE $DEST_FILE $CKPT_FILE
-
-	/usr/bin/cmp $SRC_FILE $DEST_FILE
-	if [ $? -ne 0 ]; then
-		echo "file copy ($SRC_FILE -> $DEST_FILE) failed after restart"
-		exit 1;
-	fi
-
-	cnt=$((cnt+1))
-
-	# Change delay so next checkpoint happens at a different point
-	sleep_time=$((sleep_time+1))
-	if [ $sleep_time -gt 10 ]; then
-		sleep_time=2;
-	fi
-done
-
-echo PASS
-
-exit 0
+echo
+echo "****** $0: Running test: filelock1"
+echo
+./run-filelock1.sh
-- 
1.6.0.4

  parent reply	other threads:[~2010-01-29 20:37 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-29 20:28 [PATCH 01/11] runtests.sh: Make test bit more generic Sukadev Bhattiprolu
     [not found] ` <20100129202842.GA25490-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2010-01-29 20:37   ` Sukadev Bhattiprolu [this message]
2010-01-29 20:38   ` [PATCH 03/11] Check for failure while waiting for checkpoint-ready Sukadev Bhattiprolu
2010-01-29 20:42   ` [PATCH 04/11] Rename run-filelock1 to run-fcntltests.sh Sukadev Bhattiprolu
2010-01-29 20:42   ` [PATCH 05/11] Move event-notifications to libcrtest/common.c Sukadev Bhattiprolu
     [not found]     ` <20100129204228.GD26721-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2010-01-30  2:44       ` Serge E. Hallyn
2010-01-29 20:42   ` [PATCH 06/11] filelease1: Test restore of file leases Sukadev Bhattiprolu
2010-01-29 20:43   ` [PATCH 07/11] fsetown1: Test async I/O notification after restart Sukadev Bhattiprolu
2010-01-29 20:43   ` [PATCH 08/11] filelock1: Extend for mandatory locks Sukadev Bhattiprolu
2010-01-29 20:43   ` [PATCH 09/11] pthread1: Don't close stderr() before opening log Sukadev Bhattiprolu
2010-01-29 20:44   ` [PATCH 10/11] filelock2: Test restart of process in F_GETLK Sukadev Bhattiprolu
2010-01-29 20:44   ` [PATCH 11/11] filelease2: Test C/R during lease-break-interval Sukadev Bhattiprolu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100129203743.GA26721@us.ibm.com \
    --to=sukadev-23vcf4htsmix0ybbhkvfkdbpr1lh4cv8@public.gmane.org \
    --cc=containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
    --cc=serue-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox