tests: gdm: Remove tmpfs related tests.

This test never managed to reveal the problem described in [1] because
from gnu/system/vm.scm it is seen that our "/tmp" mount is filtered out and
replaced with a "/tmp" file-system that is mounted with (needed-for-boot? #t).
This last bit is crucial as the problem was caused by the user specified "/tmp"
file-system lacking this part which caused "/tmp" being mounted after
x11-socket-directory-service has run, effectively shadowing the directory.

[1]: <https://issues.guix.gnu.org/57589>

* gnu/tests/gdm.scm (%test-gdm-wayland-tmpfs): Delete variable.
(make-os): Remove tmpfs? argument.
(run-gdm-test): Remove tmpfs? argument. Add a small delay since
waiting for gdm.pid is not enough, causing the tests to fail sporadically.

Reviewed-by: Josselin Poiret <dev@jpoiret.xyz>
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
This commit is contained in:
Bruno Victal 2023-03-06 12:35:02 +00:00 committed by Maxim Cournoyer
parent b7506eb334
commit 0c53cbcc56
No known key found for this signature in database
GPG key ID: 1260E46482E63562

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2022 Bruno Victal <mirai@makinata.eu>.
;;; Copyright © 20222023 Bruno Victal <mirai@makinata.eu>.
;;;
;;; This file is part of GNU Guix.
;;;
@ -23,36 +23,26 @@ (define-module (gnu tests gdm)
#:use-module (gnu services desktop)
#:use-module (gnu services xorg)
#:use-module (gnu system)
#:use-module (gnu system file-systems)
#:use-module (gnu system vm)
#:use-module (guix gexp)
#:use-module (ice-9 format)
#:export (%test-gdm-x11
%test-gdm-wayland
%test-gdm-wayland-tmpfs))
%test-gdm-wayland))
(define* (make-os #:key wayland? tmp-tmpfs?)
(define* (make-os #:key wayland?)
(operating-system
(inherit %simple-os)
(services
(modify-services %desktop-services
(gdm-service-type config => (gdm-configuration
(inherit config)
(wayland? wayland?)))))
(file-systems (if tmp-tmpfs? (cons (file-system
(mount-point "/tmp")
(device "none")
(type "tmpfs")
(flags '(no-dev no-suid))
(check? #f))
%base-file-systems)
%base-file-systems))))
(wayland? wayland?)))))))
(define* (run-gdm-test #:key wayland? tmp-tmpfs?)
(define* (run-gdm-test #:key wayland?)
"Run tests in a vm which has gdm running."
(define os
(marionette-operating-system
(make-os #:wayland? wayland? #:tmp-tmpfs? tmp-tmpfs?)
(make-os #:wayland? wayland?)
#:imported-modules '((gnu services herd))))
(define vm
@ -60,7 +50,7 @@ (define vm
(operating-system os)
(memory-size 1024)))
(define name (format #f "gdm-~:[x11~;wayland~]~:[~;-tmpfs~]" wayland? tmp-tmpfs?))
(define name (format #f "gdm-~:[x11~;wayland~]" wayland?))
(define test
(with-imported-modules '((gnu build marionette))
@ -69,8 +59,8 @@ (define test
(ice-9 format)
(srfi srfi-64))
(let* ((marionette (make-marionette (list #$vm)))
(expected-session-type #$(if wayland? "wayland" "x11")))
(let ((marionette (make-marionette (list #$vm)))
(expected-session-type #$(if wayland? "wayland" "x11")))
(test-runner-current (system-test-runner #$output))
(test-begin #$name)
@ -86,6 +76,9 @@ (define test
(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-equal (string-append "session-type is " expected-session-type)
expected-session-type
(marionette-eval
@ -118,10 +111,3 @@ (define %test-gdm-wayland
(name "gdm-wayland")
(description "Basic tests for the GDM service. (Wayland)")
(value (run-gdm-test #:wayland? #t))))
(define %test-gdm-wayland-tmpfs
(system-test
;; See <https://issues.guix.gnu.org/57589>.
(name "gdm-wayland-tmpfs")
(description "Basic tests for the GDM service. (Wayland, /tmp as tmpfs)")
(value (run-gdm-test #:wayland? #t #:tmp-tmpfs? #t))))