X-Git-Url: https://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=tools%2Fgcov.c;fp=tools%2Fgcov.c;h=f922d8d97ed1dc5496213d81840305c0d99c5985;hp=0000000000000000000000000000000000000000;hb=bcb956d9afb054a36c4f481900cdbc6587c4a2bf;hpb=0fd6bb104ac424b56326bd37de8b5057eb68243f diff --git a/tools/gcov.c b/tools/gcov.c new file mode 100644 index 00000000..f922d8d9 --- /dev/null +++ b/tools/gcov.c @@ -0,0 +1,36 @@ +#include "tools.h" +#include +#include + +bool run_gcov(const void *ctx, unsigned int *time_ms, char **output, + const char *fmt, ...) +{ + char *args; + va_list ap; + bool rc; + + va_start(ap, fmt); + args = tal_vfmt(ctx, fmt, ap); + rc = run_command(ctx, time_ms, output, "gcov %s", args); + tal_free(args); + return rc; +} + +const char *gcov_unavailable(void *ctx) +{ + const char *err = NULL; + +#ifdef __GNUC__ + unsigned int timeleft = default_timeout_ms; + char *output; + + if (!run_gcov(ctx, &timeleft, &output, "-h")) { + err = tal_fmt(ctx, "No gcov support: %s", output); + tal_free(output); + } +#else + err = "No coverage support for this compiler"; +#endif + + return err; +}