[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
04/09: tests: Support package extensions in the backdoor REPL.
From: |
guix-commits |
Subject: |
04/09: tests: Support package extensions in the backdoor REPL. |
Date: |
Mon, 12 Apr 2021 12:44:52 -0400 (EDT) |
civodul pushed a commit to branch master
in repository guix.
commit 3332f4365bf329c361d650c70e53b8a74ad923bd
Author: Maxime Devos <maximedevos@telenet.be>
AuthorDate: Tue Mar 30 12:40:14 2021 +0200
tests: Support package extensions in the backdoor REPL.
* gnu/tests.scm
(<marionette-configuration>): Add 'extensions' field.
(marionette-shepherd-service): Honour the field.
(with-import-modules-and-extensions): Define a combination
of 'with-import-modules' and 'with-extensions'.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
---
gnu/tests.scm | 26 +++++++++++++++++++++++---
1 file changed, 23 insertions(+), 3 deletions(-)
diff --git a/gnu/tests.scm b/gnu/tests.scm
index 3b10a6d..eb63687 100644
--- a/gnu/tests.scm
+++ b/gnu/tests.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -74,13 +75,24 @@
(default "/dev/virtio-ports/org.gnu.guix.port.0"))
(imported-modules marionette-configuration-imported-modules
(default '()))
+ (extensions marionette-configuration-extensions
+ (default '())) ; list of packages
(requirements marionette-configuration-requirements ;list of symbols
(default '())))
+;; Hack: avoid indenting code beyond column 80 in marionette-shepherd-service.
+(define-syntax-rule (with-imported-modules-and-extensions imported-modules
+ extensions
+ gexp)
+ (with-imported-modules imported-modules
+ (with-extensions extensions
+ gexp)))
+
(define (marionette-shepherd-service config)
"Return the Shepherd service for the marionette REPL"
(match config
- (($ <marionette-configuration> device imported-modules requirement)
+ (($ <marionette-configuration> device imported-modules extensions
+ requirement)
(list (shepherd-service
(provision '(marionette))
@@ -90,7 +102,7 @@
(modules '((ice-9 match)
(srfi srfi-9 gnu)))
(start
- (with-imported-modules imported-modules
+ (with-imported-modules-and-extensions imported-modules extensions
#~(lambda ()
(define (self-quoting? x)
(letrec-syntax ((one-of (syntax-rules ()
@@ -154,11 +166,13 @@
(define* (marionette-operating-system os
#:key
(imported-modules '())
+ (extensions '())
(requirements '()))
"Return a marionetteed variant of OS such that OS can be used as a
marionette in a virtual machine--i.e., controlled from the host system. The
marionette service in the guest is started after the Shepherd services listed
-in REQUIREMENTS."
+in REQUIREMENTS. The packages in the list EXTENSIONS are made available from
+the backdoor REPL."
(operating-system
(inherit os)
;; Make sure the guest dies on error.
@@ -172,6 +186,7 @@ in REQUIREMENTS."
(services (cons (service marionette-service-type
(marionette-configuration
(requirements requirements)
+ (extensions extensions)
(imported-modules imported-modules)))
(operating-system-user-services os)))))
@@ -281,4 +296,9 @@ result."
"Return the list of system tests."
(reverse (fold-system-tests cons '())))
+
+;; Local Variables:
+;; eval: (put 'with-imported-modules-and-extensions 'scheme-indent-function 2)
+;; End:
+
;;; tests.scm ends here
- branch master updated (eb8da54 -> d14f213), guix-commits, 2021/04/12
- 01/09: gnu: racket: Don't inject store paths into Racket files., guix-commits, 2021/04/12
- 05/09: gnu: tests: Test basic funtionality of the IPFS service., guix-commits, 2021/04/12
- 03/09: Add (guix ipfs)., guix-commits, 2021/04/12
- 04/09: tests: Support package extensions in the backdoor REPL.,
guix-commits <=
- 06/09: services: ipfs: Tweak description., guix-commits, 2021/04/12
- 02/09: services: Add ipfs-service-type, guix-commits, 2021/04/12
- 07/09: channels: Build user channels with '-O1'., guix-commits, 2021/04/12
- 09/09: doc: Document 'gnu-build-system' keyword parameters., guix-commits, 2021/04/12
- 08/09: doc: Move list of build phases to "Build Phases"., guix-commits, 2021/04/12