/var/lib/pcp/testsuite/src/779246.c is in pcp-testsuite 4.0.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 | /*
* Copyright (c) 1997-2002 Silicon Graphics, Inc. All Rights Reserved.
*/
/*
* pv 779246 - check sample pmda returns type on sample.sysinfo
*/
#include <ctype.h>
#include <string.h>
#include <pcp/pmapi.h>
#include "libpcp.h"
#ifdef HAVE_SYS_SYSINFO_H
#include <sys/sysinfo.h>
#endif
#define NUM 1
static int
dometric(void)
{
int n;
pmID pmid;
pmDesc desc;
pmResult *result;
char *namelist[NUM] = { "sample.sysinfo" };
pmID pmidlist[NUM] = { 0 };
if ((n = pmLookupName(NUM, namelist, pmidlist)) < 0) {
printf("pmLookupDesc: %s\n", pmErrStr(n));
return 1;
}
pmid=pmidlist[0];
if ((n = pmLookupDesc(pmid, &desc)) < 0) {
printf("pmLookupDesc: %s\n", pmErrStr(n));
return 1;
}
pmPrintDesc(stdout, &desc);
if ((n = pmFetch(1, &pmid, &result)) < 0)
printf("pmFetch: %s\n", pmErrStr(n));
if (result->numpmid !=1 ) {
printf("pmFetch, numpmid == %d (1)\n",
result->numpmid);
return 1;
}
if (result->vset[0]->numval < 0) {
printf("pmFetch, numval: %s\n", pmErrStr(result->vset[0]->numval));
return 1;
} else if (result->vset[0]->numval != 1) {
printf("pmFetch, numval: == %d (1)\n",
result->vset[0]->numval);
return 1;
}
if (result->vset[0]->valfmt==PM_VAL_INSITU) {
printf("sample.sysinfo is in-situ !?\n");
return 1;
}
printf("sample.sysinfo vtype == %d\n",
result->vset[0]->vlist[0].value.pval->vtype);
__pmDumpResult(stdout, result);
return 0;
}
int
main(int argc, char *argv[])
{
int c;
int sts;
int errflag = 0;
char *host = "localhost";
char *namespace = PM_NS_DEFAULT;
static char *usage = "[-D debugspec] [-h hostname]";
pmSetProgname(pmGetProgname());
while ((c = getopt(argc, argv, "D:h:")) != EOF) {
switch (c) {
case 'D': /* debug options */
sts = pmSetDebug(optarg);
if (sts < 0) {
fprintf(stderr, "%s: unrecognized debug options specification (%s)\n",
pmGetProgname(), optarg);
errflag++;
}
break;
case 'h': /* hostname for PMCD to contact */
host = optarg;
break;
case '?':
default:
errflag++;
break;
}
}
if (errflag || optind != argc) {
fprintf(stderr, "Usage: %s %s\n", pmGetProgname(), usage);
exit(1);
}
if (namespace != PM_NS_DEFAULT && (sts = pmLoadASCIINameSpace(namespace, 1)) < 0) {
printf("%s: Cannot load namespace from \"%s\": %s\n", pmGetProgname(), namespace, pmErrStr(sts));
exit(1);
}
if ((sts = pmNewContext(PM_CONTEXT_HOST, host)) < 0) {
printf("%s: Cannot connect to PMCD on host \"%s\": %s\n", pmGetProgname(), host, pmErrStr(sts));
exit(1);
}
/* Size of struct sysinfo is different on different platforms, so
* give a hint how many bytes are expected in the output */
#ifdef HAVE_SYSINFO
printf("+++ Expect %d bytes\n", (int)sizeof(struct sysinfo));
#else
printf("+++ Local struct sysinfo size unknown\n");
#endif
return dometric();
}
|