summaryrefslogtreecommitdiff
path: root/gnu/tests/base.scm
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2020-03-06 00:17:50 +0100
committerMarius Bakke <mbakke@fastmail.com>2020-03-06 00:17:50 +0100
commitb6f946f039afad6cbc7027d52685072f7fbb8d35 (patch)
tree9dc33d1ef9d307f1e3ed8a825902ff69bbe288f9 /gnu/tests/base.scm
parente32aea5472007507e62933b27a4db9a50810e5dc (diff)
parentbc8b2ffdac3f55414629ace5b1a0db32e9656c0a (diff)
downloadguix-patches-b6f946f039afad6cbc7027d52685072f7fbb8d35.tar
guix-patches-b6f946f039afad6cbc7027d52685072f7fbb8d35.tar.gz
Merge branch 'master' into staging
Diffstat (limited to 'gnu/tests/base.scm')
-rw-r--r--gnu/tests/base.scm23
1 files changed, 19 insertions, 4 deletions
diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm
index a891711844..37b83dc7ec 100644
--- a/gnu/tests/base.scm
+++ b/gnu/tests/base.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
@@ -55,7 +55,7 @@
(define* (run-basic-test os command #:optional (name "basic")
- #:key initialization)
+ #:key initialization root-password)
"Return a derivation called NAME that tests basic features of the OS started
using COMMAND, a gexp that evaluates to a list of strings. Compare some
properties of running system to what's declared in OS, an <operating-system>.
@@ -63,7 +63,10 @@ properties of running system to what's declared in OS, an <operating-system>.
When INITIALIZATION is true, it must be a one-argument procedure that is
passed a gexp denoting the marionette, and it must return gexp that is
inserted before the first test. This is used to introduce an extra
-initialization step, such as entering a LUKS passphrase."
+initialization step, such as entering a LUKS passphrase.
+
+When ROOT-PASSWORD is true, enter it as the root password when logging in.
+Otherwise assume that there is no password for root."
(define special-files
(service-value
(fold-services (operating-system-services os)
@@ -300,7 +303,19 @@ info --version")
marionette)
;; Now we can type.
- (marionette-type "root\n\nid -un > logged-in\n" marionette)
+ (let ((password #$root-password))
+ (if password
+ (begin
+ (marionette-type "root\n" marionette)
+ (wait-for-screen-text marionette
+ (lambda (text)
+ (string-contains text "Password"))
+ #:ocrad
+ #$(file-append ocrad "/bin/ocrad"))
+ (marionette-type (string-append password "\n\n")
+ marionette))
+ (marionette-type "root\n\n" marionette)))
+ (marionette-type "id -un > logged-in\n" marionette)
;; It can take a while before the shell commands are executed.
(marionette-eval '(use-modules (rnrs io ports)) marionette)