summaryrefslogtreecommitdiff
path: root/qa/638
diff options
context:
space:
mode:
Diffstat (limited to 'qa/638')
-rwxr-xr-xqa/638220
1 files changed, 220 insertions, 0 deletions
diff --git a/qa/638 b/qa/638
new file mode 100755
index 0000000..9c3d071
--- /dev/null
+++ b/qa/638
@@ -0,0 +1,220 @@
+#! /bin/sh
+# PCP QA Test No. 638
+# pmnsdel concurrency issues - pv #826904
+#
+# 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
+
+rm -f $seq.out
+if [ $PCP_VER -lt 3600 ]
+then
+ ln $seq.out.1 $seq.out || exit 1
+else
+ ln $seq.out.2 $seq.out || exit 1
+fi
+
+status=0 # success is the default!
+trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
+
+_del()
+{
+ while true
+ do
+ pmlock $tmp.root.lock && break
+ sleep 1
+ done
+ pmnsdel -n $tmp.root $1
+ rm -f $tmp.root.lock
+}
+
+cat <<End-of-File >$tmp.master
+/*
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+*/
+root {
+ one
+ two
+ three
+ keep1 1:0:1
+ d1 1:1:1
+ keep2 2:0:2
+}
+/*
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+*/
+
+one {
+ d2 2:1:2
+ one
+}
+/*
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+*/
+
+one.one {
+ d3 3:1:3
+ one
+ d6 6:1:6
+ d7 7:1:7
+ d8 8:1:8
+}
+/*
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+*/
+
+one.one.one {
+ keep4 4:0:4
+}
+/*
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+*/
+
+two {
+ keep3 3:0:3
+ d4 4:1:4
+ d9 9:1:9
+}
+/*
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+*/
+
+three {
+ one
+}
+/*
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+*/
+
+three.one {
+ d5 5:1:5
+}
+/*
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+*/
+End-of-File
+
+
+# real QA test starts here
+echo "Initial state ..."
+pminfo -m -n $tmp.master
+
+echo
+echo "Serial deletions ..."
+cp $tmp.master $tmp.root
+for m in d1 one.d2 one.one.d3 two.d4 three.one.d5 one.one.d6 \
+ one.one.d7 one.one.d8 two.d9
+do
+ pmnsdel -n $tmp.root $m 2>&1
+done \
+| grep ' leaf' \
+| LC_COLLATE=POSIX sort -nr
+echo
+pminfo -m -n $tmp.root
+
+echo
+echo "Parallel deletions ..."
+cp $tmp.master $tmp.root
+rm -f $tmp.out
+for m in d1 one.d2 one.one.d3 two.d4 three.one.d5 one.one.d6 \
+ one.one.d7 one.one.d8 two.d9
+do
+ _del $m >$tmp.out.$m 2>&1 &
+done
+wait
+
+cat $tmp.out.* \
+| grep ' leaf' \
+| LC_COLLATE=POSIX sort -nr
+echo
+
+for f in $tmp.out.*
+do
+ echo >>$seq.full
+ echo "=== $f ===" >>$seq.full
+ cat $f >>$seq.full
+done
+
+pminfo -m -n $tmp.root
+
+# success, all done
+exit