On Thu, Jul 24, 2014 at 12:48:33PM +0100, Chris Wilson wrote: > One of the side-effects we test for are kernel oops and knowing the > guilty subtest can help speed up debugging. We can write to /dev/kmsg to > inject messages into dmesg, so let's do so before the start of every > test. > > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> Should we change proc->comm too? Would help with the oops printing ... Ack on the patch itself. -Daniel > --- > lib/igt_core.c | 29 ++++++++++++++++++++++++----- > 1 file changed, 24 insertions(+), 5 deletions(-) > > diff --git a/lib/igt_core.c b/lib/igt_core.c > index b0800e8..deaf145 100644 > --- a/lib/igt_core.c > +++ b/lib/igt_core.c > @@ -269,8 +269,9 @@ static void print_version(void) > uts.sysname, uts.release, uts.machine); > } > > -static void print_usage(const char *command_str, const char *help_str, > - bool output_on_stderr) > +static const char *command_str; > + > +static void print_usage(const char *help_str, bool output_on_stderr) > { > FILE *f = output_on_stderr ? stderr : stdout; > > @@ -306,7 +307,6 @@ static int common_init(int argc, char **argv, > {"debug", 0, 0, 'd'}, > {"help", 0, 0, 'h'}, > }; > - const char *command_str; > char *short_opts; > struct option *combined_opts; > int extra_opt_count; > @@ -364,11 +364,11 @@ static int common_init(int argc, char **argv, > run_single_subtest = strdup(optarg); > break; > case 'h': > - print_usage(command_str, help_str, false); > + print_usage(help_str, false); > ret = -1; > goto out; > case '?': > - print_usage(command_str, help_str, true); > + print_usage(help_str, true); > ret = -2; > goto out; > default: > @@ -498,6 +498,23 @@ void igt_simple_init_parse_opts(int argc, char **argv, > extra_opt_handler); > } > > +__attribute__((format(printf, 2, 3))) > +static void echo(const char *path, const char *format, ...) > +{ > + va_list ap; > + FILE *file; > + > + file = fopen(path, "w"); > + if (file == NULL) > + return; > + > + va_start(ap, format); > + vfprintf(file, format, ap); > + va_end(ap); > + > + fclose(file); > +} > + > /* > * Note: Testcases which use these helpers MUST NOT output anything to stdout > * outside of places protected by igt_run_subtest checks - the piglit > @@ -529,6 +546,8 @@ bool __igt_run_subtest(const char *subtest_name) > return false; > } > > + echo("/dev/kmsg", "%s: starting subtest %s\n", command_str, subtest_name); > + > return (in_subtest = subtest_name); > } > > -- > 1.9.1 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx