diff mbox series

[bug#64356,v3,3/4] tests: gdm: Prefer OCR to delay.

Message ID 7085d63fde78e3d15b28fba3c710b6a71a185c2f.1688133473.git.mirai@makinata.eu
State New
Headers show
Series Fix GDM + VNC tests | expand

Commit Message

Bruno Victal June 30, 2023, 1:58 p.m. UTC
* gnu/tests/gdm.scm (run-gdm-test): Use wait-for-screen-text instead of sleep.
---
 gnu/tests/gdm.scm | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

Comments

Maxim Cournoyer July 19, 2023, 2:45 p.m. UTC | #1
Hi,

Bruno Victal <mirai@makinata.eu> writes:

> * gnu/tests/gdm.scm (run-gdm-test): Use wait-for-screen-text instead of sleep.
> ---
>  gnu/tests/gdm.scm | 19 ++++++++++++++-----
>  1 file changed, 14 insertions(+), 5 deletions(-)
>
> diff --git a/gnu/tests/gdm.scm b/gnu/tests/gdm.scm
> index ec1df4b797..06177d4080 100644
> --- a/gnu/tests/gdm.scm
> +++ b/gnu/tests/gdm.scm
> @@ -19,6 +19,7 @@
>  (define-module (gnu tests gdm)
>    #:use-module (gnu tests)
>    #:use-module (gnu packages freedesktop)
> +  #:use-module (gnu packages ocr)
>    #:use-module (gnu services)
>    #:use-module (gnu services desktop)
>    #:use-module (gnu services xorg)
> @@ -57,6 +58,7 @@ (define* (run-gdm-test #:key wayland?)
>        #~(begin
>            (use-modules (gnu build marionette)
>                         (ice-9 format)
> +                       (srfi srfi-26)
>                         (srfi srfi-64))
>  
>            (let ((marionette (make-marionette (list #$vm)))
> @@ -73,11 +75,18 @@ (define* (run-gdm-test #:key wayland?)
>                    (start-service 'xorg-server))
>                 marionette))
>  
> -            (test-assert "gdm ready"
> -              (wait-for-file "/var/run/gdm/gdm.pid" marionette))
> -
> -            ;; waiting for gdm.pid is not enough, tests may still sporadically fail.
> -            (sleep 1)
> +            (test-group "gdm ready"
> +              (test-assert "PID file present"
> +                (wait-for-file "/var/run/gdm/gdm.pid" marionette))
> +
> +              ;; Waiting for gdm.pid is not enough, tests may still sporadically
> +              ;; fail; ensure that the login screen is up.
> +              ;; XXX: GNU Ocrad works but with '--invert' only.
> +              (test-assert "login screen up"
> +                (wait-for-screen-text marionette
> +                                      (cut string-contains <> "Guix")
> +                                      #:ocr #$(file-append ocrad "/bin/ocrad")
> +                                      #:ocr-arguments '("--invert"))))

I modified it to use #:timeout 120, to accommodate older, slow systems
like mine.
diff mbox series

Patch

diff --git a/gnu/tests/gdm.scm b/gnu/tests/gdm.scm
index ec1df4b797..06177d4080 100644
--- a/gnu/tests/gdm.scm
+++ b/gnu/tests/gdm.scm
@@ -19,6 +19,7 @@ 
 (define-module (gnu tests gdm)
   #:use-module (gnu tests)
   #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages ocr)
   #:use-module (gnu services)
   #:use-module (gnu services desktop)
   #:use-module (gnu services xorg)
@@ -57,6 +58,7 @@  (define* (run-gdm-test #:key wayland?)
       #~(begin
           (use-modules (gnu build marionette)
                        (ice-9 format)
+                       (srfi srfi-26)
                        (srfi srfi-64))
 
           (let ((marionette (make-marionette (list #$vm)))
@@ -73,11 +75,18 @@  (define* (run-gdm-test #:key wayland?)
                   (start-service 'xorg-server))
                marionette))
 
-            (test-assert "gdm ready"
-              (wait-for-file "/var/run/gdm/gdm.pid" marionette))
-
-            ;; waiting for gdm.pid is not enough, tests may still sporadically fail.
-            (sleep 1)
+            (test-group "gdm ready"
+              (test-assert "PID file present"
+                (wait-for-file "/var/run/gdm/gdm.pid" marionette))
+
+              ;; Waiting for gdm.pid is not enough, tests may still sporadically
+              ;; fail; ensure that the login screen is up.
+              ;; XXX: GNU Ocrad works but with '--invert' only.
+              (test-assert "login screen up"
+                (wait-for-screen-text marionette
+                                      (cut string-contains <> "Guix")
+                                      #:ocr #$(file-append ocrad "/bin/ocrad")
+                                      #:ocr-arguments '("--invert"))))
 
             (test-equal (string-append "session-type is " expected-session-type)
               expected-session-type