summaryrefslogtreecommitdiff
path: root/qa/780
diff options
context:
space:
mode:
Diffstat (limited to 'qa/780')
-rwxr-xr-xqa/78072
1 files changed, 72 insertions, 0 deletions
diff --git a/qa/780 b/qa/780
new file mode 100755
index 0000000..e7db19f
--- /dev/null
+++ b/qa/780
@@ -0,0 +1,72 @@
+#!/bin/sh
+# PCP QA Test No. 780
+# Exercise addition of pmwebd Access-Control-Allow-Origin HTTP header.
+#
+# Copyright (c) 2014 Red Hat.
+#
+
+seq=`basename $0`
+echo "QA output created by $seq"
+
+# get standard environment, filters and checks
+. ./common.product
+. ./common.filter
+. ./common.check
+
+which pmwebd >/dev/null 2>&1 || _notrun "pmwebd not installed"
+
+signal=$PCP_BINADM_DIR/pmsignal
+status=1 # failure is the default!
+username=`id -u -n`
+$sudo rm -rf $tmp.* $seq.full
+trap "cd $here; _cleanup; exit \$status" 0 1 2 3 15
+
+_cleanup()
+{
+ [ -z "$webpid" ] || $signal $webpid
+ $sudo rm -fr $tmp.dir
+ $sudo rm -f $tmp.*
+}
+
+_filter()
+{
+ sed \
+ -e 's/^\(Content-Length:\) [0-9][0-9]*/\1 SIZE/g' \
+ -e 's/^\(Date:\).*/\1 DATE/g' \
+ -e 's/\(\"context\":\) [0-9][0-9]*/\1 CTXID/g' \
+ | LC_COLLATE=POSIX sort \
+ | col -b # remove DOS line endings
+}
+
+unset http_proxy
+unset HTTP_PROXY
+webport=`_find_free_port`
+
+# real QA test starts here
+pmwebd -U $username -f -l $tmp.out -p $webport 2>$tmp.err &
+webpid=$!
+count=0
+while ! $PCP_BINADM_DIR/telnet-probe -c localhost $webport
+do
+ count=`expr $count + 1`
+ if [ $count -ge 20 ]
+ then
+ echo "pmwebd failed to start on port $webport"
+ cat $tmp.out
+ cat $tmp.err
+ exit
+ fi
+ pmsleep 0.1
+done
+
+echo "pmwebd pid=$webpid port=$webport" >>$seq.full
+curl -s -S "http://localhost:$webport/pmapi/context?local=anything" -D- 2>&1 | _filter
+
+echo "--- pmwebd log ---" >>$seq.full
+cat $tmp.out >>$seq.full
+echo "--- pmwebd stderr ---" >>$seq.full
+cat $tmp.err >>$seq.full
+
+# success, all done
+status=0
+exit