Hi Mathieu! Mathieu Othacehe <m.othac...@gmail.com> skribis:
>>> Done, but it’d be nice to add more test of the installer! >> >> I can help on that. Maybe adding: >> >> * More partitioning patterns >> * More DE & services > > Turns out, when selecting GNOME in choose-services call of (gnu tests > install), it triggers downloads during "guix system init ..." call. > > I guess it's normal because the installer image does not contain those > packages. However, as there's no connection, it fails. > > Not sure, we can go further? Yes: you need to have ‘installation-os-for-gui-tests’ (or preferably a variant thereof) include all the services/packages needed for the target config. In the manual installation tests we use ‘define-os-with-source’ to both embed the target OS and its references in the installation image *and* have the source of the target OS available in /etc/target-config.scm in the installation image. The 2nd step is not relevant here, but the first step remains necessary. > From 11193c030fa64cc3e2f6505062b7aa4fa9b2a2f4 Mon Sep 17 00:00:00 2001 > From: Mathieu Othacehe <m.othac...@gmail.com> > Date: Fri, 20 Mar 2020 11:36:33 +0100 > Subject: [PATCH] tests: install: Abort when one installation step fails. > > When marionette-eval calls fail in gui-test-program, the installation > continues which results in two scenarios: > > - hang forever at the next marionette-eval call, > > - keep going and start a broken installation, which is annoying because it > clears the terminal and hides the error. > > Make sure that gui-test-program is exited with #f return code when one of the > marionette-eval calls fail. > > * gnu/tests/install.scm (gui-test-program): Add a new macro > "marionette-eval*". Use it to abort to prompt 'gui-test and return #f when one > on the marionette-eval calls fail. [...] > + (define-syntax-rule (marionette-eval* exp marionette) > + (unless (marionette-eval exp marionette) > + (abort-to-prompt 'gui-test))) It’d be IMO clearer, although technically equivalent, to make it: (or (marionette-eval exp marionette) (throw 'marionette-eval-failure 'exp)) Perhaps you don’t even need to catch it. Thanks for working on this! Ludo’.