summaryrefslogtreecommitdiff
path: root/qa/156
blob: a88d22914b23a048e50e55efe22e466e76a1447c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#! /bin/sh
# PCP QA Test No. 156
# check out sample PMDA
#
# Copyright (c) 1995-2002 Silicon Graphics, Inc.  All Rights Reserved.
#

seq=`basename $0`
echo "QA output created by $seq"

# get standard filters
. ./common.product
. ./common.filter
. ./common.check

$sudo $PCP_RC_DIR/pcp restart | _filter_pcp_start
_wait_for_pmcd
_wait_for_pmlogger

_filter()
{
    _filter_pmda_install | \
    sed -e 's/ 1[1-2][0-9][0-9] values/ 1200+ values/' \
	-e 's/ 1[0-9] warnings/ 10+ warnings/' \
	-e 's/ 3 warnings/ 10+ warnings/' \
	-e 's/ 1[0-9][0-9] metrics/ 100+ metrics/' \
	-e "s;$tmp;TMP;" \
	-e "s/$port1/PORT1/" \
	-e "s/$port2/PORT2/"
}

_filter_rem()
{
    sed \
	-e '/mips_64/d' \
	-e '/mips_o32/d' \
	-e '/mips_n32/d'
}

_check_pmda_gone()
{
    sleep 2
    pminfo -v $1 && echo "Error: pminfo -v found some \"$1\" metrics"
    ps $PCP_PS_ALL_FLAGS | grep pmda$1 >$tmp.tmp
    if [ ! -z "`grep -v grep <$tmp.tmp`" ]
    then
	echo "Error: some \"$1\" PMDAs still present"
	cat $tmp.tmp
    fi
    rm -f $tmp.tmp
}

status=1

# save pmcd.conf and restore it after the test
cp $PCP_PMCDCONF_PATH $tmp.pmcd.conf

home=$PCP_PMDAS_DIR
iam=sample
if [ ! -d $home/$iam ]
then
    echo "Where is $home/$iam?"
    exit 1
fi
cd $home/$iam
unset ROOT MAKEFLAGS

if [ ! -f dynamic.indom ]
then
    echo "1 one" >$tmp.indom
    echo "2 two" >>$tmp.indom
    $sudo cp $tmp.indom dynamic.indom
fi

# make sure sample agent is running again at the end, so other QA tests
# continue to work
#
trap "echo; echo 'Reinstall PMDA ...'; $sudo ./Install </dev/null >$tmp.out; _filter <$tmp.out; $sudo cp $tmp.pmcd.conf $PCP_PMCDCONF_PATH; $sudo rm -f $tmp.*; exit \$status" 0 1 2 3 15

# real QA test starts here

echo
echo "=== remove agent ==="
$sudo ./Remove >$tmp.out 2>&1
_filter_rem <$tmp.out
_check_pmda_gone $iam

echo
echo "=== pipe agent ==="
echo 'both
pipe' | $sudo ./Install -e >$tmp.out 2>&1
_filter <$tmp.out
pminfo -v sample || echo "... failed!"
echo 'both
pipe' | $sudo ./Install -e >$tmp.out 2>&1
_filter <$tmp.out
pminfo -v sample || echo "... failed!"

echo
echo "=== socket Internet agent ==="

# pick a tcp port that is not in use
#
port1=`_get_port tcp 5670 5689`
if [ -z "$port1" ]
then
    echo "Arrgh ... no free TCP port in the range 5670 ... 5689"
    exit 1
fi

echo 'both
socket
Internet
'$port1 | $sudo ./Install -e >$tmp.out 2>&1
_filter <$tmp.out
pminfo -v sample || echo "... failed!"

# use next port this time
port2=`expr $port1 + 1`

echo 'both
socket
Internet
'$port2 | $sudo ./Install -e >$tmp.out 2>&1
_filter <$tmp.out
pminfo -v sample || echo "... failed!"

echo
echo "=== socket Unix agent ==="
echo 'both
socket
Unix
'"$tmp.fifo" | $sudo ./Install -e >$tmp.out 2>&1
_filter <$tmp.out
pminfo -v sample || echo "... failed!"
echo 'both
socket
Unix
'"$tmp.fifo" | $sudo ./Install -e >$tmp.out 2>&1
_filter <$tmp.out
pminfo -v sample || echo "... failed!"

$sudo ./Remove >$tmp.out 2>&1
_filter_rem <$tmp.out
_check_pmda_gone $iam

status=0
exit