Disable output of terminal control characters and progress meters when
IGT_PLAIN_OUTPUT is set in the environment.

Cc: Derek Morton <derek.j.mor...@intel.com>
Signed-off-by: Thomas Wood <thomas.w...@intel.com>
---
 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@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to