Merge branch 'master' of git://git.pcp.io/pcp into qt
[pcp.git] / qa / 135
blob3758d1fe9a7c7c45448460091230f82d8b713659
1 #! /bin/sh
2 # PCP QA Test No. 135
3 # Simple forwards and backwards scan of a multi-volume log
5 # Copyright (c) 1995-2002 Silicon Graphics, Inc. All Rights Reserved.
8 seq=`basename $0`
9 echo "QA output created by $seq"
11 # get standard filters
12 . ./common.product
13 . ./common.filter
14 . ./common.check
16 trap "$sudo rm -f $tmp.*; exit" 0 1 2 3 15
17 signal=$PCP_BINADM_DIR/pmsignal
19 _do_time()
21 tstamp=`wc -l <$tmp.sed | sed -e 's/ *//g'`
22 tstamp=`expr $tstamp - 2`
23 sed >$tmp.tmp \
24 -e "s;$tmp;MYLOG;" \
25 -e 's/from host .*/from host LOCALHOST/' \
26 -e "/\"$logger_pid\"/s/$logger_pid/LOGGER_PID/g" \
27 -e '/pmcd.pmlogger.port/s/value .*/value PORT/' \
28 -e '/pmcd.pmlogger.host/s/value ".*/value "HOST"/' \
29 -e '/pmcd.pmlogger.archive/s/value ".*/value "PATH"/'
30 sed -n <$tmp.tmp \
31 -e 's/.*\([0-9][0-9]:[0-9][0-9]:[0-9][0-9]\.[0-9][0-9][0-9]\).*/\1/p' \
32 | LC_COLLATE=POSIX sort -u \
33 | while read time
35 if grep $time $tmp.sed >/dev/null
36 then
38 else
39 echo "s/$time/TIMESTAMP-$tstamp/g" >>$tmp.sed
40 tstamp=`expr $tstamp + 1`
42 done
44 sed <$tmp.sed >$tmp.sed.tmp \
45 -e '${
46 s/^s/xs/
47 s/TIME/FOO/
48 }' \
49 -e '4,${
50 s/^s\//\//
51 s/.TIME.*/\/d/
52 }' \
53 -e '${
54 s/^xs/s/
55 s/FOO/TIME/
56 s/P-.*/P-LAST\//
58 mv $tmp.sed.tmp $tmp.sed
60 sed -f $tmp.sed $tmp.tmp \
61 | sed -e 's/value .*/value .../' \
62 -e 's/ [0-9][0-9]:[0-9][0-9]:[0-9][0-9]/ hh:mm:ss/'
65 # real QA test starts here
66 $sudo rm -f $tmp.* $seq.full
68 echo 's/ [A-Z][a-z][a-z] [A-Z][a-z][a-z] .. / month-day /g' >$tmp.sed
69 echo 's/ [12][0-9][0-9][0-9]/ year/' >>$tmp.sed
71 _start_up_pmlogger -L -c /dev/null -l $tmp.log $tmp >$tmp.err 2>&1
72 logger_pid=$pid
74 pmsleep 1.1
76 pmlc <<End-of-File
77 connect $logger_pid
78 log mandatory on 100 msec sampledso.milliseconds
79 End-of-File
81 for i in 1 2 3 4 5
83 pmsleep 0.5
84 pmlc <<End-of-File
85 connect $logger_pid
86 new volume
87 End-of-File
88 done
90 pmsleep 0.5
91 $sudo $signal -s TERM $logger_pid
92 _wait_pmlogger_end $logger_pid
94 echo
95 echo "=== forwards ==="
96 pmdumplog -lm $tmp | sed -e '/^$/d' | tee $tmp.list | _do_time
97 LC_COLLATE=POSIX sort -o $tmp.list $tmp.list
99 echo
100 echo "=== backwards ==="
101 pmdumplog -lmr $tmp | sed -e '/^$/d' | tee $tmp.rev | _do_time
102 sed -e '/dump in reverse order/d' $tmp.rev \
103 | LC_COLLATE=POSIX sort -o $tmp.rev
105 echo
106 echo "=== expect no differences ==="
107 if diff $tmp.list $tmp.rev
108 then
110 else
111 echo "+++ forward +++" >>$seq.full
112 cat $tmp.list >>$seq.full
113 echo >>$seq.full
114 echo "+++ backward +++" >>$seq.full
115 cat $tmp.rev >>$seq.full
118 exit 0