diff options
Diffstat (limited to 'qa/src/check_fault_injection.c')
-rw-r--r-- | qa/src/check_fault_injection.c | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/qa/src/check_fault_injection.c b/qa/src/check_fault_injection.c new file mode 100644 index 0000000..765a0ef --- /dev/null +++ b/qa/src/check_fault_injection.c @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2011 Ken McDonell. All Rights Reserved. + * + * Check if libpcp built with -DPM_FAULT_INJECTION ... answer + * is in the exit status. + */ + +#include <pcp/pmapi.h> +#include <pcp/impl.h> +#include <pcp/fault.h> +#include <string.h> +#include <errno.h> + +int +main(int argc, char *argv[]) +{ + int c; + int sts; + int errflag = 0; + char *usage = "[-D debug]"; + + __pmSetProgname(argv[0]); + + while ((c = getopt(argc, argv, "D:")) != EOF) { + switch (c) { + + case 'D': /* debug flag */ + sts = __pmParseDebug(optarg); + if (sts < 0) { + fprintf(stderr, "%s: unrecognized debug flag specification (%s)\n", + pmProgname, optarg); + errflag++; + } + else + pmDebug |= sts; + break; + + case '?': + default: + errflag++; + break; + } + } + + if (errflag || optind != argc) { + fprintf(stderr, "Usage: %s %s\n", pmProgname, usage); + exit(1); + } + + __pmFaultInject("test", 0); + /* + * will only return in the OK case + */ + + return 0; +} |