diff --git a/testapi.pm b/testapi.pm index a8139954456..165a8aafbcb 100755 --- a/testapi.pm +++ b/testapi.pm @@ -57,7 +57,8 @@ our @EXPORT = qw($realname $username $password $serialdev %cmd %vars upload_asset upload_image data_url assert_shutdown parse_junit_log upload_logs - wait_idle wait_screen_change wait_still_screen wait_serial record_soft_failure + wait_idle wait_screen_change assert_screen_change wait_still_screen wait_serial + record_soft_failure become_root x11_start_program ensure_installed eject_cd power save_memory_dump save_storage_drives freeze_vm resume_vm @@ -353,7 +354,7 @@ sub assert_and_dclick { =head2 wait_screen_change - wait_screen_change { CODEREF [,$timeout] }; + wait_screen_change(CODEREF [,$timeout]); Wrapper around code that is supposed to change the screen. This is the opposite to C. Make sure to put the commands to change the screen @@ -396,6 +397,24 @@ sub wait_screen_change(&@) { return 0; } +=head2 assert_screen_change + + assert_screen_change(CODEREF [,$timeout]); + +Run C with C but C if screen did not change +within timeout. Look into C for details. + +Example: + + assert_screen_change { send_key 'alt-f4' }; + +=cut + +sub assert_screen_change(&@) { + ::wait_screen_change(@_) or die 'assert_screen_change failed to detect a screen change'; +} + + =head2 wait_still_screen =for stopwords stilltime