diff options
Diffstat (limited to 'qa/src/batch_import.perl')
-rwxr-xr-x | qa/src/batch_import.perl | 78 |
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(); |