Merge branch 'master' of git://git.pcp.io/pcp into qt
[pcp.git] / qa / 324
blob267c9d23c5ae0c6ca0c7d93bfcb3f4cd7ee79ec8
1 #! /bin/sh
2 # PCP QA Test No. 324
3 # Install/Remove for txmon pmda
5 # Copyright (c) 1995-2002 Silicon Graphics, Inc. All Rights Reserved.
8 seq=`basename $0`
9 echo "QA output created by $seq"
11 # get standard filters
12 . ./common.product
13 . ./common.filter
14 . ./common.check
16 [ -d $PCP_PMDAS_DIR/txmon ] || _notrun "txmon PMDA directory not found"
18 # may need to "ipcrm -M 0xdeadbeef" if this happens:
19 $sudo ipcs -m | grep -iq deadbeef && \
20 _notrun "Cannot run with SHM key 0xdeadbeef already in use"
22 echo >$tmp.input 'b
23 pigs
24 can
25 fly
28 status=1
29 done_clean=false
31 _cleanup()
33 if $done_clean
34 then
36 else
37 if [ -f $tmp.pmcd.conf ]
38 then
39 $sudo cp $tmp.pmcd.conf $PCP_PMCDCONF_PATH
40 rm -f $tmp.pmcd.conf
42 $sudo $PCP_RC_DIR/pcp restart | _filter_pcp_start
43 _wait_for_pmcd
44 _wait_for_pmlogger
45 if $install_on_cleanup
46 then
47 ( cd $PCP_PMDAS_DIR/txmon; $sudo ./Install <$tmp.input >/dev/null 2>&1 )
48 else
49 ( cd $PCP_PMDAS_DIR/txmon; $sudo ./Remove </dev/null >/dev/null 2>&1 )
51 rm -f $tmp.*
52 # toss output away in case shm segment already removed or not
53 # created and the installed version of ipcrm(1) complains
55 $sudo ipcrm -M 0xdeadbeef >/dev/null 2>&1
56 $sudo ipcs -m | grep -iq deadbeef && echo "Failed to removve SHM key 0xdeadbeef"
57 done_clean=true
59 exit $status
62 install_on_cleanup=false
63 pminfo txmon >/dev/null 2>&1 && install_on_cleanup=true
65 trap "_cleanup" 0 1 2 3 15
67 _filter()
69 _filter_pmda_install
72 _filter_info()
74 sed \
75 -e 's/value -[0-9][0-9]*\.[0-9]*/value NEGATIVE NUMBER/' \
76 -e 's/value -[0-9][0-9]*/value NEGATIVE NUMBER/' \
77 -e 's/value [0-9][0-9]*\.[0-9]*/value NUMBER/' \
78 -e 's/value [0-9][0-9]*/value NUMBER/'
81 # real QA test starts here
82 home=$PCP_PMDAS_DIR
83 iam=txmon
84 if [ ! -d $home/$iam ]
85 then
86 echo "Where is $home/$iam?"
87 exit 1
89 cd $home/$iam
90 unset ROOT MAKEFLAGS
92 # copy the pmcd config file to restore state later.
93 cp $PCP_PMCDCONF_PATH $tmp.pmcd.conf
95 # start from a known starting point
96 $sudo ./Remove >/dev/null 2>&1
98 if $sudo $PCP_MAKE_PROG clobber >$tmp.out 2>&1
99 then
101 else
102 cat $tmp.out
103 echo "Arrgh, make clobber failed"
104 exit
107 if $sudo $PCP_MAKE_PROG >$tmp.out 2>&1
108 then
110 else
111 cat $tmp.out
112 echo "Arrgh, make failed"
113 exit
116 echo
117 echo "=== default $iam agent installation ==="
118 $sudo ./Remove >$tmp.out 2>&1
119 $sudo ./Install <$tmp.input -e >>$tmp.out 2>&1
121 _filter <$tmp.out
123 if pminfo -v $iam
124 then
126 else
127 echo "... failed! ... here is the Install log ..."
128 cat $tmp.out
131 echo
132 echo "=== validate values ==="
133 $sudo $PCP_MAKE_PROG txrecord >/dev/null 2>&1
134 ./genload -n 20 | sed -e 's/[0-9][0-9]*\.[0-9][0-9]*/NUMBER/'
135 pminfo -f $iam | _filter_info
137 echo
138 echo "=== remove $iam agent ==="
139 $sudo ./Remove >$tmp.out 2>&1
140 _filter <$tmp.out
142 status=0
143 exit