diff options
Diffstat (limited to 'qa/src/parsemetricspec.c')
-rw-r--r-- | qa/src/parsemetricspec.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/qa/src/parsemetricspec.c b/qa/src/parsemetricspec.c new file mode 100644 index 0000000..5a7c37b --- /dev/null +++ b/qa/src/parsemetricspec.c @@ -0,0 +1,43 @@ +#include <stdio.h> +#include <pcp/pmapi.h> + +int +main(int argc, char **argv) +{ + int isarch; + char *msg; + pmMetricSpec *rslt; + int sts; + int i; + + if (argc != 4) { + fprintf(stderr, "Usage: parsemetricspec spec isarch host\n"); + exit(1); + } + + if (strcmp(argv[1], "NULL") == 0) argv[1] = NULL; + isarch = atol(argv[2]); + if (strcmp(argv[3], "NULL") == 0) argv[3] = NULL; + + printf("pmParseMetricSpec(\"%s\", %d, \"%s\", ...)\n", + argv[1], isarch, argv[3]); + + sts = pmParseMetricSpec(argv[1], isarch, argv[3], &rslt, &msg); + + if (sts < 0) { + if (sts == PM_ERR_GENERIC) + printf("pmParseMetricSpec Error:\n%s\n", msg); + else + printf("error: %s\n", pmErrStr(sts)); + } + else { + printf("isarch: %d\n", rslt->isarch); + printf("source: \"%s\"\n", rslt->source); + printf("metric: \"%s\"\n", rslt->metric); + for (i = 0; i < rslt->ninst; i++) { + printf("inst[%d]: \"%s\"\n", i, rslt->inst[i]); + } + } + + exit(0); +} |