From 790f1f804b062c47fb1bf686bfa3b0f2e69ee947 Mon Sep 17 00:00:00 2001 From: Thomas Wood Date: Mon, 9 Nov 2015 17:17:24 +0000 Subject: lib: add a environment variable to control output Disable output of terminal control characters and progress meters when IGT_PLAIN_OUTPUT is set in the environment. Cc: Derek Morton Signed-off-by: Thomas Wood --- lib/igt_aux.c | 2 +- lib/igt_core.c | 23 ++++++++++++++--------- lib/igt_core.h | 2 ++ 3 files changed, 17 insertions(+), 10 deletions(-) (limited to 'lib') diff --git a/lib/igt_aux.c b/lib/igt_aux.c index f3c76aeb..4d08d68b 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 7e99b24f..04a0ab21 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 5ae09653..a244fc39 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: -- cgit v1.2.3