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>
This commit is contained in:
Daniel Vetter 2014-09-05 08:51:27 +02:00
parent a16ebccaee
commit c49542af07
3 changed files with 23 additions and 8 deletions

View File

@ -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 * Waits for a key press when run interactively and when the corresponding debug
* terminal immediately continues. * 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 * 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; struct termios oldt, newt;
const char *env;
if (!isatty(STDIN_FILENO)) if (!isatty(STDIN_FILENO))
return; 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 ); tcgetattr ( STDIN_FILENO, &oldt );
newt = oldt; newt = oldt;
newt.c_lflag &= ~( ICANON | ECHO ); newt.c_lflag &= ~( ICANON | ECHO );

View File

@ -56,7 +56,7 @@ void igt_system_suspend_autoresume(void);
/* dropping priviledges */ /* dropping priviledges */
void igt_drop_root(void); 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 { enum igt_runtime_pm_status {
IGT_RUNTIME_PM_STATUS_ACTIVE, IGT_RUNTIME_PM_STATUS_ACTIVE,

View File

@ -1401,8 +1401,7 @@ static int do_display_commit(igt_display_t *display,
LOG_UNINDENT(display); LOG_UNINDENT(display);
if (getenv("IGT_DISPLAY_WAIT_AT_COMMIT")) igt_debug_wait_for_keypress("modeset");
igt_wait_for_keypress();
return 0; return 0;
} }