guix/tests/offload.scm
Maxim Cournoyer 4b5a6fbc9b
offload: Modify the build-machine record to accept multiple systems.
* guix/scripts/offload.scm (<build-machine>)[systems]: New field.
[system]: Accessor changed to %build-machine-system.  Default to #f.
* guix/scripts/offload.scm (build-machine-system): Wrap %build-machine-system
with a deprecation warning.
(build-machine-systems): Access the new systems field or fallback to use
build-machine-system, for backward compatibility.
(machine-matches?): Adjust.
* tests/offload.scm: Add tests...
* Makefile.am (SCM_TESTS): ...and register them.
* doc/guix.texi (Daemon Offload Setup): Update doc.
2020-08-25 13:45:27 -04:00

71 lines
2.6 KiB
Scheme
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; 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 (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"))))