File: 866

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 (134 lines) | stat: -rwxr-xr-x 3,367 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
#!/bin/sh
# PCP QA Test No. 866
# Use libpcp_fault to exercise pdu timeout handling.
#
# Copyright (c) 2016 Ken McDonell.  All Rights Reserved.
#

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

# get standard environment, filters and checks
. ./common.product
. ./common.filter
. ./common.check

LD_PRELOAD=$PCP_LIB_DIR/libpcp_fault.so; export LD_PRELOAD
src/check_fault_injection >/dev/null 2>&1 || \
    _notrun "libpcp not built with fault injection enabled"
unset LD_PRELOAD

status=1	# failure is the default!
trap "cd $here; rm -rf $tmp $tmp.*; exit \$status" 0 1 2 3 15

# avoid any PDUs associated with the definition of derived metrics
PCP_DERIVED_CONFIG=; export PCP_DERIVED_CONFIG

PM_FAULT_CONTROL=$tmp.control; export PM_FAULT_CONTROL
LD_PRELOAD=$PCP_LIB_DIR/libpcp_fault.so; export LD_PRELOAD

# [Sat Jul 30 17:33:55] multictx(26317) Error: __pmCloseChannel: fd=3 context=1: Timeout waiting for a response from PMCD
_filter()
{
    sed \
	-e 's/multictx([0-9][0-9]*)/multictx(PID)/' \
	-e 's/store([0-9][0-9]*)/store(PID)/' \
	-e 's/\[[A-Z][a-z][a-z] [A-Z][a-z][a-z]  *[0-9][0-9]* [0-9][0-9]:[0-9][0-9]:[0-9][0-9]]/[DATE]/' \
    # end
}

# # samples is sufficient to do all ops in multictx.c 3 times
#
samples=30

# real QA test starts here

echo "force 2nd pmFetch to timeout"
cat >$tmp.control <<End-of-File
libpcp/fetch.c:1	== 2
End-of-File
src/multictx -s $samples sample.colour pmcd.buf.alloc 2>&1 \
| _filter

# note, 1 pmLookupDesc call per metric in the multictx.c preamble,
# so fault guard is 4 (2+2)
echo
echo "force 2nd pmLookupDesc to timeout"
cat >$tmp.control <<End-of-File
libpcp/desc.c:1	== 4
End-of-File
src/multictx -s $samples sample.colour pmcd.buf.alloc 2>&1 \
| _filter

# note, 1 pmLookupName call per metric in the multictx.c preamble,
# so fault guard is 4 (2+2)
echo
echo "force 2nd pmLookupName to timeout"
cat >$tmp.control <<End-of-File
libpcp/pmns.c:1	== 4
End-of-File
src/multictx -s $samples sample.colour pmcd.buf.alloc 2>&1 \
| _filter

echo
echo "force 2nd pmNameAll to timeout"
cat >$tmp.control <<End-of-File
libpcp/pmns.c:3	== 2
End-of-File
src/multictx -s $samples sample.colour pmcd.buf.alloc 2>&1 \
| _filter

echo
echo "force 2nd pmGetChildrenStatus to timeout"
cat >$tmp.control <<End-of-File
libpcp/pmns.c:2	== 2
End-of-File
src/multictx -s $samples sample.colour pmcd.buf.alloc 2>&1 \
| _filter

echo
echo "force 2nd pmLookupText to timeout"
cat >$tmp.control <<End-of-File
libpcp/help.c:1	== 2
End-of-File
src/multictx -s $samples sample.colour pmcd.buf.alloc 2>&1 \
| _filter

# note, 1 pmGetIndom call per metric in the multictx.c preamble,
# so fault guard is 4 (2+2)
echo
echo "force 2nd pmGetInDom to timeout"
cat >$tmp.control <<End-of-File
libpcp/instance.c:1	== 4
End-of-File
src/multictx -s $samples sample.colour pmcd.buf.alloc 2>&1 \
| _filter

echo
echo "force 2nd pmNameInDom to timeout"
cat >$tmp.control <<End-of-File
libpcp/instance.c:2	== 2
End-of-File
src/multictx -s $samples sample.colour pmcd.buf.alloc 2>&1 \
| _filter

echo
echo "force 2nd pmLookupInDom to timeout"
cat >$tmp.control <<End-of-File
libpcp/instance.c:3	== 2
End-of-File
src/multictx -s $samples sample.colour pmcd.buf.alloc 2>&1 \
| _filter

echo
echo "force 3nd pmStore to timeout"
cat >$tmp.control <<End-of-File
libpcp/store.c:1	== 3
End-of-File
src/store 2>&1 \
| _filter

# success, all done
status=0

exit