summaryrefslogtreecommitdiff
path: root/qa/417
diff options
context:
space:
mode:
Diffstat (limited to 'qa/417')
-rwxr-xr-xqa/417100
1 files changed, 100 insertions, 0 deletions
diff --git a/qa/417 b/qa/417
new file mode 100755
index 0000000..3ecacf7
--- /dev/null
+++ b/qa/417
@@ -0,0 +1,100 @@
+#! /bin/sh
+# PCP QA Test No. 417
+# Exercise tools with a corrupted archive
+#
+# Copyright (c) 1995-2002 Silicon Graphics, Inc. All Rights Reserved.
+#
+
+seq=`basename $0`
+echo "QA output created by $seq"
+
+# get standard filters
+. ./common.product
+. ./common.filter
+. ./common.check
+
+status=1 # failure is the default!
+trap "cd $here; rm -rf $tmp; rm -f $tmp.*; exit \$status" 0 1 2 3 15
+
+_check_core()
+{
+ if [ "`echo core*`" != "core*" ]
+ then
+ $PCP_ECHO_PROG $PCP_ECHO_N "Dumped core! (saved in $here as""$PCP_ECHO_C"
+ for c in core*
+ do
+ $sudo mv $c $here/$seq.$c
+ $PCP_ECHO_PROG $PCP_ECHO_N " $seq.$c""$PCP_ECHO_C"
+ done
+ echo ")"
+ fi
+}
+
+rm -rf $tmp
+mkdir $tmp
+cd $tmp
+
+# make the corrupted archive
+arch=src/bigace_v2
+cp $here/$arch.meta bad.meta
+dd ibs=1 count=512 if=$here/$arch.index of=bad.index 2>/dev/null
+dd ibs=1 count=512 if=$here/$arch.index >>bad.index 2>/dev/null
+dd if=$here/$arch.0 ibs=1 count=2052 of=bad.0 2>/dev/null
+dd if=/dev/zero ibs=1 count=1024 >>bad.0 2>/dev/null
+
+# deal with an annoying libc error ... using TZ=:Australia/Melbourne
+# causes the -z option to report the wrong time, at least for some
+# times of the year
+#
+export TZ=EST-10
+
+# real QA test starts here
+
+echo
+echo "=== pminfo ==="
+pminfo -O0 -n $here/src/bigace.pmns -a bad >$tmp.out 2>$tmp.err
+cat $tmp.err $tmp.out
+_check_core
+
+echo
+echo "=== pminfo -f irix ==="
+pminfo -O0 -n $here/src/bigace.pmns -a bad -f irix
+_check_core
+
+echo
+echo "=== pmdumplog -t ==="
+pmdumplog -n $here/src/bigace.pmns -z -t bad
+_check_core
+
+echo
+echo "=== pmdumplog -t, no index ==="
+mv bad.index save.index
+pmdumplog -n $here/src/bigace.pmns -z -t bad
+mv save.index bad.index
+_check_core
+
+echo
+echo "=== pmdumplog -l ==="
+pmdumplog -n $here/src/bigace.pmns -z -l bad
+_check_core
+
+echo
+echo "=== pmdumplog -L ==="
+pmdumplog -n $here/src/bigace.pmns -z -L bad
+_check_core
+
+echo
+echo "=== pmdumplog -m ==="
+pmdumplog -n $here/src/bigace.pmns -z -m bad >$tmp.out 2>$tmp.err
+cat $tmp.err $tmp.out
+_check_core
+
+echo
+echo "=== pmlogsummary ==="
+pmlogsummary -n $here/src/bigace.pmns bad >$tmp.out 2>$tmp.err
+cat $tmp.err $tmp.out | sed -e 's/^\*//g'
+_check_core
+
+# success, all done
+status=0
+exit