GNU bug report logs - #59739
[PATCH] tests: Add gdm test.

Previous Next

Package: guix-patches;

Reported by: mirai <at> makinata.eu

Date: Thu, 1 Dec 2022 13:22:02 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 59739 in the body.
You can then email your comments to 59739 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#59739; Package guix-patches. (Thu, 01 Dec 2022 13:22:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to mirai <at> makinata.eu:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Thu, 01 Dec 2022 13:22:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: mirai <at> makinata.eu
To: guix-patches <at> gnu.org
Cc: Bruno Victal <mirai <at> makinata.eu>
Subject: [PATCH] tests: Add gdm test.
Date: Thu,  1 Dec 2022 13:20:51 +0000
From: Bruno Victal <mirai <at> makinata.eu>

* gnu/tests/gdm.scm: New file.
* gnu/local.mk: Register it.
---

Small test suite for investigating the issue 57589 (https://issues.guix.gnu.org/57589)
basing on the hint at reply #6.


 gnu/local.mk      |   1 +
 gnu/tests/gdm.scm | 126 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 127 insertions(+)
 create mode 100644 gnu/tests/gdm.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index 379e600b06..be6870b469 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -759,6 +759,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/tests/docker.scm				\
   %D%/tests/file-sharing.scm			\
   %D%/tests/ganeti.scm				\
+  %D%/tests/gdm.scm				\
   %D%/tests/guix.scm				\
   %D%/tests/monitoring.scm                      \
   %D%/tests/nfs.scm				\
diff --git a/gnu/tests/gdm.scm b/gnu/tests/gdm.scm
new file mode 100644
index 0000000000..137e70544e
--- /dev/null
+++ b/gnu/tests/gdm.scm
@@ -0,0 +1,126 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2022 Bruno Victal <mirai <at> makinata.eu>.
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu tests gdm)
+  #:use-module (gnu tests)
+  #:use-module (gnu packages freedesktop)
+  #:use-module (gnu services)
+  #: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))
+
+(define* (make-os #:key wayland? tmp-tmpfs?)
+  (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))))
+
+(define* (run-gdm-test #:key wayland? tmp-tmpfs?)
+  "Run tests in a vm which has gdm running."
+  (define os
+    (marionette-operating-system
+     (make-os #:wayland? wayland? #:tmp-tmpfs? tmp-tmpfs?)
+     #:imported-modules '((gnu services herd))))
+
+  (define vm
+    (virtual-machine
+     (operating-system os)
+     (memory-size 1024)))
+
+  (define name (format #f "gdm-~:[x11~;wayland~]~:[~;-tmpfs~]" wayland? tmp-tmpfs?))
+
+  (define test
+    (with-imported-modules '((gnu build marionette))
+      #~(begin
+          (use-modules (gnu build marionette)
+                       (ice-9 format)
+                       (srfi srfi-64))
+
+          (let* ((marionette (make-marionette (list #$vm)))
+                 (expected-session-type #$(if wayland? "wayland" "x11")))
+
+            (test-runner-current (system-test-runner #$output))
+            (test-begin #$name)
+
+            ;; service for gdm is called xorg-server
+            (test-assert "service is running"
+              (marionette-eval
+               '(begin
+                  (use-modules (gnu services herd))
+                  (start-service 'xorg-server))
+               marionette))
+
+            (test-assert "gdm ready"
+              (wait-for-file "/var/run/gdm/gdm.pid" marionette))
+
+            (test-equal (string-append "session-type is " expected-session-type)
+              expected-session-type
+              (marionette-eval
+               '(begin
+                  (use-modules (ice-9 popen)
+                               (ice-9 rdelim))
+
+                  (let* ((loginctl #$(file-append elogind "/bin/loginctl"))
+                         (get-session-cmd (string-join `(,loginctl "show-user" "gdm"
+                                                                   "--property Display" "--value")))
+                         (session (call-with-port (open-input-pipe get-session-cmd) read-line))
+                         (get-type-cmd (string-join `(,loginctl "show-session" ,session
+                                                                "--property Type" "--value")))
+                         (type (call-with-port (open-input-pipe get-type-cmd) read-line)))
+                    type))
+               marionette))
+
+            (test-end)))))
+
+  (gexp->derivation (string-append name "-test") test))
+
+(define %test-gdm-x11
+  (system-test
+   (name "gdm")
+   (description "Basic tests for the GDM service. (X11)")
+   (value (run-gdm-test))))
+
+(define %test-gdm-wayland
+  (system-test
+   (name "gdm")
+   (description "Basic tests for the GDM service. (Wayland)")
+   (value (run-gdm-test #:wayland? #t))))
+
+(define %test-gdm-wayland-tmpfs
+  (system-test
+   (name "gdm")
+   (description "Basic tests for the GDM service. (Wayland, /tmp as tmpfs)")
+   (value (run-gdm-test #:wayland? #t #:tmp-tmpfs? #t))))

base-commit: a712c07d6ada1160855c583556e854ccb48c47e1
-- 
2.38.1





Reply sent to Ludovic Courtès <ludo <at> gnu.org>:
You have taken responsibility. (Sun, 04 Dec 2022 22:09:02 GMT) Full text and rfc822 format available.

Notification sent to mirai <at> makinata.eu:
bug acknowledged by developer. (Sun, 04 Dec 2022 22:09:02 GMT) Full text and rfc822 format available.

Message #10 received at 59739-done <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: mirai <at> makinata.eu
Cc: 59739-done <at> debbugs.gnu.org
Subject: Re: bug#59739: [PATCH] tests: Add gdm test.
Date: Sun, 04 Dec 2022 23:07:52 +0100
[Message part 1 (text/plain, inline)]
Hello,

mirai <at> makinata.eu skribis:

> From: Bruno Victal <mirai <at> makinata.eu>
>
> * gnu/tests/gdm.scm: New file.
> * gnu/local.mk: Register it.
> ---
>
> Small test suite for investigating the issue 57589 (https://issues.guix.gnu.org/57589)
> basing on the hint at reply #6.

Excellent!  The tests all had the same name; I fixed that so I could
actually run them all (see below).

Applied, thanks!

Ludo’.

[Message part 2 (text/x-patch, inline)]
diff --git a/gnu/tests/gdm.scm b/gnu/tests/gdm.scm
index 137e70544e..4f67551e63 100644
--- a/gnu/tests/gdm.scm
+++ b/gnu/tests/gdm.scm
@@ -109,18 +109,18 @@ (define test
 
 (define %test-gdm-x11
   (system-test
-   (name "gdm")
+   (name "gdm-x11")
    (description "Basic tests for the GDM service. (X11)")
    (value (run-gdm-test))))
 
 (define %test-gdm-wayland
   (system-test
-   (name "gdm")
+   (name "gdm-wayland")
    (description "Basic tests for the GDM service. (Wayland)")
    (value (run-gdm-test #:wayland? #t))))
 
 (define %test-gdm-wayland-tmpfs
   (system-test
-   (name "gdm")
+   (name "gdm-wayland-tmpfs")
    (description "Basic tests for the GDM service. (Wayland, /tmp as tmpfs)")
    (value (run-gdm-test #:wayland? #t #:tmp-tmpfs? #t))))

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 02 Jan 2023 12:24:06 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 170 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.