me
/
guix
Archived
1
0
Fork 0

marionette: Improve the error message of 'wait-for-screen-text'.

* gnu/build/marionette.scm (wait-for-screen-text): Return the last OCR'd text
when the predicate fails to match instead of the not useful predicate object.
master
Maxim Cournoyer 2022-08-12 08:53:46 -04:00
parent b096b939f7
commit 697b797160
No known key found for this signature in database
GPG Key ID: 1260E46482E63562
1 changed files with 8 additions and 6 deletions

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -308,13 +309,14 @@ PREDICATE, whichever comes first. Raise an error when TIMEOUT is exceeded."
(define end
(+ start timeout))
(let loop ()
(let loop ((last-text #f))
(if (> (car (gettimeofday)) end)
(error "'wait-for-screen-text' timeout" predicate)
(or (predicate (marionette-screen-text marionette #:ocrad ocrad))
(begin
(sleep 1)
(loop))))))
(error "'wait-for-screen-text' timeout" 'ocr-text: last-text)
(let ((text (marionette-screen-text marionette #:ocrad ocrad)))
(or (predicate text)
(begin
(sleep 1)
(loop text)))))))
(define %qwerty-us-keystrokes
;; Maps "special" characters to their keystrokes.