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 ;;; 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. ;;; This file is part of GNU Guix.
;;; ;;;
@ -23,36 +23,26 @@
#:use-module (gnu services desktop) #:use-module (gnu services desktop)
#:use-module (gnu services xorg) #:use-module (gnu services xorg)
#:use-module (gnu system) #:use-module (gnu system)
#:use-module (gnu system file-systems)
#:use-module (gnu system vm) #:use-module (gnu system vm)
#:use-module (guix gexp) #:use-module (guix gexp)
#:use-module (ice-9 format) #:use-module (ice-9 format)
#:export (%test-gdm-x11 #:export (%test-gdm-x11
%test-gdm-wayland %test-gdm-wayland))
%test-gdm-wayland-tmpfs))
(define* (make-os #:key wayland? tmp-tmpfs?) (define* (make-os #:key wayland?)
(operating-system (operating-system
(inherit %simple-os) (inherit %simple-os)
(services (services
(modify-services %desktop-services (modify-services %desktop-services
(gdm-service-type config => (gdm-configuration (gdm-service-type config => (gdm-configuration
(inherit config) (inherit config)
(wayland? wayland?))))) (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))))
(define* (run-gdm-test #:key wayland? tmp-tmpfs?) (define* (run-gdm-test #:key wayland?)
"Run tests in a vm which has gdm running." "Run tests in a vm which has gdm running."
(define os (define os
(marionette-operating-system (marionette-operating-system
(make-os #:wayland? wayland? #:tmp-tmpfs? tmp-tmpfs?) (make-os #:wayland? wayland?)
#:imported-modules '((gnu services herd)))) #:imported-modules '((gnu services herd))))
(define vm (define vm
@ -60,7 +50,7 @@
(operating-system os) (operating-system os)
(memory-size 1024))) (memory-size 1024)))
(define name (format #f "gdm-~:[x11~;wayland~]~:[~;-tmpfs~]" wayland? tmp-tmpfs?)) (define name (format #f "gdm-~:[x11~;wayland~]" wayland?))
(define test (define test
(with-imported-modules '((gnu build marionette)) (with-imported-modules '((gnu build marionette))
@ -69,8 +59,8 @@
(ice-9 format) (ice-9 format)
(srfi srfi-64)) (srfi srfi-64))
(let* ((marionette (make-marionette (list #$vm))) (let ((marionette (make-marionette (list #$vm)))
(expected-session-type #$(if wayland? "wayland" "x11"))) (expected-session-type #$(if wayland? "wayland" "x11")))
(test-runner-current (system-test-runner #$output)) (test-runner-current (system-test-runner #$output))
(test-begin #$name) (test-begin #$name)
@ -86,6 +76,9 @@
(test-assert "gdm ready" (test-assert "gdm ready"
(wait-for-file "/var/run/gdm/gdm.pid" marionette)) (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) (test-equal (string-append "session-type is " expected-session-type)
expected-session-type expected-session-type
(marionette-eval (marionette-eval
@ -118,10 +111,3 @@
(name "gdm-wayland") (name "gdm-wayland")
(description "Basic tests for the GDM service. (Wayland)") (description "Basic tests for the GDM service. (Wayland)")
(value (run-gdm-test #:wayland? #t)))) (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))))