tests: 'run-basic-test' can enter a root password.
* gnu/tests/base.scm (run-basic-test): Add #:root-password and honor it.
This commit is contained in:
parent
2c2b1ef854
commit
91ba90c18b
@ -1,5 +1,5 @@
|
|||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; 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>
|
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
@ -55,7 +55,7 @@
|
|||||||
|
|
||||||
|
|
||||||
(define* (run-basic-test os command #:optional (name "basic")
|
(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
|
"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
|
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>.
|
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
|
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
|
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
|
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
|
(define special-files
|
||||||
(service-value
|
(service-value
|
||||||
(fold-services (operating-system-services os)
|
(fold-services (operating-system-services os)
|
||||||
@ -300,7 +303,19 @@ info --version")
|
|||||||
marionette)
|
marionette)
|
||||||
|
|
||||||
;; Now we can type.
|
;; 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.
|
;; It can take a while before the shell commands are executed.
|
||||||
(marionette-eval '(use-modules (rnrs io ports)) marionette)
|
(marionette-eval '(use-modules (rnrs io ports)) marionette)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user