summaryrefslogtreecommitdiff
path: root/qa/245
blob: e87772acd8e18444275541557219070b222f1ca1 (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
149
150
151
152
153
#! /bin/sh
# PCP QA Test No. 245
# exercise new pmnsdel
#
# 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

status=0
trap "cd $here; rm -rf $tmp.*; exit \$status" 0 1 2 3 15

# real QA test starts here
mkdir $tmp.dir
cd $tmp.dir
echo 'root {
}' >null
echo 'root {
	one	1:1:1
}' >one

echo "+++ Errors +++"

echo
echo "=== no args ==="
pmnsdel

echo
echo "=== no such PMNS file ==="
pmnsdel -n no-such-input fumble

echo
echo "=== cannot open existing output file for writing ==="
cp one mypmns
chmod u-w mypmns
pmnsdel -n mypmns one
rm -f mypmns

echo
echo "=== cannot create output file ==="
cp one mypmns
chmod u-w .
pmnsdel -n mypmns one
chmod u+w .
rm -f mypmns

echo
echo "=== syntax error in input ==="
echo 'root {
bogus - this is not correct
}' >mypmns
pmnsdel -n mypmns bogus

echo 'root {
	one	1:1:1
	sub0
	two	2:2:2
	three	3:3:3
	sub1
}
sub0 {
	four	4:4:4
	sub2
	five	5:5:5
}
sub1 {
	six	6:6:6
	eight	8:8:8
}
sub0.sub2 {
	seven	7:7:7
	sub4
}
sub0.sub2.sub4 {
	sub6
}
sub0.sub2.sub4.sub6 {
	nine	9:9:9
}' >foo

pminfo -n foo -m | LC_COLLATE=POSIX sort >base.out
echo
echo "+++ Common starting PMNS for all remaing tests ..."
cat base.out

echo
echo "=== assorted undefined metricpaths ==="
cp foo mypmns
pmnsdel -n mypmns leaf
pmnsdel -n mypmns sub0.no_leaf
pmnsdel -n mypmns sub0.sub2.no_leaf
pmnsdel -n mypmns sub0.sub2.sub4.no_leaf
pmnsdel -n mypmns sub0.sub2.sub4.sub6.no_leaf
pmnsdel -n mypmns sub0.sub2.sub4.sub6.no_nonleaf.no_leaf

echo
echo "+++ Operations +++"

echo
echo "=== single metric ==="
for metric in one sub0.sub2.sub4.sub6.nine sub0.sub2.seven
do
    echo $metric:
    cp foo mypmns
    pmnsdel -n mypmns $metric
    echo "diffs ..."
    pminfo -n mypmns -m | LC_COLLATE=POSIX sort | diff base.out -
done

echo
echo "=== multiple metrics ==="
for metric in "one sub0.sub2.sub4.sub6.nine sub0.sub2.seven"
do
    echo "delete: $metric"
    cp foo mypmns
    pmnsdel -n mypmns $metric
    echo "diffs ..."
    pminfo -n mypmns -m | LC_COLLATE=POSIX sort | diff base.out -
done

echo
echo "=== non-leaves ==="
for metric in sub0 sub1 sub0.sub2 sub0.sub2.sub4 sub0.sub2.sub4.sub6 \
    sub0.sub2 \
    "sub1 sub0.sub2.sub4.sub6 sub0 "
do
    echo "delete: $metric"
    cp foo mypmns
    pmnsdel -n mypmns $metric
    echo "diffs ..."
    pminfo -n mypmns -m | LC_COLLATE=POSIX sort | diff base.out -
done

echo
echo "=== all leaves ==="
cp foo mypmns
if [ $PCP_VER -lt 3600 ]
then
    pmnscomp -f -n mypmns mypmns.bin
fi
metric=`pminfo -n mypmns | tr '\012' ' '`
echo "delete: $metric"
pmnsdel -n mypmns $metric
echo "diffs ..."
pminfo -n mypmns -m | LC_COLLATE=POSIX sort | diff base.out -

# all done
exit