;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2024 Richard Sent . ;;; ;;; 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 . (define-module (gnu tests sddm) #:use-module (gnu bootloader) #:use-module (gnu bootloader grub) #:use-module (gnu packages) #:use-module (gnu packages ocr) #:use-module (gnu packages xorg) #:use-module (gnu services) #:use-module (gnu services desktop) #:use-module (gnu services sddm) #:use-module (gnu services xorg) #:use-module (gnu system) #:use-module (gnu system vm) #:use-module (gnu tests) #:use-module (guix gexp) #:use-module (guix modules) #:use-module (srfi srfi-1) #:export (%test-sddm)) (define %sddm-os (operating-system (inherit %simple-os) (services (cons* (service sddm-service-type) (modify-services %desktop-services (delete gdm-service-type)))))) (define (run-sddm-test) "Run tests in %SDDM-OS." (define os (marionette-operating-system %sddm-os #:imported-modules (source-module-closure '((gnu services herd))))) (define vm (virtual-machine (operating-system os) ;; Test may nondeterministically fail with default memory size. (memory-size 1024))) (define test (with-imported-modules (source-module-closure '((gnu build marionette))) #~(begin (use-modules (gnu build marionette) (srfi srfi-26) (srfi srfi-64)) (let ((marionette (make-marionette (list #$vm)))) (test-runner-current (system-test-runner #$output)) (test-begin "sddm") (test-assert "service is running" (marionette-eval '(begin (use-modules (gnu services herd)) ;; sddm's shepherd service is called xorg-server (start-service 'xorg-server)) marionette)) (test-assert "service can be stopped" (marionette-eval '(begin (use-modules (gnu services herd)) (stop-service 'xorg-server)) marionette)) (test-assert "service can be restarted" (marionette-eval '(begin (use-modules (gnu services herd)) (restart-service 'xorg-server)) marionette)) (test-assert "login screen up" ;; GNU Ocrad fails to recognize any text, so use Tesseract. (wait-for-screen-text marionette ;; Login button not recognized, use SDDM's ;; welcome message. (cut string-contains <> (string-append "Welcome to " #$(operating-system-host-name %sddm-os))) #:ocr #$(file-append tesseract-ocr "/bin/tesseract") #:timeout 60)) (test-end))))) (gexp->derivation "sddm-test" test)) (define %test-sddm (system-test (name "sddm") (description "Basic tests for the SDDM service.") (value (run-sddm-test)))) . Document dbus-configuration. * gnu/services/dbus.scm (dbus-service): Define with 'define-deprecated'. * gnu/services/desktop.scm (desktop-services-for-system): Replace with dbus-root-service-type. * gnu/system/install.scm (%installation-services): Ditto. * gnu/tests/base.scm (%avahi-os): Ditto. * gnu/tests/docker.scm (%docker-os): Ditto. * gnu/tests/lightdm.scm (minimal-desktop-services): Ditto. * gnu/tests/virtualization.scm (%libvirt-os): Ditto. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Bruno Victal 2023-03-03services: desktop: Deprecate 'accountsservice-service' procedure....* doc/guix.texi (Desktop Services): Replace 'accountsservice-service' with 'accountsservice-service-type'. * gnu/services/desktop.scm (accountsservice-service): Deprecate procedure. (desktop-services-for-system): Use accountsservice-service-type. * gnu/tests/lightdm.scm (minimal-desktop-services): Ditto. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Bruno Victal 2023-03-03services: desktop: Deprecate 'elogind-service' procedure....* doc/guix.texi (Desktop Services): Replace 'elogind-service' with 'elogind-service-type'. * gnu/services/desktop.scm (elogind-service): Deprecate procedure. (desktop-services-for-system): Use elogind-service-type. * gnu/tests/lightdm.scm (minimal-desktop-services): Ditto. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Bruno Victal 2022-11-17tests: lightdm: Use set-xorg-configuration to set keyboard layout....This is to validate that it works, when the login manager service type is properly specified. * gnu/tests/lightdm.scm (%lightdm-os): Use set-xorg-configuration. Maxim Cournoyer 2022-08-28services: Add lightdm-service-type....* gnu/services/lightdm.scm: New service. * tests/services/lightdm.scm: Test it. * doc/guix.texi (X Window): Document it. * gnu/local.mk (GNU_SYSTEM_MODULES): Register it. Co-authored-by: L p R n d n <guix@lprndn.info> Co-authored-by: Ricardo Wurmus <rekado@elephly.net> Maxim Cournoyer