#!/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