summaryrefslogtreecommitdiff
path: root/qa/550
diff options
context:
space:
mode:
Diffstat (limited to 'qa/550')
-rwxr-xr-xqa/55052
1 files changed, 52 insertions, 0 deletions
diff --git a/qa/550 b/qa/550
new file mode 100755
index 0000000..65e5843
--- /dev/null
+++ b/qa/550
@@ -0,0 +1,52 @@
+#!/bin/sh
+# PCP QA Test No. 550
+# Exercise fixes for remotely triggered memory leaks in pmcd
+#
+# Copyright (c) 2013 Red Hat. All Rights Reserved.
+#
+
+seq=`basename $0`
+echo "QA output created by $seq"
+
+# get standard environment, filters and checks
+. ./common.product
+. ./common.filter
+. ./common.check
+
+host=localhost
+iterate=1000
+timeout=2
+status=1 # failure is the default!
+$sudo rm -rf $tmp.* $seq.full
+trap "cd $here; rm -rf $tmp.*; exit \$status" 0 1 2 3 15
+
+pmcd_memory()
+{
+ pmprobe -h $host -v pmcd.datasize \
+ | tee -a $here/$seq.full \
+ | awk '{ print $3 }'
+}
+
+# real QA test starts here
+echo "Initial pmcd memory size:" > $seq.full
+MEMINIT=`pmcd_memory`
+cd secure
+for leak_test in leak-*
+do
+ echo "$leak_test checking: " | tee -a $here/$seq.full
+ python $leak_test $host $iterate
+ pmcd_wait -t $timeout -h $host
+ sts=$?
+ echo "$leak_test complete sts=$sts" | tee -a $here/$seq.full
+ [ $sts -ne 0 ] && exit
+ MEMUSED=`pmcd_memory`
+ # allow for max 64KB increase (several pages on 64KB systems)
+ MEMSLOP=`expr $MEMINIT + 640`
+ echo "init=$MEMINIT used=$MEMUSED slop=$MEMSLOP" >> $here/$seq.full
+ [ $MEMUSED -gt $MEMSLOP ] && exit
+ echo "$leak_test memory check=OK" | tee -a $here/$seq.full
+done
+
+# success, all done
+status=0
+exit