;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2022, 2023 Maxim Cournoyer . ;;; ;;; 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 lightdm) #:use-module (gnu bootloader) #:use-module (gnu bootloader grub) #:use-module (gnu packages) #:use-module (gnu packages ocr) #:use-module (gnu packages ratpoison) #:use-module (
aboutsummaryrefslogtreecommitdiff
ghtdm-gtk-greeter-configuration (allow-debugging? #t)))) (seats (list (lightdm-seat-configuration (name "*") (user-session "ratpoison")))))) ;; For debugging. (service dhcp-client-service-type) (service openssh-service-type (openssh-configuration (permit-root-login #t) (allow-empty-passwords? #t))) (append minimal-desktop-services (remove (lambda (service) (eq? (service-kind service) guix-service-type)) %base-services)))))) (define (run-lightdm-test) "Run tests in %LIGHTDM-OS." (define os (marionette-operating-system %lightdm-os #:imported-modules (source-module-closure '((gnu services herd))))) (define vm (virtual-machine os)) (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 "lightdm") (test-assert "service is running" (marionette-eval '(begin (use-modules (gnu services herd)) (start-service 'lightdm)) marionette)) (test-assert "service can be stopped" (marionette-eval '(begin (use-modules (gnu services herd)) (stop-service 'lightdm)) marionette)) (test-assert "service can be restarted" (marionette-eval '(begin (use-modules (gnu services herd)) (restart-service 'lightdm)) marionette)) (test-assert "login screen is displayed" ;; GNU Ocrad fails to recognize the "Log In" button text, so use ;; Tesseract. (wait-for-screen-text marionette (cut string-contains <> "Log In") #:ocr #$(file-append tesseract-ocr "/bin/tesseract"))) (test-assert "can connect to TCP port 5900 on IPv4" (wait-for-tcp-port 5900 marionette)) (test-assert "can connect to TCP port 5900 on IPv6" (wait-for-tcp-port 5900 marionette #:address `(make-socket-address AF_INET6 (inet-pton AF_INET6 "::1") 5900))) (test-end))))) (gexp->derivation "lightdm-test" test)) (define %test-lightdm (system-test (name "lightdm") (description "Basic tests for the LightDM service.") (value (run-lightdm-test))))
AgeCommit message (Expand)Author