Module Name: src
Committed By: mlelstv
Date: Sat Apr 20 09:00:03 UTC 2013
Modified Files:
src/tests/kernel: t_umountstress.sh
Log Message:
Now use correct test files and pass child failures to test function.
To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/tests/kernel/t_umountstress.sh
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/tests/kernel/t_umountstress.sh
diff -u src/tests/kernel/t_umountstress.sh:1.1 src/tests/kernel/t_umountstress.sh:1.2
--- src/tests/kernel/t_umountstress.sh:1.1 Tue Apr 16 22:05:44 2013
+++ src/tests/kernel/t_umountstress.sh Sat Apr 20 09:00:03 2013
@@ -1,4 +1,4 @@
-# $NetBSD: t_umountstress.sh,v 1.1 2013/04/16 22:05:44 mlelstv Exp $
+# $NetBSD: t_umountstress.sh,v 1.2 2013/04/20 09:00:03 mlelstv Exp $
#
# Copyright (c) 2013 The NetBSD Foundation, Inc.
# All rights reserved.
@@ -63,42 +63,54 @@ EOF
echo "*** Testing unmount"
touch ${TMPMP}/hold
- exec 3< ${TMPMP}/hold
+ exec 9< ${TMPMP}/hold
(
- for l in 0 1 2 3 4 5 6 7 8 9 10; do
- for i in 0 1 2 3; do
for j in 0 1 2 3 4 5 6 7 8 9; do
for k in 0 1 2 3 4 5 6 7 8 9; do
- dd msgfmt=quiet if=/dev/zero count=1 of=test$i$j$k
- if [ $? -ne 0 ]; then
- atf_fail "File operation failed"
+ if ! dd msgfmt=quiet if=/dev/zero \
+ count=1 of=${TMPMP}/test$i$j$k; then
+ echo 1
+ exit
fi
done
done
- done
- done
- ) &
+ echo 0
+ ) > result &
busypid=$!
while kill 2>/dev/null -0 $busypid; do
if err=$(umount ${TMPMP} 2>&1); then
kill $busypid
+ exec 9<&-
wait
atf_fail "Unmount succeeded while busy"
- else
- case $err in
- *:\ Device\ busy)
- ;;
- *)
- kill $busypid
- wait
- atf_fail "Unmount failed: $err"
- ;;
- esac
+ return
fi
+
+ case $err in
+ *:\ Device\ busy)
+ ;;
+ *)
+ kill $busypid
+ exec 9<&-
+ wait
+ atf_fail "Unmount failed: $err"
+ return
+ ;;
+ esac
done
+
+ exec 9<&-
wait
+
+ rc=`cat result`
+ rm -f result
+
+ case $rc in
+ 0) ;;
+ *) atf_fail "File operation failed with rc $rc"
+ esac
}
umountstress_cleanup()
{