2 * Copyright (c) 1997-2002 Silicon Graphics, Inc. All Rights Reserved.
9 #define LEN(l) (sizeof(l)/sizeof(l[0]))
11 static char *namelist
[] = {
18 main(int argc
, char **argv
)
33 __pmSetProgname(argv
[0]);
35 while ((c
= getopt(argc
, argv
, "D:?")) != EOF
) {
38 case 'D': /* debug flag */
39 sts
= __pmParseDebug(optarg
);
41 fprintf(stderr
, "%s: unrecognized debug flag specification (%s)\n",
56 if (errflag
|| optind
!= argc
) {
57 fprintf(stderr
, "Usage: %s [-D n]\n", pmProgname
);
61 for (i
=0; i
< NCONTEXTS
; i
++) {
62 if ((h
[i
] = pmNewContext(PM_CONTEXT_HOST
, "localhost")) < 0) {
63 printf("pmNewContext: %s\n", pmErrStr(h
[i
]));
67 if ((e
= pmLookupName(1, namelist
, metrics
)) < 0) {
68 printf("pmLookupName: %s\n", pmErrStr(e
));
72 if ((e
= pmLookupDesc(metrics
[0], &desc
)) < 0) {
73 printf("pmLookupDesc: %s\n", pmErrStr(e
));
78 diskindom
= desc
.indom
;
79 if ((numinst
= pmGetInDom(diskindom
, &inst
, &name
)) < 0) {
80 printf("pmGetInDom: %s\n", pmErrStr(numinst
));
84 for (i
= 0; i
< numinst
; i
++)
85 printf("\t[%d]: %d %s\n", i
, inst
[i
], name
[i
]);
87 for (i
=0; i
< NCONTEXTS
; i
++) {
91 listOne
[1] = inst
[numinst
-1];
93 pmAddProfile(diskindom
, 0, (int *)0);
94 printf("all drives should be included here\n");
95 if ((e
= pmFetch(1, metrics
, &resp
)) < 0) {
96 printf("pmFetch[2]: %s\n", pmErrStr(e
));
99 __pmDumpResult(stdout
, resp
);
101 pmDelProfile(diskindom
, 0, (int *)0);
103 printf("no drives should be included here\n");
104 if ((e
= pmFetch(1, metrics
, &resp
)) < 0) {
105 printf("pmFetch[3]: %s\n", pmErrStr(e
));
108 __pmDumpResult(stdout
, resp
);
110 pmDelProfile(diskindom
, 0, (int *)0);
111 pmAddProfile(diskindom
, LEN(listOne
), listOne
);
113 printf("only the first and last drive should be included here\n");
114 if ((e
= pmFetch(1, metrics
, &resp
)) < 0) {
115 printf("pmFetch[0]: %s\n", pmErrStr(e
));
118 __pmDumpResult(stdout
, resp
);
120 pmDelProfile(diskindom
, 0, (int *)0);
121 pmAddProfile(diskindom
, numinst
, inst
);
122 pmDelProfile(diskindom
, 1, listOne
);
124 printf("all except drive zero should be included here\n");
125 if ((e
= pmFetch(1, metrics
, &resp
)) < 0) {
126 printf("pmFetch[1]: %s\n", pmErrStr(e
));
129 __pmDumpResult(stdout
, resp
);
131 pmDelProfile(diskindom
, 0, (int *)0);
132 pmAddProfile(diskindom
, 1, inst
);
134 printf("drive zero ONLY should be included here\n");
135 if ((e
= pmFetch(1, metrics
, &resp
)) < 0) {
136 printf("pmFetch[1]: %s\n", pmErrStr(e
));
139 __pmDumpResult(stdout
, resp
);