Disable output of terminal control characters and progress meters when IGT_PLAIN_OUTPUT is set in the environment. Cc: Derek Morton <derek.j.morton@xxxxxxxxx> Signed-off-by: Thomas Wood <thomas.wood@xxxxxxxxx> --- lib/igt_aux.c | 2 +- lib/igt_core.c | 23 ++++++++++++++--------- lib/igt_core.h | 2 ++ 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/lib/igt_aux.c b/lib/igt_aux.c index f3c76ae..4d08d68 100644 --- a/lib/igt_aux.c +++ b/lib/igt_aux.c @@ -231,7 +231,7 @@ static void igt_interactive_info(const char *format, ...) { va_list args; - if (!isatty(STDERR_FILENO)) + if (!isatty(STDERR_FILENO) || __igt_plain_output) return; if (igt_log_level > IGT_LOG_INFO) diff --git a/lib/igt_core.c b/lib/igt_core.c index 7123455..ea9a68b 100644 --- a/lib/igt_core.c +++ b/lib/igt_core.c @@ -227,6 +227,8 @@ static enum { CONT = 0, SKIP, FAIL } skip_subtests_henceforth = CONT; +bool __igt_plain_output = false; + /* fork support state */ pid_t *test_children; int num_test_children; @@ -523,11 +525,15 @@ static int common_init(int *argc, char **argv, int extra_opt_count; int all_opt_count; int ret = 0; - char *env = getenv("IGT_LOG_LEVEL"); + const char *env; + + if (!isatty(STDOUT_FILENO) || getenv("IGT_PLAIN_OUTPUT")) + __igt_plain_output = true; - if (isatty(STDOUT_FILENO)) + if (!__igt_plain_output) setlocale(LC_ALL, ""); + env = getenv("IGT_LOG_LEVEL"); if (env) { if (strcmp(env, "debug") == 0) igt_log_level = IGT_LOG_DEBUG; @@ -779,12 +785,10 @@ bool __igt_run_subtest(const char *subtest_name) } if (skip_subtests_henceforth) { - bool istty = isatty(STDOUT_FILENO); - printf("%sSubtest %s: %s%s\n", - (istty) ? "\x1b[1m" : "", subtest_name, + (!__igt_plain_output) ? "\x1b[1m" : "", subtest_name, skip_subtests_henceforth == SKIP ? - "SKIP" : "FAIL", (istty) ? "\x1b[0m" : ""); + "SKIP" : "FAIL", (!__igt_plain_output) ? "\x1b[0m" : ""); return false; } @@ -828,14 +832,15 @@ static void exit_subtest(const char *result) { struct timespec now; double elapsed; - bool istty = isatty(STDOUT_FILENO); gettime(&now); elapsed = now.tv_sec - subtest_time.tv_sec; elapsed += (now.tv_nsec - subtest_time.tv_nsec) * 1e-9; - printf("%sSubtest %s: %s (%.3fs)%s\n", (istty) ? "\x1b[1m" : "", - in_subtest, result, elapsed, (istty) ? "\x1b[0m" : ""); + printf("%sSubtest %s: %s (%.3fs)%s\n", + (!__igt_plain_output) ? "\x1b[1m" : "", + in_subtest, result, elapsed, + (!__igt_plain_output) ? "\x1b[0m" : ""); fflush(stdout); in_subtest = NULL; diff --git a/lib/igt_core.h b/lib/igt_core.h index 5ae0965..a244fc3 100644 --- a/lib/igt_core.h +++ b/lib/igt_core.h @@ -45,6 +45,8 @@ extern const char* __igt_test_description __attribute__((weak)); +extern bool __igt_plain_output; + /** * IGT_TEST_DESCRIPTION: -- 1.9.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx