;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020 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 (tests offload) #:use-module (guix scripts offload) #:use-module (srfi srfi-64)) (test-begin "offload") (define-syntax-rule (expose-internal-definitions s1 s2 ...) (begin (define s1 (@@ (guix scripts offload) s1)) (define s2 (@@ (guix scripts offload) s2)) ...)) (expose-internal-definitions machine-matches? build-requirements-system build-requirements-features build-machine-system build-machine-systems %build-machine-system %build-machine-systems build-machine-features) (define (deprecated-build-machine system) (build-machine (name "m1") (user "dummy") (host-key "some-key") (system system))) (define (new-build-machine systems) (build-machine (name "m1") (user "dummy") (host-key "some-key") (systems systems))) ;;; Test that deprecated build-machine definitions still work. (test-assert (machine-matches? (deprecated-build-machine "i686-linux") (build-requirements (system "i686-linux")))) (test-assert (machine-matches? (new-build-machine '("i686-linux")) (build-requirements (system "i686-linux")))) ;;; A build machine can act as more than one system type, thanks to QEMU ;;; emulation. (test-assert (machine-matches? (new-build-machine '("armhf-linux" "aarch64-linux" "i686-linux" "x86_64-linux")) (build-requirements (system "armhf-linux")))) /tests/services.scm?id=181951207339508789b28ba7cb914f983319920f'>services: 'modify-services' preserves service ordering....Fixes <https://issues.guix.gnu.org/63921>. The regression was introduced in dbbc7e946131ba257728f1d05b96c4339b7ee88b, which changed the order of services. As a result, someone using 'modify-services' could find themselves with incorrect ordering of expressions in the "boot" script, whereby the cleanup expressions would come after (execl ".../shepherd"). This, in turn, would lead shepherd to error out at boot with EADDRINUSE on /var/run/shepherd/socket. * gnu/services.scm (%delete-service, %apply-clauses): Remove. (clause-alist): New macro. (apply-clauses): New procedure. (modify-services): Use it. Adjust docstring. * tests/services.scm ("modify-services: do nothing"): Remove 'sort' call. ("modify-services: delete service"): Likewise, and add 't4' service. ("modify-services: change value"): Remove 'sort' call and fix expected value. Ludovic Courtès 2023-06-02tests: Check for service existence in MODIFY-SERVICES...* tests/services.scm ("modify-services: delete non-existing service") ("modify-services: change value for non-existing service"): New tests. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Brian Cully 2023-06-02tests: Add tests for MODIFY-SERVICES procedure...* tests/services.scm ("modify-services: do nothing") ("modify-services: delete service") ("modify-services: change value"): New tests. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Brian Cully 2022-05-18services: Make <service-type> 'description' field mandatory....* gnu/services.scm (<service-type>)[description]: Remove default value. * tests/services.scm: Add 'description' field to each 'service-type' form. Ludovic Courtès 2022-04-10services: Test 'shepherd-service-upgrade' with transient services....This is a followup to eeb8ac43c8c0b0cc69422766070dbefc55f5c5c1. * tests/services.scm ("shepherd-service-upgrade: transient service"): New test. Ludovic Courtès 2022-04-10services: herd: Adjust to <live-service> changes....This is a followup to a2c759c8304c461d096ab763568e7f71546ff4e8. * guix/scripts/system/reconfigure.scm (running-services): Fill in the 'transient?' field of <live-service>. * tests/services.scm ("shepherd-service-upgrade: one unchanged, one upgraded, one new") ("shepherd-service-upgrade: service depended on is not unloaded") ("shepherd-service-upgrade: obsolete services that depend on each other"): Adjust calls to 'live-service'. Ludovic Courtès