summaryrefslogtreecommitdiff
path: root/qa/492
diff options
context:
space:
mode:
Diffstat (limited to 'qa/492')
-rwxr-xr-xqa/492121
1 files changed, 121 insertions, 0 deletions
diff --git a/qa/492 b/qa/492
new file mode 100755
index 0000000..f9277ce
--- /dev/null
+++ b/qa/492
@@ -0,0 +1,121 @@
+#!/bin/sh
+# PCP QA Test No. 492
+# pmlogrewrite error cases
+#
+# Copyright (c) 2011 Ken McDonell. All Rights Reserved.
+#
+
+seq=`basename $0`
+echo "QA output created by $seq"
+
+# get standard filters
+. ./common.product
+. ./common.filter
+. ./common.check
+
+status=0 # success is the default!
+$sudo rm -rf $tmp.* $seq.full
+trap "rm -rf $tmp.*; exit \$status" 0 1 2 3 15
+
+_filter()
+{
+ sed \
+ -e "s;$tmp;TMP;g"
+}
+
+_filter_usage()
+{
+ sed \
+ -e '/illegal option/{
+s/illegal/invalid/
+s/.$/'"'&'"'/
+}' \
+ -e '/invalid option/s/[^'"'"']$/'"'&'"'/'
+}
+
+
+_cnt_logrecs()
+{
+ if [ ! -f $1.0 ]
+ then
+ echo no file
+ else
+ pmdumplog $1 2>/dev/null | grep '^[0-9]' | wc -l | sed -e 's/ //g'
+ fi
+}
+
+# real QA test starts here
+echo "=== usage cases ==="
+pmlogrewrite -x in out 2>&1 | _filter_usage
+echo
+pmlogrewrite in out foo
+echo
+pmlogrewrite -c no.such.file in out
+echo
+pmlogrewrite -c /dev/tty in out
+echo
+touch $tmp.forbidden
+chmod 0 $tmp.forbidden
+pmlogrewrite -c $tmp.forbidden src/rattle $tmp.new 2>&1 | _filter
+rm -f $tmp.new.* $tmp.forbidden
+echo
+mkdir $tmp.forbiddendir
+chmod 0 $tmp.forbiddendir
+pmlogrewrite -c $tmp.forbiddendir in out 2>&1 | _filter
+echo
+pmlogrewrite -c $tmp.forbiddendir/blah in out 2>&1 | _filter
+chmod 755 $tmp.forbiddendir
+rm -rf $tmp.forbiddendir
+echo
+mkdir $tmp.configdir
+touch $tmp.configdir/forbidden
+chmod 0 $tmp.configdir/forbidden
+pmlogrewrite -v -c $tmp.configdir src/rattle $tmp.new 2>&1 | _filter
+echo
+ln -s $tmp.configdir/forbidden $tmp.link
+pmlogrewrite -v -c $tmp.link src/rattle $tmp.new 2>&1 | _filter
+rm -rf $tmp.config $tmp.forbidden
+echo
+rm -f $tmp.link
+ln -s $tmp.configdir $tmp.link
+pmlogrewrite -v -c $tmp.link src/rattle $tmp.new 2>&1 | _filter
+rm -rf $tmp.configdir $tmp.link
+
+echo
+echo "=== truncated archive ==="
+pmlogrewrite src/ok-truncbin $tmp.new 2>&1 | _filter
+echo "input records: `_cnt_logrecs src/ok-truncbin`"
+echo "output records: `_cnt_logrecs $tmp.new`"
+
+echo
+echo "=== truncated archive -d ==="
+rm -f $tmp.new.*
+pmlogrewrite -d src/ok-truncbin $tmp.new 2>&1 | _filter
+echo "input records: `_cnt_logrecs src/ok-truncbin`"
+echo "output records: `_cnt_logrecs $tmp.new`"
+
+echo
+echo "=== bad label ==="
+rm -f $tmp.new.*
+pmlogrewrite -d src/badlen-8 $tmp.new 2>&1 | _filter
+echo "input records: `_cnt_logrecs src/badlen-8`"
+echo "output records: `_cnt_logrecs $tmp.new`"
+
+echo
+echo "=== truncated metadata ==="
+rm -f $tmp.new.*
+pmlogrewrite -d src/badlen-9 $tmp.new 2>&1 | _filter
+echo "input records: `_cnt_logrecs src/badlen-9`"
+echo "output records: `_cnt_logrecs $tmp.new`"
+
+echo
+echo "=== bad version ==="
+rm -f $tmp.new.*
+pmlogrewrite -d src/err_v1 $tmp.new 2>&1 | _filter
+echo "input records: `_cnt_logrecs src/err_v1`"
+echo "output records: `_cnt_logrecs $tmp.new`"
+
+rm -f $tmp.new.*
+
+# success, all done
+exit