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 164
|
#!/bin/sh
# PCP QA Test No. 1267
# Test that pmlogrewrite(1) updates label records when PMIDs change
#
# Copyright (c) 2018 Red Hat. All Rights Reserved.
#
seq=`basename $0`
echo "QA output created by $seq"
# get standard environment, filters and checks
. ./common.product
. ./common.filter
. ./common.check
_cleanup()
{
cd $here
$sudo rm -rf $tmp $tmp.*
}
status=1 # failure is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15
_filter()
{
tmpx=`echo $tmp`
sed -e 's/^Archive:.* Host:/ARCHIVE: Host:/' \
-e "s|$tmpx|TMP|g" \
-e 's|PID for pmlogger: [0-9]*|PID for pmlogger: PID|'
}
# find these lines, report 'em and the next one
# PMIDs 60.0.20, 200.0.20, 60.100.20 and 60.0.400 labels
# Domain 60, 200 labels
# and this one, report 'em and the next two
# PMID: 60.0.20, 200.0.20, 60.100.20 and 60.0.400
#
_pick()
{
tee -a $seq_full \
| $PCP_AWK_PROG '
$1 == "PMID" && $3 == "labels" {
if ($2 == "60.0.20" || $2 == "200.0.20" ||
$2 == "60.100.20" || $2 == "60.0.400")
want = 2
}
$1 == "PMID:" {
if ($2 == "60.0.20" || $2 == "200.0.20" ||
$2 == "60.100.20" || $2 == "60.0.400")
want = 3
}
$1 == "Domain" && $3 == "labels" {
if ($2 == "60" || $2 == "200")
want = 2
}
want > 0 { print; want-- }' \
| _filter
}
# real QA test starts here
DIR=archives
# First, run pmlogrewrite against the archive, changing PMID 60.0.20 to 200.0.20.
echo "=== PMID 60.0.20 -> 200.0.20 ==="
CONFIG=$tmp.config
cat > $CONFIG << EOF
METRIC 60.0.20 { PMID -> 200.0.20 }
EOF
echo contents of $CONFIG >> $seq_full
echo ........................ >> $seq_full
cat $CONFIG >> $seq_full
echo ........................ >> $seq_full
IN=$DIR/20180127.08.40
OUT=$tmp.pmlogrewrite
rm -f $OUT.*
echo "Running pmlogrewrite -c $CONFIG $IN $OUT" | _filter | tee -a $seq_full
pmlogrewrite -c $CONFIG $IN $OUT 2>&1 >> $seq_full
[ $? -eq 0 ] || echo "Error running pmlogrewrite -c $CONFIG $IN $OUT -- see $seq.full"
# Now run pmdumplog against the original and extracted archives.
DUMP1=$tmp.original.txt
echo "Running pmdumplog -zide $IN" | _filter | tee -a $seq_full
pmdumplog -zide $IN 2>&1 > $DUMP1
DUMP2=$tmp.extracted.txt
echo "Running pmdumplog -zide $OUT" | _filter | tee -a $seq_full
pmdumplog -zide $OUT 2>&1 > $DUMP2
# Make sure the PMID has been updated in the label records
echo "Input archive:" | tee -a $seq_full
_pick <$DUMP1 2>&1
echo "Output archive:" | tee -a $seq_full
_pick <$DUMP2 2>&1
# Now, run pmlogrewrite against the archive, changing PMID 60.0.20 to 60.100.20.
echo
echo "=== PMID 60.0.20 -> 60.100.20 ==="
CONFIG=$tmp.config
cat > $CONFIG << EOF
METRIC 60.0.20 { PMID -> 60.100.20 }
EOF
echo contents of $CONFIG >> $seq_full
echo ........................ >> $seq_full
cat $CONFIG >> $seq_full
echo ........................ >> $seq_full
IN=$DIR/20180127.08.40
OUT=$tmp.pmlogrewrite
rm -f $OUT.*
echo "Running pmlogrewrite -c $CONFIG $IN $OUT" | _filter | tee -a $seq_full
pmlogrewrite -c $CONFIG $IN $OUT 2>&1 >> $seq_full
[ $? -eq 0 ] || echo "Error running pmlogrewrite -c $CONFIG $IN $OUT -- see $seq.full"
pmlogextract $OUT $tmp.xxxx
# Now run pmdumplog against the original and extracted archives.
DUMP1=$tmp.original.txt
echo "Running pmdumplog -zide $IN" | _filter | tee -a $seq_full
pmdumplog -zide $IN 2>&1 > $DUMP1
DUMP2=$tmp.extracted.txt
echo "Running pmdumplog -zide $OUT" | _filter | tee -a $seq_full
pmdumplog -zide $OUT 2>&1 > $DUMP2
# Make sure the PMID has been updated in the label records
echo "Input archive:" | tee -a $seq_full
_pick <$DUMP1 2>&1
echo "Output archive:" | tee -a $seq_full
_pick <$DUMP2 2>&1
# Now, run pmlogrewrite against the archive, changing PMID 60.0.20 to 60.0.400.
echo
echo "=== PMID 60.0.20 -> 60.0.400 ==="
CONFIG=$tmp.config
cat > $CONFIG << EOF
METRIC 60.0.20 { PMID -> 60.0.400 }
EOF
echo contents of $CONFIG >> $seq_full
echo ........................ >> $seq_full
cat $CONFIG >> $seq_full
echo ........................ >> $seq_full
IN=$DIR/20180127.08.40
OUT=$tmp.pmlogrewrite
rm -f $OUT.*
echo "Running pmlogrewrite -c $CONFIG $IN $OUT" | _filter | tee -a $seq_full
pmlogrewrite -c $CONFIG $IN $OUT 2>&1 >> $seq_full
[ $? -eq 0 ] || echo "Error running pmlogrewrite -c $CONFIG $IN $OUT -- see $seq.full"
# Now run pmdumplog against the original and extracted archives.
DUMP1=$tmp.original.txt
echo "Running pmdumplog -zide $IN" | _filter | tee -a $seq_full
pmdumplog -zide $IN 2>&1 > $DUMP1
DUMP2=$tmp.extracted.txt
echo "Running pmdumplog -zide $OUT" | _filter | tee -a $seq_full
pmdumplog -zide $OUT 2>&1 > $DUMP2
# Make sure the PMID has been updated in the label records
echo "Input archive:" | tee -a $seq_full
_pick <$DUMP1 2>&1
echo "Output archive:" | tee -a $seq_full
_pick <$DUMP2 2>&1
# success, all done
status=0
exit
|