Subject: [PATCH 0/7] Testing the graphical installer

From: Ludovic Courtès <[email-masked]>
Date: Sat, 22 Feb 2020 00:16:52 +0100

Hello!

Here’s a test for the graphical installer, as discussed earlier at:

  https://lists.gnu.org/archive/html/guix-devel/2020-01/msg00407.html

The first part of this patch series implements client support in the
installer as discussed above (only more robust to multiple clients,
disconnections, etc.).  A dirty bit there is the
‘close-port-and-reuse-fd’ hack, which works around the fact that Newt
does not provide a ‘form-unwatch-fd’ procedure.  Good enough for now!
There are also two hacks to (1) skip connectivity checks and (2) to
pass ‘--no-grafts’ to ‘guix system init’.

The second part implements the actual test.  The new (gnu installer
tests) module provides tools to implement a dialogue with the installer,
and the new “gui-installed-os” test uses it to perform a bare-bones
style installation.  There’s a commented out variant that does it on
an encrypted root, but it currently fails presumably due to
<https://issues.guix.gnu.org/issue/39712>.

That’s it!

Feedback welcome!

Ludo’.

PS: This patch series is also available as ‘wip-installer-test’.

Ludovic Courtès (7):
  tests: 'run-basic-test' can enter a root password.
  installer: Use a Guile-Newt snapshot that supports 'form-watch-fd'.
  installer: Implement a dialog on /var/guix/installer-socket.
  installer: Bypass connectivity check when /tmp/installer-assume-online
    exists.
  installer: Run commands without hopping through the shell.
  installer: Honor /tmp/installer-system-init-options.
  tests: install: Add "gui-installed-os".

 gnu/installer.scm                |  21 ++
 gnu/installer/final.scm          |  21 +-
 gnu/installer/newt/final.scm     |  40 ++-
 gnu/installer/newt/network.scm   |  10 +-
 gnu/installer/newt/page.scm      | 569 ++++++++++++++++++++-----------
 gnu/installer/newt/partition.scm |   8 +-
 gnu/installer/newt/user.scm      |  64 ++--
 gnu/installer/newt/welcome.scm   |  44 ++-
 gnu/installer/steps.scm          |  25 +-
 gnu/installer/tests.scm          | 340 ++++++++++++++++++
 gnu/installer/utils.scm          | 152 +++++++--
 gnu/local.mk                     |   3 +-
 gnu/tests/base.scm               |  23 +-
 gnu/tests/install.scm            | 200 ++++++++++-
 14 files changed, 1212 insertions(+), 308 deletions(-)
 create mode 100644 gnu/installer/tests.scm

-- 
2.25.1