summaryrefslogtreecommitdiff
path: root/qa/527
diff options
context:
space:
mode:
Diffstat (limited to 'qa/527')
-rwxr-xr-xqa/527136
1 files changed, 136 insertions, 0 deletions
diff --git a/qa/527 b/qa/527
new file mode 100755
index 0000000..d86ab97
--- /dev/null
+++ b/qa/527
@@ -0,0 +1,136 @@
+#!/bin/sh
+# PCP QA Test No. 527
+# Check that timestamps are monotonic increasing for archives
+# created by libpcp_import. Based on
+# https://bugzilla.redhat.com/show_bug.cgi?id=958745
+#
+# Copyright (c) 2013 Red Hat, Inc. and Ken McDonell. All Rights Reserved.
+#
+
+seq=`basename $0`
+echo "QA output created by $seq"
+
+# get standard environment, filters and checks
+. ./common.product
+. ./common.filter
+. ./common.check
+
+[ $PCP_VER -ge 3801 ] || _notrun libpcp_import fix is in PCP 3.8.1
+
+_filter()
+{
+ sed \
+ -e "s;$tmp;TMP;g"
+}
+
+status=1 # failure is the default!
+$sudo rm -rf $tmp.* $seq.full
+trap "cd $here; rm -rf $tmp.*; exit \$status" 0 1 2 3 15
+
+# first data file
+#
+cat <<'End-of-File' >$tmp.gfs_inodes.csv
+Date,Time,Device,inodes
+2013-04-18,13:40,/dev/dm-12,102808
+2013-04-18,13:45,/dev/dm-12,102798
+2013-04-18,13:50,/dev/dm-12,102799
+2013-04-18,13:55,/dev/dm-12,102808
+2013-04-18,14:00,/dev/dm-12,102804
+2013-04-18,14:05,/dev/dm-12,103182
+2013-04-18,14:10,/dev/dm-12,102864
+2013-04-18,14:15,/dev/dm-12,102810
+2013-04-18,14:20,/dev/dm-12,102805
+End-of-File
+
+# second data file
+#
+cat <<'End-of-File' >$tmp.gfs_metadata.csv
+Date,Time,Device,fmb
+2013-04-18,13:40,/dev/dm-12,3712689
+2013-04-18,13:45,/dev/dm-12,3712699
+2013-04-18,13:50,/dev/dm-12,3712698
+2013-04-18,13:55,/dev/dm-12,3712689
+2013-04-18,14:00,/dev/dm-12,3712693
+2013-04-18,14:05,/dev/dm-12,3712273
+2013-04-18,14:10,/dev/dm-12,3712349
+2013-04-18,14:15,/dev/dm-12,3711980
+2013-04-18,14:20,/dev/dm-12,3711842
+End-of-File
+
+# Perl script
+#
+cat <<'End-of-File' >$tmp.pl
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use Date::Parse;
+use Date::Format;
+use PCP::LogImport;
+
+End-of-File
+echo "pmiStart(\"$tmp.gfs\", 0);" >>$tmp.pl
+cat <<'End-of-File' >>$tmp.pl
+$_ = pmiSetTimezone('UTC');
+$_ == 0 || die "pmiSetTimezone(UTC): " . pmiErrStr($_);
+
+$_ = pmiAddMetric("gfs.inodes",
+ PM_ID_NULL, PM_TYPE_DOUBLE, PM_INDOM_NULL,
+ PM_SEM_INSTANT, pmiUnits(0,0,1,0,0,PM_COUNT_ONE));
+$_ == 0 || die "pmiAddMetric(gfs.inodes): " . pmiErrStr($_);
+
+
+End-of-File
+echo "open(INFILE, \"<$tmp.gfs_inodes.csv\");" >>$tmp.pl
+cat <<'End-of-File' >>$tmp.pl
+while (<INFILE>) {
+ next if $. == 1;
+ chomp;
+ my @part = split(/,/, $_);
+
+ $_ = pmiPutValue("gfs.inodes", "", $part[3]);
+ $_ == 0 || die "pmiPutValue(gfs.inodes): " . pmiErrStr($_);
+
+ $_ = pmiWrite(str2time($part[0] . "T" . $part[1] . ":00", 'UTC'), 0);
+ $_ == 0 || die "pmiWrite(gfs.fmb): " . pmiErrStr($_);
+}
+close(INFILE);
+
+
+$_ = pmiAddMetric("gfs.fmb",
+ PM_ID_NULL, PM_TYPE_DOUBLE, PM_INDOM_NULL,
+ PM_SEM_INSTANT, pmiUnits(0,0,1,0,0,PM_COUNT_ONE));
+$_ == 0 || die "pmiAddMetric(gfs.fmb): " . pmiErrStr($_);
+
+End-of-File
+echo "open(INFILE, \"<$tmp.gfs_metadata.csv\");" >>$tmp.pl
+cat <<'End-of-File' >>$tmp.pl
+while (<INFILE>) {
+ next if $. == 1;
+ chomp;
+ my @part = split(/,/, $_);
+
+ $_ = pmiPutValue("gfs.fmb", "", $part[3]);
+ $_ == 0 || die "pmiPutValue(gfs.fmb): " . pmiErrStr($_);
+
+ $_ = pmiWrite(str2time($part[0] . "T" . $part[1] . ":00", 'UTC'), 0);
+ $_ == 0 || die "pmiWrite(gfs.fmb): " . pmiErrStr($_);
+}
+close(INFILE);
+
+
+pmiEnd();
+End-of-File
+
+# real QA test starts here
+perl $tmp.pl 2>&1 | _filter
+
+for part in 0 meta index
+do
+ [ -f $tmp.$part ] && echo "oops, .$part file created"
+done
+
+# success, all done
+status=0
+
+exit