qa: update 660 to generate index.html, fixing pcp-testsuite runs
[pcp.git] / qa / src / chktrim.c
blob97bed867db251c5eda766e6f8083f8cdc8fc73bb
1 /*
2 * Copyright (c) 1997-2001 Silicon Graphics, Inc. All Rights Reserved.
3 */
5 /*
6 * Check new functionality of pmTrimNameSpace
7 */
9 #include <ctype.h>
10 #include <string.h>
11 #include <pcp/pmapi.h>
12 #include <pcp/impl.h>
14 extern int errno;
16 static char tag;
18 static void
19 dometric(const char *name)
21 printf("%c %s\n", tag, name);
24 int
25 main(argc, argv)
26 int argc;
27 char *argv[];
29 int c;
30 int sts;
31 int errflag = 0;
32 char *namespace = PM_NS_DEFAULT;
33 int ctx = -1; /* context for host */
34 #ifdef PCP_DEBUG
35 static char *debug = "[-D N]";
36 #else
37 static char *debug = "";
38 #endif
39 static char *usage = "[-n namespace] [-a archive] [-h host] [-L]";
41 __pmSetProgname(argv[0]);
43 while ((c = getopt(argc, argv, "a:D:h:Ln:")) != EOF) {
44 switch (c) {
46 case 'a':
47 if ((sts = pmNewContext(PM_CONTEXT_ARCHIVE, optarg)) < 0) {
48 printf("%s: pmNewContext(archive %s): %s\n", pmProgname, optarg, pmErrStr(sts));
49 exit(1);
51 break;
53 #ifdef PCP_DEBUG
54 case 'D': /* debug flag */
55 sts = __pmParseDebug(optarg);
56 if (sts < 0) {
57 fprintf(stderr, "%s: unrecognized debug flag specification (%s)\n",
58 pmProgname, optarg);
59 errflag++;
61 else
62 pmDebug |= sts;
63 break;
64 #endif
66 case 'h':
67 if ((ctx = pmNewContext(PM_CONTEXT_HOST, optarg)) < 0) {
68 printf("%s: pmNewContext(host %s): %s\n", pmProgname, optarg, pmErrStr(ctx));
69 exit(1);
71 break;
73 case 'L':
74 putenv("PMDA_LOCAL_SAMPLE="); /* sampledso needed */
75 if ((sts = pmNewContext(PM_CONTEXT_LOCAL, NULL)) < 0) {
76 printf("%s: pmNewContext(host %s): %s\n", pmProgname, optarg, pmErrStr(sts));
77 exit(1);
79 break;
81 case 'n': /* alternative name space file */
82 namespace = optarg;
83 break;
85 case '?':
86 default:
87 errflag++;
88 break;
92 if (errflag || optind != argc) {
93 fprintf(stderr, "Usage: %s %s%s\n", pmProgname, debug, usage);
94 exit(1);
97 if (namespace != PM_NS_DEFAULT && (sts = pmLoadASCIINameSpace(namespace, 1)) < 0) {
98 printf("%s: Cannot load namespace from \"%s\": %s\n", pmProgname, namespace, pmErrStr(sts));
99 exit(1);
102 printf("0 Initial NameSpace below sampledso ...\n");
103 tag = '0';
104 sts = pmTraversePMNS("sampledso", dometric);
105 if (sts < 0) {
106 printf("Error: pmTraversePMNS: %s\n", pmErrStr(sts));
109 printf("1\n1 Trimmed NameSpace below sampledso for current context ...\n");
110 sts = pmTrimNameSpace();
111 if (sts == 0) {
112 tag = '1';
113 sts = pmTraversePMNS("sampledso", dometric);
114 if (sts < 0) {
115 printf("Error: pmTraversePMNS: %s\n", pmErrStr(sts));
118 else {
119 printf("Error: pmTrimeNameSpace: %s\n", pmErrStr(sts));
122 if (ctx == -1) {
123 if ((ctx = pmNewContext(PM_CONTEXT_HOST, "local:")) < 0) {
124 printf("%s: pmNewContext(local:): %s\n", pmProgname, pmErrStr(ctx));
125 exit(1);
129 printf("2\n2 Trimmed NameSpace below sampledso for host context ...\n");
130 pmUseContext(ctx);
131 sts = pmTrimNameSpace();
132 if (sts == 0) {
133 tag = '2';
134 sts = pmTraversePMNS("sampledso", dometric);
135 if (sts < 0) {
136 printf("Error: pmTraversePMNS: %s\n", pmErrStr(sts));
139 else {
140 printf("Error: pmTrimeNameSpace: %s\n", pmErrStr(sts));
143 exit(0);