summaryrefslogtreecommitdiff
path: root/qa/338
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2014-10-26 12:33:50 +0400
committerIgor Pashev <pashev.igor@gmail.com>2014-10-26 12:33:50 +0400
commit47e6e7c84f008a53061e661f31ae96629bc694ef (patch)
tree648a07f3b5b9d67ce19b0fd72e8caa1175c98f1a /qa/338
downloadpcp-47e6e7c84f008a53061e661f31ae96629bc694ef.tar.gz
Debian 3.9.10debian/3.9.10debian
Diffstat (limited to 'qa/338')
-rwxr-xr-xqa/338157
1 files changed, 157 insertions, 0 deletions
diff --git a/qa/338 b/qa/338
new file mode 100755
index 0000000..14b73bf
--- /dev/null
+++ b/qa/338
@@ -0,0 +1,157 @@
+#! /bin/sh
+# PCP QA Test No. 338
+# pmlogger_daily ... do you work at all?
+#
+# NEW VERSION for YYYYDDMM style naming convention (see also 530)
+#
+# NOTE - THIS TEST WILL FAIL IF RUN IN THE FIRST 5 MINUTES AFTER
+# MIDNIGHT - c'est la vie, I'm afraid.
+#
+# Copyright (c) 2008 Silicon Graphics, Inc. All Rights Reserved.
+#
+
+seq=`basename $0`
+echo "QA output created by $seq"
+
+# get standard environment, filters and checks
+. ./common.product
+. ./common.filter
+. ./common.check
+
+_filter()
+{
+ tee -a $seq.full \
+ | $PCP_AWK_PROG '
+/^Archive files older than/ { eatlines=1; longone=" "; print; next; }
+eatlines { if ( match ($0, "^ ") ) {
+ for ( i=1; i <=NF; i++ ) {
+ longone = sprintf ("%s %s",longone,$i);
+ }
+ } else {
+ print longone | "fmt -76";
+ close ("fmt -76");
+ longone = ""; eatlines = 0;
+ print;
+ }
+ next;
+ }
+END { if ( eatlines ) {
+ print longone | "fmt -76";
+ close ("fmt -76");
+ }
+ }
+ { print }' \
+ | sed -f $tmp/sed \
+ | sed \
+ -e "s;$tmp;TMP;g" \
+ -e "s/`hostname`/HOST/g" \
+ -e "s/localhost/HOST/g" \
+ -e "s/local:/HOST/g" \
+ -e "s/`hostname | sed -e 's/\..*//'`/HOST/g" \
+ -e '/\/var\/adm\/pcplog\/NOTICES/d' \
+ -e 's/-rw-r--r--\./-rw-r--r--/' \
+ | $PCP_AWK_PROG '
+/-rw-r--r--/ { print $1,"...",$5,"...",$9; next }
+ { print }' \
+ | _filter_cron_scripts
+}
+
+status=1 # failure is the default!
+trap "cd $here; $sudo rm -rf $tmp; $sudo mv $PCP_LOG_DIR/NOTICES.$$ $PCP_LOG_DIR/NOTICES; exit \$status" 0 1 2 3 15
+$sudo rm -rf $tmp
+
+# real QA test starts here
+
+# take explicit control of the umask
+#
+umask 022
+
+$sudo mv $PCP_LOG_DIR/NOTICES $PCP_LOG_DIR/NOTICES.$$
+rm -f $seq.full
+mkdir $tmp
+
+# real QA test starts here
+unset verbose
+for loop in 1 2
+do
+ echo >$tmp/sed
+ for day in 0 1 2 3 4 5
+ do
+ fmt=%Y%m%d
+ # aiming for the time to be 00:02 and 00:04 on each day,
+ # even if that is ahead of NOW for today
+ #
+ now_hr=`pmdate %H`
+ hour=-$now_hr
+ now_min=`pmdate %M`
+ min2=`expr 2 - $now_min`
+ [ "$min2" -ge 0 ] && min2="+$min2"
+ min4=`expr 4 - $now_min`
+ [ "$min4" -ge 0 ] && min4="+$min4"
+ namea=`pmdate -${day}d ${hour}H ${min2}M $fmt.%H.%M`
+ nameb=`pmdate -${day}d ${hour}H ${min4}M $fmt.%H.%M`
+ yesterday=`pmdate -1d ${hour}H ${min2}M $fmt`
+ stampa=`echo $namea | sed -e 's/\.//g'`
+ stampb=`echo $nameb | sed -e 's/\.//g'`
+ echo "s/$namea/NOW-$day.00.02/g" >>$tmp/sed
+ echo "s/$nameb/NOW-$day.00.04/g" >>$tmp/sed
+
+ for ext in 0 index meta
+ do
+ cp src/arch_a.$ext $tmp/$namea.$ext
+ touch -t $stampa $tmp/$namea.$ext
+ cp src/arch_b.$ext $tmp/$nameb.$ext
+ touch -t $stampb $tmp/$nameb.$ext
+ done
+ done
+ echo "s/NOW-0/TODAY/g" >>$tmp/sed
+ echo "s/NOW-1/YESTERDAY/g" >>$tmp/sed
+ echo "s/`pmdate %Y%m%d`/TODAY/g" >>$tmp/sed
+ echo "s/$yesterday/YESTERDAY/g" >>$tmp/sed
+
+ echo >$tmp/control '$version=1.1
+LOCALHOSTNAME n n '"$tmp"' ./config'
+
+ cat $tmp/sed >>$seq.full
+ echo >>$seq.full
+
+ echo
+ echo "=== [${verbose+verbose}] regular show ==="
+ echo "=== [${verbose+verbose}] regular show ===" >>$seq.full
+ $sudo $PCP_BINADM_DIR/pmlogger_daily -o -c $tmp/control -k 3 $verbose 2>&1 \
+ | _filter
+ ls -lt $tmp >>$seq.full
+ ls $tmp | sed -f $tmp/sed | tee -a $seq.full | LC_COLLATE=POSIX sort
+
+ echo
+ echo "=== [${verbose+verbose}] nothing to do but cull some more ==="
+ echo "=== [${verbose+verbose}] nothing to do but cull some more ===" >>$seq.full
+ for ext in 0 index meta
+ do
+ mv $tmp/$yesterday.$ext $tmp/save.$ext
+ done
+ $sudo $PCP_BINADM_DIR/pmlogger_daily -o -c $tmp/control -k 2 $verbose 2>&1 \
+ | _filter
+ ls -lt $tmp >>$seq.full
+ ls $tmp | sed -f $tmp/sed | tee -a $seq.full | LC_COLLATE=POSIX sort
+
+ echo
+ echo "=== [${verbose+verbose}] error, output already exists ==="
+ echo "=== [${verbose+verbose}] error, output already exists ===" >>$seq.full
+ for ext in 0 index meta
+ do
+ cp src/arch_a.$ext $tmp/$yesterday.17.18.$ext
+ mv $tmp/save.$ext $tmp/$yesterday.$ext
+ done
+ $sudo $PCP_BINADM_DIR/pmlogger_daily -o -c $tmp/control -k 2 $verbose 2>&1 \
+ | _filter
+ ls -lt $tmp >>$seq.full
+ ls $tmp | sed -f $tmp/sed | tee -a $seq.full | LC_COLLATE=POSIX sort
+
+ verbose=-V
+ rm -f $tmp/*
+done
+
+# all done
+status=0
+exit