diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2014-10-26 12:33:50 +0400 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2014-10-26 12:33:50 +0400 |
commit | 47e6e7c84f008a53061e661f31ae96629bc694ef (patch) | |
tree | 648a07f3b5b9d67ce19b0fd72e8caa1175c98f1a /qa/639 | |
download | pcp-debian.tar.gz |
Debian 3.9.10debian/3.9.10debian
Diffstat (limited to 'qa/639')
-rwxr-xr-x | qa/639 | 236 |
1 files changed, 236 insertions, 0 deletions
@@ -0,0 +1,236 @@ +#! /bin/sh +# PCP QA Test No. 639 +# pmnsadd 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 + +_add() +{ + while true + do + pmlock $tmp.root.lock && break + sleep 1 + done + pmnsadd -n $tmp.root $1 + rm -f $tmp.root.lock +} + +cat <<End-of-File >$tmp.master +/* +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +*/ +root { + one + two + keep1 1:0:1 + keep2 2:0:2 +} +/* +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +*/ + +one { + one +} +/* +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +*/ + +one.one { + one +} +/* +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +*/ + +one.one.one { + keep4 4:0:4 +} +/* +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +*/ + +two { + keep3 3:0:3 +} + +/* +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +*/ +End-of-File + +cat <<End-of-File >$tmp.d1 +root { + d1 1:1:1 +} +End-of-File + +cat <<End-of-File >$tmp.one.d2 +one { + d2 2:1:2 +} +End-of-File + +cat <<End-of-File >$tmp.one.one.d3 +one.one { + d3 3:1:3 +} +End-of-File + +cat <<End-of-File >$tmp.one.one.d6 +one.one { + d6 6:1:6 +} +End-of-File + +cat <<End-of-File >$tmp.one.one.d7 +one.one { + d7 7:1:7 +} +End-of-File + +cat <<End-of-File >$tmp.one.one.d8 +one.one { + d8 8:1:8 +} +End-of-File + +cat <<End-of-File >$tmp.two.d4 +two { + d4 4:1:4 +} +End-of-File + +cat <<End-of-File >$tmp.two.d9 +two { + d9 9:1:9 +} +End-of-File + +cat <<End-of-File >$tmp.three.one.d5 +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 additions ..." +echo "Serial additions ..." >$seq.full +cp $tmp.master $tmp.root +for m in $tmp.d1 $tmp.one.d2 $tmp.one.one.d3 $tmp.two.d4 $tmp.three.one.d5 \ + $tmp.one.one.d6 $tmp.one.one.d7 $tmp.one.one.d8 $tmp.two.d9 +do + pmnsadd -n $tmp.root $m 2>&1 +done \ +| tee -a $seq.full \ +| grep ' leaf' \ +| LC_COLLATE=POSIX sort -nr +echo +pminfo -m -n $tmp.root | LC_COLLATE=POSIX sort + +echo +echo "Parallel additions ..." +echo "Parallel additions ..." >>$seq.full +cp $tmp.master $tmp.root +rm -f $tmp*.out +for m in $tmp.d1 $tmp.one.d2 $tmp.one.one.d3 $tmp.two.d4 $tmp.three.one.d5 \ + $tmp.one.one.d6 $tmp.one.one.d7 $tmp.one.one.d8 $tmp.two.d9 +do + _add $m >$m.out 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 | LC_COLLATE=POSIX sort + +# success, all done +exit |