Message ID | 7085d63fde78e3d15b28fba3c710b6a71a185c2f.1688133473.git.mirai@makinata.eu |
---|---|
State | New |
Headers | show |
Series | Fix GDM + VNC tests | expand |
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 --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