summaryrefslogtreecommitdiff
path: root/qa/1108
diff options
context:
space:
mode:
Diffstat (limited to 'qa/1108')
-rwxr-xr-xqa/1108100
1 files changed, 100 insertions, 0 deletions
diff --git a/qa/1108 b/qa/1108
new file mode 100755
index 0000000..c551afd
--- /dev/null
+++ b/qa/1108
@@ -0,0 +1,100 @@
+#! /bin/sh
+# PCP QA Test No. 1108 (formerly 830)
+# pv:821339 sed gives "Too many commands" in cron.pmdaily script
+#
+# Copyright (c) 1995-2002 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
+
+_cleanup()
+{
+ test -f $PCP_LOG_DIR/NOTICES.orig && \
+ $sudo mv $PCP_LOG_DIR/NOTICES.orig $PCP_LOG_DIR/NOTICES
+ $sudo rm -f $tmp.*
+}
+
+status=0 # success is the default!
+trap "_cleanup; exit \$status" 0 1 2 3 15
+rm -f $seq.full
+
+_filter()
+{
+ sed \
+ -e '/^+ cd /s/cd .*/cd .../' \
+ -e '/^+ mv /s/mv .*/mv .../' \
+ -e '/^+ pmlogger /s/pmlogger .*/pmlogger .../' \
+ -e '/^+ pmnewlog /s/pmnewlog .*/pmnewlog .../' \
+ -e '/^+ mkaf /s/mkaf .*/mkaf .../' \
+ -e '/^+ kill/{
+s/INT //
+s/-s USR1 //
+s/ [0-9][0-9]*/ ... PID/
+}' \
+ -e '/^+ rm /d' \
+ -e '/^+ pmlogger_merge /d' \
+ -e '/^[12][0-9][0-9][0-9][01][0-9][0-3][0-9]\.[0-9][0-9]\.[0-9][0-9]/d' \
+ -e '/Warning: no write access/d' \
+ -e 's/ *$//' \
+ | tr -s ' '
+}
+
+# Avoid conflict with normal management of the summary logs ...
+# this is lifted from pmlogger_daily
+
+# each summarized log is named yyyymmdd using yesterday's date
+# previous day's logs are named yymmdd (old format) or
+# yyyymmdd (new year 2000 format)
+#
+SUMMARY_LOGNAME=`pmdate -1d %Y%m%d`
+echo "SUMMARY_LOGNAME=$SUMMARY_LOGNAME" >>$seq.full
+echo "Files to be removed before we start ..." >>$seq.full
+ls -l $PCP_LOG_DIR/pmlogger/*/$SUMMARY_LOGNAME.* >>$seq.full 2>&1
+$sudo rm -f $PCP_LOG_DIR/pmlogger/*/$SUMMARY_LOGNAME.*
+
+# create a temporary control file with well-known contents
+$sudo rm -f $tmp.control
+echo '$version=1.1' >> $tmp.control
+echo 'LOCALHOSTNAME y n PCP_LOG_DIR/pmlogger/LOCALHOSTNAME -c config.default' >> $tmp.control
+
+# make sure pmlogger_daily gets a timestamp that is at least
+# a minute after the previous primary logger was started to avoid
+# the collision on the timestamp and the extra 3 mv's needed to
+# rename the archive files from <timestamp> to <timestamp>-00
+#
+current=`pminfo -f pmcd.pmlogger.archive | sed -n -e '/"primary"/{
+s;.*/;;
+s/"//
+p
+}'`
+if [ -z "$current" ]
+then
+ echo "Arrgh ... cannot get current primary pmlogger timestamp from"
+ pminfo -f pmcd.pmlogger.archive
+ status=1
+ exit
+fi
+echo "current=$current" >>$seq.full
+sec=0
+while [ $sec -lt 60 ]
+do
+ now=`pmdate %Y%m%d.%H.%M`
+ [ "$now" != "$current" ] && break
+ echo "now=$now" >>$seq.full
+ sleep 1
+ sec=`expr $sec + 1`
+done
+echo "done, now=$now" >>$seq.full
+
+# real QA test starts here
+test -f $PCP_LOG_DIR/NOTICES && \
+ $sudo mv $PCP_LOG_DIR/NOTICES $PCP_LOG_DIR/NOTICES.orig
+$sudo $PCP_BINADM_DIR/pmlogger_daily -o -k 550 -N -c $tmp.control 2>&1 \
+| tee -a $seq.full \
+| _filter