File: 324

package info (click to toggle)
pcp 7.1.0-1
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 252,748 kB
  • sloc: ansic: 1,483,656; sh: 182,366; xml: 160,462; cpp: 83,813; python: 24,980; perl: 18,327; yacc: 6,877; lex: 2,864; makefile: 2,738; awk: 165; fortran: 60; java: 52
file content (143 lines) | stat: -rwxr-xr-x 2,903 bytes parent folder | download
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
#! /bin/sh
# PCP QA Test No. 324
# Install/Remove for txmon 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

[ -d $PCP_PMDAS_DIR/txmon ] || _notrun "txmon PMDA directory not found"

# may need to "ipcrm -M 0xdeadbeef" if this happens:
$sudo ipcs -m | grep -iq deadbeef && \
    _notrun "Cannot run with SHM key 0xdeadbeef already in use"

echo >$tmp.input 'pigs
can
fly
'

status=1
done_clean=false

_cleanup()
{
    if $done_clean
    then
	:
    else
	if [ -f $PCP_PMCDCONF_PATH.$seq ]
	then
	    $sudo cp $PCP_PMCDCONF_PATH.$seq $PCP_PMCDCONF_PATH
	    $sudo rm -f $PCP_PMCDCONF_PATH.$seq
	fi
	_service pmcd restart 2>&1 | _filter_pcp_restart
	_wait_for_pmcd
	_service pmlogger restart 2>&1 | _filter_pcp_restart
	_wait_for_pmlogger
	if $install_on_cleanup
	then
	    ( cd $PCP_PMDAS_DIR/txmon; $sudo ./Install <$tmp.input >/dev/null 2>&1 )
	else
	    ( cd $PCP_PMDAS_DIR/txmon; $sudo ./Remove </dev/null >/dev/null 2>&1 )
	fi
	rm -f $tmp.*
	# toss output away in case shm segment already removed or not
	# created and the installed version of ipcrm(1) complains
	#
	$sudo ipcrm -M 0xdeadbeef >/dev/null 2>&1
	$sudo ipcs -m | grep -iq deadbeef && echo "Failed to removve SHM key 0xdeadbeef"
	done_clean=true
    fi
    exit $status
}

install_on_cleanup=false
pminfo txmon >/dev/null 2>&1 && install_on_cleanup=true

trap "_cleanup" 0 1 2 3 15

_filter()
{
    _filter_pmda_install
}

_filter_info()
{
    sed \
	-e 's/value -[0-9][0-9]*\.[0-9]*/value NEGATIVE NUMBER/' \
	-e 's/value -[0-9][0-9]*/value NEGATIVE NUMBER/' \
	-e 's/value [0-9][0-9]*\.[0-9]*/value NUMBER/' \
	-e 's/value [0-9][0-9]*/value NUMBER/'
}

# real QA test starts here
home=$PCP_PMDAS_DIR
iam=txmon
if [ ! -d $home/$iam ]
then
    echo "Where is $home/$iam?"
    exit 1
fi
cd $home/$iam
unset ROOT MAKEFLAGS

# copy the pmcd config file to restore state later.
$sudo cp $PCP_PMCDCONF_PATH $PCP_PMCDCONF_PATH.$seq

# start from a known starting point
$sudo ./Remove >/dev/null 2>&1

if $sudo $PCP_MAKE_PROG clobber >$tmp.out 2>&1
then
    :
else
    cat $tmp.out
    echo "Arrgh, make clobber failed"
    exit
fi

if $sudo $PCP_MAKE_PROG >$tmp.out 2>&1
then
    :
else
    cat $tmp.out
    echo "Arrgh, make failed"
    exit
fi

echo
echo "=== default $iam agent installation ==="
$sudo ./Remove >$tmp.out 2>&1
$sudo ./Install <$tmp.input -e >>$tmp.out 2>&1

_filter <$tmp.out

if pminfo -v $iam
then
    :
else
    echo "... failed! ... here is the Install log ..."
    cat $tmp.out
fi

echo
echo "=== validate values ==="
$sudo $PCP_MAKE_PROG txrecord >/dev/null 2>&1
./genload -n 20 | sed -e 's/[0-9][0-9]*\.[0-9][0-9]*/NUMBER/'
pminfo -f $iam | _filter_info

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

status=0
exit