summaryrefslogtreecommitdiff
path: root/qa/src/batch_import.perl
diff options
context:
space:
mode:
Diffstat (limited to 'qa/src/batch_import.perl')
-rwxr-xr-xqa/src/batch_import.perl78
1 files changed, 78 insertions, 0 deletions
diff --git a/qa/src/batch_import.perl b/qa/src/batch_import.perl
new file mode 100755
index 0000000..e68f365
--- /dev/null
+++ b/qa/src/batch_import.perl
@@ -0,0 +1,78 @@
+#
+# Exercise libpcp_import "batching" extensions in Perl import API
+#
+# Copyright (c) 2013 Red Hat.
+#
+use strict;
+use warnings;
+
+$| = 1; # don't buffer output
+use PCP::LogImport;
+
+my $ctx1;
+my $ctx2;
+my $hdl1;
+my $hdl2;
+
+sub check
+{
+ my ($sts, $name) = @_;
+ if ($sts < 0) { print $name . ": Error: " . pmiErrStr($sts) . "\n"; }
+ else {
+ print $name . ": OK";
+ if ($sts != 0) { print " ->$sts"; }
+ print "\n";
+ }
+}
+
+$ctx1 = pmiStart("myarchive", 0);
+check($ctx1, "pmiStart");
+
+$_ = pmiSetHostname("batching.com");
+check($_, "pmiSetHostname");
+$_ = pmiSetTimezone("GMT-12");
+check($_, "pmiSetTimezone");
+
+$_ = pmiUseContext($ctx1);
+check($_, "pmiUseContext");
+
+$_ = pmiAddMetric("my.metric.foo", pmid_build(PMI_DOMAIN,0,1), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT, pmiUnits(1,-1,0,PM_SPACE_MBYTE,PM_TIME_SEC,0));
+check($_, "pmiAddMetric");
+$_ = pmiAddMetric("my.metric.bar", PM_ID_NULL, PM_TYPE_U64, pmInDom_build(PMI_DOMAIN,1), PM_SEM_INSTANT, pmiUnits(1,-1,0,PM_SPACE_MBYTE,PM_TIME_SEC,0));
+check($_, "pmiAddMetric");
+$_ = pmiAddMetric("my.metric.long", PM_ID_NULL, PM_TYPE_64, PM_INDOM_NULL, PM_SEM_INSTANT, pmiUnits(0,0,0,0,0,0));
+check($_, "pmiAddMetric");
+$_ = pmiAddMetric("my.metric.double", PM_ID_NULL, PM_TYPE_DOUBLE, PM_INDOM_NULL, PM_SEM_INSTANT, pmiUnits(0,0,0,0,0,0));
+check($_, "pmiAddMetric");
+$_ = pmiAddMetric("my.metric.string", PM_ID_NULL, PM_TYPE_STRING, PM_INDOM_NULL, PM_SEM_INSTANT, pmiUnits(0,0,0,0,0,0));
+check($_, "pmiAddMetric");
+$_ = pmiAddMetric("my.metric.float", PM_ID_NULL, PM_TYPE_FLOAT, PM_INDOM_NULL, PM_SEM_DISCRETE, pmiUnits(0,0,0,0,0,0));
+check($_, "pmiAddMetric");
+$_ = pmiAddMetric("my.metric.strung", PM_ID_NULL, PM_TYPE_STRING, PM_INDOM_NULL, PM_SEM_INSTANT, pmiUnits(0,0,0,0,0,0));
+check($_, "pmiAddMetric");
+
+$_ = pmiBatchPutValue("my.metric.string", "", "a third string value");
+check($_, "pmiBatchPutValue");
+$_ = pmiBatchWrite(2, 70000);
+check($_, "pmiBatchWrite");
+$_ = pmiBatchPutValue("my.metric.strung", "", "a first string value");
+check($_, "pmiBatchPutValue");
+$_ = pmiBatchPutValue("my.metric.string", "", "a second string value");
+check($_, "pmiBatchPutValue");
+$_ = pmiBatchWrite(0, 110000);
+check($_, "pmiBatchWrite");
+$hdl1 = pmiGetHandle("my.metric.string", "");
+check($hdl1, "pmiGetHandle");
+$_ = pmiBatchPutValueHandle($hdl1, "a fourth string value");
+check($_, "pmiBatchPutValueHandle");
+$hdl2 = pmiGetHandle("my.metric.strung", "");
+check($hdl2, "pmiGetHandle");
+$_ = pmiBatchPutValueHandle($hdl2, "a fifth string value");
+check($_, "pmiBatchPutValueHandle");
+$_ = pmiBatchWrite(3, 10000);
+check($_, "pmiBatchWrite");
+
+$_ = pmiBatchEnd();
+check($_, "pmiBatchEnd");
+
+pmiDump();