/var/lib/pcp/testsuite/check-group 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 | #!/bin/sh
#
# Check group file and qa scripts for a specific pcp command ($1)
#
# $1 is assumed to be _both_ the name of a command that appears in
# the QA scripts (or part of a command, e.g. purify in _setup_purify)
# and the name of a group in the group file
#
tmp=/var/tmp/check-group-$$
trap "rm -f $tmp.*; exit 0" 0 1 2 3 15
if [ $# -ne 1 ]
then
echo "Usage: $0 pcp-app"
exit 1
fi
touch $tmp.tmp
for seq in [0-9][0-9][0-9] [0-9][0-9][0-9][0-9]
do
if grep -q "^$seq[: ]" group
then
:
else
echo "$seq: Error: file exists but missing from group"
fi
# special control lines
# check-group-include: group ..
# check-group-exclude: group ..
grep '# check-group-' $seq >$tmp.chk
if [ -s $tmp.chk ]
then
if egrep "check-group-include:.* $1( |\$)" <$tmp.chk >/dev/null
then
#debug# echo "$seq: explicit include"
echo $seq >>$tmp.tmp
continue
fi
if egrep "check-group-exclude:.* $1( |\$)" <$tmp.chk >/dev/null
then
#debug# echo "$seq: explicit exclude"
continue
fi
fi
# need to handle some alias cases ...
#
case "$1"
in
pmclient) # executable might be pmlient_fg
( grep -v '^#' $seq \
| egrep -q "(^[ ]*(pmclient|pmclient_fg)([ '\"]|$))|([ /'\"_=](pmclient|pmclient_fg)([ '\"_]|$))" \
) && echo $seq >>$tmp.tmp
;;
collectl) # executable might be collectl2pcp or pmcollectl or
# pcp collectl
( grep -v '^#' $seq \
| egrep -q "(^([ ]*collectl2pcp|pmcollectl|(pcp collectl))([ '\"]|$))|([ /'\"_=](collectl2pcp|pmcollectl|(pcp collectl))([ '\"_]|$))" \
) && echo $seq >>$tmp.tmp
;;
pmdumplog) # executable might be hidden in _exercise_compression
# wrapper from common.compress
( grep -v '^#' $seq \
| egrep -q "(^[ ]*(pmdumplog|_exercise_compression)([ '\"]|$))|([ /'\"_=](pmdumplog|_exercise_compression)([ '\"_]|$))" \
) && echo $seq >>$tmp.tmp
;;
*)
( grep -v '^#' $seq \
| egrep -q "(^[ ]*$1([ '\"]|$))|([ /'\"_=]$1([ '\"_]|$))" \
) && echo $seq >>$tmp.tmp
;;
esac
done
sed <group -e '/^$/d' -e '/^[^0-9]/d' -e 's/ .*//' -e 's/:/ /' \
| while read seq state
do
[ -f "$seq" ] && continue
[ "$state" = reserved ] && continue
echo "$seq: Error: in group but file not found"
done
sort -o $tmp.scripts $tmp.tmp
check -r -n -g "$1" | sort \
| while read f
do
[ -f "$f" ] && echo "$f"
done >$tmp.group
comm -23 $tmp.scripts $tmp.group >$tmp.tmp
if [ -s $tmp.tmp ]
then
echo "$1 in QA scripts and NOT in group ..."
sort -n $tmp.tmp | sed -e 's/^/ /'
echo
fi
comm -13 $tmp.scripts $tmp.group >$tmp.tmp
if [ -s $tmp.tmp ]
then
echo "$1 in group and NOT in QA scripts ..."
sort -n $tmp.tmp | sed -e 's/^/ /'
fi
comm -12 $tmp.scripts $tmp.group >$tmp.tmp
echo "$1 in group and QA scripts `wc -l <$tmp.tmp | sed -e 's/ //g'` times"
|