diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2014-09-05 08:51:27 +0200 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2014-09-05 09:30:53 +0200 |
commit | c49542af073687a5dc66eaef19c31eeaf5766a86 (patch) | |
tree | 401219c7325df96f63bfda9332845f8e323beecf | |
parent | a16ebccaee426ef96b0894e3af733360d88ce4d7 (diff) |
lib/igt_aux: Improve wait_for_keypress helper a bit
- Use keys in just one env variable to enable/disable it.
- Add an informational message so that the users knows when to press
the key (more useful over ssh than when run on the terminal ofc).
- Improve the documentation so that it's clearer how to use this
when running tests.
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Damien Lespiau <damien.lespiau@intel.com>
Acked-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r-- | lib/igt_aux.c | 26 | ||||
-rw-r--r-- | lib/igt_aux.h | 2 | ||||
-rw-r--r-- | lib/igt_kms.c | 3 |
3 files changed, 23 insertions, 8 deletions
diff --git a/lib/igt_aux.c b/lib/igt_aux.c index 5ddc8b61..05cb4bd1 100644 --- a/lib/igt_aux.c +++ b/lib/igt_aux.c @@ -344,21 +344,37 @@ void igt_drop_root(void) } /** - * igt_wait_for_keypress: + * igt_debug_wait_for_keypress: + * @key: env var lookup to to enable this wait * - * Waits for a key press when run interactively. When not connected to a - * terminal immediately continues. + * Waits for a key press when run interactively and when the corresponding debug + * key is set in the IGT_DEBUG_INTERACTIVE environment variable. Multiple keys + * can be specified as a comma-separated list or alternatively "all" if a wait + * should happen for all keys. When not connected to a terminal the enviroment + * setting is ignored and execution immediately continues. * * This is useful for display tests where under certain situation manual - * inspection of the display is useful. + * inspection of the display is useful. Or when running a testcase in the + * background. */ -void igt_wait_for_keypress(void) +void igt_debug_wait_for_keypress(const char *key) { struct termios oldt, newt; + const char *env; if (!isatty(STDIN_FILENO)) return; + env = getenv("IGT_DEBUG_INTERACTIVE"); + + if (!env) + return; + + if (!strstr(env, key) && !strstr(env, "all")) + return; + + igt_info("Press any key to continue ...\n"); + tcgetattr ( STDIN_FILENO, &oldt ); newt = oldt; newt.c_lflag &= ~( ICANON | ECHO ); diff --git a/lib/igt_aux.h b/lib/igt_aux.h index a90d8d9e..d958abeb 100644 --- a/lib/igt_aux.h +++ b/lib/igt_aux.h @@ -56,7 +56,7 @@ void igt_system_suspend_autoresume(void); /* dropping priviledges */ void igt_drop_root(void); -void igt_wait_for_keypress(void); +void igt_debug_wait_for_keypress(const char *key); enum igt_runtime_pm_status { IGT_RUNTIME_PM_STATUS_ACTIVE, diff --git a/lib/igt_kms.c b/lib/igt_kms.c index d763013c..f483e2da 100644 --- a/lib/igt_kms.c +++ b/lib/igt_kms.c @@ -1401,8 +1401,7 @@ static int do_display_commit(igt_display_t *display, LOG_UNINDENT(display); - if (getenv("IGT_DISPLAY_WAIT_AT_COMMIT")) - igt_wait_for_keypress(); + igt_debug_wait_for_keypress("modeset"); return 0; } |