This file is indexed.

/var/lib/pcp/testsuite/102 is in pcp-testsuite 4.0.1-1.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

  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
154
155
156
157
158
159
160
161
162
163
#! /bin/sh
# PCP QA Test No. 102
# pmlc parser/scanner/error handling
#
# 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

_cleanup()
{
    _restore_config $PCP_SYSCONFIG_DIR/pmcd
    _restore_primary_logger
    _service pcp restart | _filter_pcp_start
    _restore_auto_restart pmcd
    _restore_auto_restart pmlogger
    _wait_for_pmcd
    _wait_for_pmlogger
    $sudo rm -f $tmp $tmp.*
    exit $status
}

status=1
rm -f $seq.full
trap "_cleanup" 0 1 2 3 15

_stop_auto_restart pmcd
_stop_auto_restart pmlogger

_filter_pmlc()
{
    # error message mapping is due to differences between PCP_PLATFORMs
    #
    sed \
	-e 's/connect [0-9][0-9]*/connect PID/' \
	-e 's/Version [0-9].*/Version VERSION/' \
	-e 's/^parse error/Syntax error/' \
	-e 's/line [0-9]*/line NUM/g' \
	-e 's/^syntax error/Syntax error/' \
	-e 's/^Reason: Unknown or illegal.*$/Reason: No PMCD agent for domain of request/'
}

_disable_agent_restart()
{
    echo PMCD_RESTART_AGENTS=0 > $tmp.defaults
    $sudo cp $tmp.defaults $PCP_SYSCONFIG_DIR/pmcd
}

signal=$PCP_BINADM_DIR/pmsignal

# real QA test starts here
_save_config $PCP_SYSCONFIG_DIR/pmcd
_writable_primary_logger
_disable_agent_restart
ls -l $PCP_VAR_DIR/config/pmlogger/config.default >>$seq.full
cat $PCP_VAR_DIR/config/pmlogger/config.default >>$seq.full
pmlc -P </dev/null 2>&1 >>$seq.full
_service pcp restart | _filter_pcp_start
_wait_for_pmcd
_wait_for_pmlogger
$PCP_PS_PROG $PCP_PS_ALL_FLAGS | egrep '([P]ID)|([p]mlogger)' >>$here/$seq.full

pmlc -ie <<End-of-File >$tmp.out 2>$tmp.err
# not connected
query sample.drift
advisory on 1 hour sample.drift

connect primary
# incomplete - syntax error
query sample.bin [
query { 
sample.drift
# eat input
# up to
# next } -- curly brace
}
query {
barf.no.metric
# suck to } ... not that one, this one ..
}

End-of-File
_filter_pmlc <$tmp.err
_filter_pmlc <$tmp.out

for delta in "-1 msec" "75 hours" "599 hours" "1200 hours"
do
    $sudo rm -f $tmp.*
    cat <<End-of-File >$tmp.config
log advisory on $delta sample.bin [100]
End-of-File
    # pmlogger -c $tmp.config -T 4 $tmp
    $sudo rm -f $tmp.*
    _start_up_pmlogger -L -c /dev/null -l $tmp.log -T 4 $tmp
    pmsleep 0.5
    pmlc -ie <<End-of-File >$tmp.out 2>$tmp.err
connect $pid
log advisory on $delta sample.bin [100]
End-of-File
_filter_pmlc <$tmp.err
_filter_pmlc <$tmp.out
    $sudo $signal -s TERM $pid
    _wait_pmlogger_end $pid
    _filter_pmlogger_log <$tmp.log
done
pmsleep 0.5

pmlc -ie <<End-of-File >$tmp.out 2>$tmp.err
connect primary
log mandatory on 1 hour { sample.bin, sample.drift, sample.seconds }
query sample.bin[333]
End-of-File
_filter_pmlc <$tmp.err
_filter_pmlc <$tmp.out

$sudo $signal -a pmdasample
pmsleep 0.5				# time to cleanup
pminfo -f sample >/dev/null 2>&1	# and make sure pmcd notices

pmlc -ie <<End-of-File >$tmp.out 2>$tmp.err
connect primary
query sample.bin[100]
query sample.bin[100]
End-of-File
_filter_pmlc <$tmp.err
_filter_pmlc <$tmp.out

$sudo $signal -a -s HUP pmcd
pmsleep 0.5				# time to cleanup
pmlc -ie <<End-of-File >$tmp.out 2>$tmp.err
connect primary
query sample.bin[100]

query { sample.bin,sample.drift sample.seconds }
query { sample.bin sample.drift,sample.seconds }
query sample.bin [100,200,300 400 500,700]
query sample.bin [100,"bin-200"]
End-of-File
_filter_pmlc <$tmp.err
# nl state is non-deterministic because pmlogger might, or might not,
# have logger these metrics by now
#
_filter_pmlc <$tmp.out \
| sed -e 's/mand on    /mand on  nl/'

pmlc -ie <<End-of-File >$tmp.out 2>$tmp.err
connect primary
log mandatory maybe {
    sample.bin
    sample.drift, sample.seconds
}
End-of-File
_filter_pmlc <$tmp.err
_filter_pmlc <$tmp.out

status=0
exit