summaryrefslogtreecommitdiff
path: root/qa/449
diff options
context:
space:
mode:
Diffstat (limited to 'qa/449')
-rwxr-xr-xqa/44994
1 files changed, 94 insertions, 0 deletions
diff --git a/qa/449 b/qa/449
new file mode 100755
index 0000000..226e060
--- /dev/null
+++ b/qa/449
@@ -0,0 +1,94 @@
+#!/bin/sh
+# PCP QA Test No. 449
+# basic multi-threaded checkout
+#
+# Copyright (c) 2011 Ken McDonell. All Rights Reserved.
+#
+
+seq=`basename $0`
+echo "QA output created by $seq"
+
+# get standard environment, filters and checks
+. ./common.product
+. ./common.filter
+. ./common.check
+
+_get_libpcp_config
+$multi_threaded || _notrun "No libpcp threading support"
+
+status=0 # success is the default!
+$sudo rm -rf $tmp.* $seq.full
+trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
+
+_filter1()
+{
+ tee -a $seq.full \
+ | sed \
+ -e 's/Permission denied/No permission to perform requested operation/'
+}
+
+_filter2()
+{
+ $PCP_AWK_PROG '
+$7 == "localhost" { sub(/^[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*$/,"IPADDR",$4)
+ sub(/^[0-9a-f:][0-9a-f:]*%[0-9a-z]+$/,"IPADDR",$4)
+ sub(/^[0-9a-f:][0-9a-f:]*$/,"IPADDR",$4)
+ sub(/^[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*$/,"IPMASK",$5)
+ sub(/^[0-9a-f:][0-9a-f:]*$/,"IPMASK",$5) }
+ { print }'
+}
+
+_filter3()
+{
+ # b 4194304 1.0.0 0x00400000
+ sed \
+ -e '/0x[0-9a-f][0-9a-f]*$/{
+s/ 0x[0-9a-f][0-9a-f]*$//
+s/ [0-9][0-9]* / /
+}'
+}
+
+_filter4()
+{
+ # traverse: found 1346 metrics, sts 29
+ $PCP_AWK_PROG '
+BEGIN { first = 1 }
+$1 == "traverse:" && $3 ~ /[0-9][0-9]*/ && $6 ~ /[0-9][0-9]*/ {
+ if (first) {
+ found = $3
+ sts = $6
+ }
+ if ($3 == found && $6 == sts) {
+ $3 = "MYNUMBER"
+ $6 = "MYSTS"
+ }
+ }
+ { print }' \
+| LC_COLLATE=POSIX sort \
+| uniq
+}
+
+
+# real QA test starts here
+echo "=== __pmMultiThreaded ===" | tee -a $seq.full
+src/multithread0 | LC_COLLATE=POSIX sort
+
+echo | tee -a $seq.full
+echo "=== PM_CONTEXT_LOCAL ===" | tee -a $seq.full
+src/multithread1 >$tmp.out
+cat $tmp.out | _filter1 | LC_COLLATE=POSIX sort
+
+echo | tee -a $seq.full
+echo "=== PM_SCOPE_AF and PM_SCOPE_ACL ===" | tee -a $seq.full
+src/multithread2 | _filter2
+
+echo | tee -a $seq.full
+echo "=== PMNS concurrency ===" | tee -a $seq.full
+src/multithread3 $tmp.pmns | tee -a $seq.full | _filter3
+
+echo | tee -a $seq.full
+echo "=== PMNS Load/Unload & Traverse concurrency ===" | tee -a $seq.full
+src/multithread4 | tee -a $seq.full | _filter4
+
+# success, all done
+exit