summaryrefslogtreecommitdiff
path: root/gnu/tests/install.scm
AgeCommit message (Expand)Author
2020-05-05image: Add a new API....Raw disk-images and ISO9660 images are created in a Qemu virtual machine. This is quite fragile, very slow, and almost unusable without KVM. For all these reasons, add support for host image generation. This implies the use new image generation mechanisms. - Raw disk images: images of partitions are created using tools such as mke2fs and mkdosfs depending on the partition file-system type. The partition images are then assembled into a final image using genimage. - ISO9660 images: the ISO root directory is populated within the store. GNU xorriso is then called on that directory, in the exact same way as this is done in (gnu build vm) module. Those mechanisms are built upon the new (gnu image) module. * gnu/image.scm: New file. * gnu/system/image.scm: New file. * gnu/build/image: New file. * gnu/local.mk: Add them. * gnu/system/vm.scm (system-disk-image): Rename to system-disk-image-in-vm. * gnu/ci.scm (qemu-jobs): Adapt to new API. * gnu/tests/install.scm (run-install): Ditto. * guix/scripts/system.scm (system-derivation-for-action): Ditto. Mathieu Othacehe
2020-05-03tests: install: Test a F2FS root file system....* gnu/tests/install.scm (%f2fs-root-os, %f2fs-root-installation-script, %test-f2fs-root-os): New variables. Danny Milosavljevic
2020-04-29tests: install: Fix device usage....This is a follow-up of a860eddbbddeae5d3b6fe084e29ac9fafd2d6f02. Guided installation tests are now run from an ISO image. Hence the main block device is vda and not vdb anymore. * gnu/tests/install.scm (installation-target-os-for-gui-tests): Use %minimal-os-on-vda instead of %minimal-os. (%minimal-os-on-vda): Make sure that it replicates the config of %minimal-os. Mathieu Othacehe
2020-04-29tests: install: Fix gui-installed-os test....This is a follow-up of a860eddbbddeae5d3b6fe084e29ac9fafd2d6f02. If using an ISO, the main disk is vda and not vdb anymore. * gnu/tests/install.scm (installation-target-os-for-gui-tests): Use vda2 as swap partition. Mathieu Othacehe
2020-04-29tests: install: Increase virtual machine RAM....It seems that 'guix system init' is consuming more than the 800M of RAM currently allocated. Until this is understood, bump the limit to 1.2G. Reported here: https://lists.gnu.org/archive/html/bug-guix/2020-04/msg00519.html * gnu/tests/install.scm (run-install): Bump RAM to 1.2G. Mathieu Othacehe
2020-04-10tests: Run guided installation tests from an ISO image....* gnu/tests/install.scm (guided-installation-test): Pass #:installation-disk-image-file-system-type to 'run-install'. Ludovic Courtès
2020-04-08tests: Mark VM images as non-substitutable....* gnu/tests/install.scm (run-install): Pass #:substitutable? to 'system-disk-image' and to 'gexp->derivation'. Ludovic Courtès
2020-03-26tests: install: Add %test-gui-installed-desktop-os-encrypted....* gnu/tests/install.scm (gui-test-program): Add a desktop? argument, and pass it to choose-services, (installation-target-os-for-gui-tests): new procedure, (installation-target-desktop-os-for-gui-tests): new procedure, (guided-installation-test): add target-os and desktop? arguments. Use target-os instead of the previous os variable. Pass desktop? argument to gui-test-program. (%test-gui-installed-os): Adapt accordingly, (%test-gui-installed-os-encrypted): ditto, (%test-gui-installed-desktop-os-encrypted): new exported variable. Mathieu Othacehe
2020-03-22tests: 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*". Throw an exception when one on the marionette-eval calls fail. Mathieu Othacehe
2020-03-19tests: Accept manual installation scripts that exit with SIGTERM....Fixes <https://bugs.gnu.org/39926>. Reported by Maxim Cournoyer <maxim.cournoyer@gmail.com>. Previously we'd error out if the installation script exits with non-zero, which was the case because the 'reboot' program would typically not get a reply, and thus would eventually be killed by PID 1 as the system is brought down. * gnu/tests/install.scm (run-install)[install]: Expect SCRIPT to exit with SIGTERM in addition to exiting with zero. Ludovic Courtès
2020-03-05tests: install: Add %test-gui-installed-os-encrypted....* gnu/tests/install.scm (%test-gui-installed-os-encrypted): New variable, (guided-installation-test): set a swap-device only if there is no encryption. Mathieu Othacehe
2020-03-05tests: install: Add "gui-installed-os"....* gnu/installer/tests.scm: New file. * gnu/local.mk (INSTALLER_MODULES): Add it. * gnu/tests/install.scm (run-install): Add #:gui-test. Add (gnu installer tests) to the marionette imported modules. Honor GUI-TEST. Check whether SCRIPT is true. (%root-password, %syslog-conf): New variable. (operating-system-with-console-syslog, gui-test-program) (guided-installation-test): New procedures. (%extra-packages, installation-os-for-gui-tests) (%test-gui-installed-os): New variable. Ludovic Courtès
2020-02-22tests: Factorize LUKS passphrase....* gnu/tests/install.scm (%luks-passphrase): New variable. (%encrypted-root-installation-script): Use it. (enter-luks-passphrase): Use it. Ludovic Courtès
2020-01-19tests: install: "raid-root-os" test uses RAID-1 instead of RAID-0....Fixes <https://bugs.gnu.org/38086>. Thanks to Vagrant and Tobias! * gnu/tests/install.scm (%raid-root-os)[initrd-modules]: Add "raid1" instead of "raid0". (%raid-root-installation-script): Make the partitions twice as big. Invoke 'mdadm' with '--level=mirror' instead of '--level=stripe'; connect "yes" to its stdin. (%test-raid-root-os): Set #:target-size to 2.8 GiB. Ludovic Courtès
2020-01-03tests: install: Test a JFS root file system....* gnu/tests/install.scm (%jfs-root-os, %jfs-root-installation-script) (%test-jfs-root-os): New variables. Tobias Geerinckx-Rice
2019-11-18tests: install: Fix typo....* gnu/tests/install.scm (run-install): Fix typo in docstring. Maxim Cournoyer
2019-11-06tests: install: Increase root partition size....1.2G had become slightly too small on x86_64. This is a followup to 8dfb0c969e513276c632b8d26fb3601fa02993ca. * gnu/tests/install.scm (%simple-installation-script) (%extlinux-gpt-installation-script) (%simple-installation-script-for-/dev/vda): Switch from 1.2G to 1.4G. Ludovic Courtès
2019-07-06tests: encrypted-root-os: Increase root partition size....1.2G had become slightly too small on x86_64. * gnu/tests/install.scm (%encrypted-root-installation-script): Increase root partition size to 1.3G. Ludovic Courtès
2019-06-24tests: Import (guix build utils) in the marionette....* gnu/tests/install.scm (%minimal-os)[marionette-configuration](imported-modules): Add (guix build utils). * gnu/tests/base.scm (run-basic-test)["skeletons in home directories"]: Use (guix build utils) explicitly. Ludovic Courtès
2019-05-15system: Add 'operating-system-with-gc-roots'....* gnu/tests/install.scm (operating-system-with-gc-roots): Move to... * gnu/system.scm (operating-system-with-gc-roots): ... here. New procedure. Ludovic Courtès
2019-04-14tests: separate-store-os: Increase root partition size....* gnu/tests/install.scm (%separate-store-installation-script): Increase size of the root partition so that it's big enough to contain downloaded nars and temporary files. Add 'df -h /mnt/gnu'. Ludovic Courtès
2019-03-25accounts: Add default value for the 'home-directory' field of <user-account>....* gnu/system/accounts.scm (<user-account>)[home-directory]: Mark as thunked and add a default value. (default-home-directory): New procedure. * doc/guix.texi (User Accounts): Remove 'home-directory' from example. * gnu/system/examples/bare-bones.tmpl: Likewise. * gnu/system/examples/beaglebone-black.tmpl: Likewise. * gnu/system/examples/desktop.tmpl: Likewise. * gnu/system/examples/docker-image.tmpl: Likewise. * gnu/system/examples/lightweight-desktop.tmpl: Likewise. * gnu/system/install.scm (installation-os): Likewise. * gnu/tests.scm (%simple-os): Likewise. * gnu/tests/install.scm (%minimal-os, %minimal-os-on-vda): (%separate-home-os, %encrypted-root-os, %btrfs-root-os): Likewise. * tests/accounts.scm ("allocate-passwd") ("allocate-passwd with previous state"): Likewise. Ludovic Courtès
2019-03-13Remove traces of "GuixSD"....* gnu/bootloader/extlinux.scm (extlinux-configuration-file): Remove mentions of "GuixSD". * gnu/bootloader/grub.scm (install-grub-efi): Likewise. * gnu/build/vm.scm (make-iso9660-image): Change default #:volume-id to "Guix_image". (initialize-hard-disk): Search for the "Guix_image" label. * gnu/ci.scm (system-test-jobs, tarball-jobs): Remove "GuixSD". * gnu/installer/newt/welcome.scm (run-welcome-page): Likewise. * gnu/packages/audio.scm (supercollider)[description]: Likewise. * gnu/packages/curl.scm (curl): Likewise. * gnu/packages/emacs.scm (emacs): Likewise. * gnu/packages/gnome.scm (network-manager): Likewise. * gnu/packages/julia.scm (julia): Likewise. * gnu/packages/linux.scm (alsa-plugins): Likewise. (powertop, wireless-regdb): Likewise. * gnu/packages/package-management.scm (guix): Likewise. * gnu/packages/polkit.scm (polkit): Likewise. * gnu/packages/tex.scm (texlive-bin): Likewise. * gnu/services/base.scm (file-systems->fstab): Likewise. * gnu/services/cups.scm (%cups-activation): Likewise. * gnu/services/mail.scm (%dovecot-activation): Likewise. * gnu/services/messaging.scm (prosody-configuration)[log]: Likewise. * gnu/system/examples/vm-image.tmpl (vm-image-motd): Likewise. * gnu/system/install.scm (installation-os)[file-systems]: Change root file system label to "Guix_image". * gnu/system/mapped-devices.scm (check-device-initrd-modules): Remove "GuixSD". * gnu/system/vm.scm (system-docker-image): Likewise. (system-disk-image)[root-label]: Change to "Guix_image". * gnu/tests/install.scm (run-install): Remove "GuixSD". * guix/modules.scm (guix-module-name?): Likewise. * nix/libstore/optimise-store.cc: Likewise. Ludovic Courtès
2019-01-22gnu: Remove duplicate record fields....* gnu/packages/haskell.scm (ghc-case-insensitive): Remove duplicate 'inputs' field. * gnu/packages/python-xyz.scm (python2-pysnptools): Remove duplicate 'native-inputs' field. * gnu/tests/install.scm (%separate-home-os): Remove duplicate 'type' field. Ludovic Courtès
2019-01-17tests: Rename %test-encrypted-os to %test-encrypted-root-os....* gnu/tests/install.scm (%test-encrypted-os): Rename to %test-encrypted-root-os for consistency with its system-test name. Mathieu Othacehe
2018-12-04tests: Increase root partitions size to 1.2G....The system closure has grown slightly above 1GiB so adjust accordingly. * gnu/tests/install.scm (%simple-installation-script): Increase vdb2 size of 1.2G, (%extlinux-gpt-installation-script); ditto (%simple-installation-script-for-/dev/vda): ditto, (%separate-store-installation-script): ditto for vdb3, (%encrypted-root-installation-script): ditto. Ludovic Courtès
2018-05-28system: Remove uses of the 'title' field of <file-system>....* gnu/system/install.scm (installation-os): Remove uses of the 'title' field of 'file-system'; use 'file-system-label' as appropriate. * gnu/system/vm.scm (system-disk-image, system-qemu-image): Likewise. * gnu/tests.scm (%simple-os): Likewise. * gnu/tests/install.scm (%minimal-os, %minimal-extlinux-os) (%minimal-os-on-vda, %separate-home-os, %separate-store-os) (%raid-root-os, %encrypted-root-os, %btrfs-root-os): Likewise. * gnu/build/shepherd.scm (default-mounts)[tmpfs]: Likewise. * tests/guix-system.sh: Likewise. * tests/system.scm (%root-fs): Likewise. ("operating-system-boot-mapped-devices, implicit dependency"): Likewise. Ludovic Courtès
2018-03-02system: Add 'initrd-modules' field....* gnu/system.scm (<operating-system>)[initrd-modules]: New field. (operating-system-initrd-file): Pass #:linux-modules to 'make-initrd'. * gnu/system/linux-initrd.scm (default-initrd-modules): New procedure. (%base-initrd-modules): New macro. (base-initrd): Add #:linux-modules and honor it. * gnu/system/install.scm (embedded-installation-os): Use 'initrd-modules' instead of 'initrd'. * gnu/tests/install.scm (%raid-root-os): Likewise. * doc/guix.texi (operating-system Reference): Add 'initrd-modules'. (Initial RAM Disk): Document it. Adjust example to not use #:extra-modules. Ludovic Courtès
2017-12-06gnu, doc, tests: Use ‘bootloader-configuration’ everywhere....* doc/guix.texi (Proceeding with the Installation): Replace the old-style ‘grub-configuration’ with the newer ‘bootloader-configuration’ syntax. * gnu/system/examples/vm-image.tmpl: Likewise. * gnu/system/install.scm (installation-os): Likewise. * gnu/tests.scm (%simple-os): Likewise. * gnu/tests/install.scm (%minimal-os, %minimal-os-on-vda, %separate-home-os) (%separate-store-os, %raid-root-os, %encrypted-root-os, %btrfs-root-os): Likewise. * gnu/tests/nfs.scm (%base-os): Likewise. * tests/guix-system.scm (OS_BASE, make_user_config): Likewise. * tests/system.scm (%os, %os-with-mapped-device): Likewise. Tobias Geerinckx-Rice
2017-11-15tests: install: Increase target-size....1200 MiB are too small for a btrfs-root-os, thus let increase it. * gnu/tests/install.scm (run-install): Increase target-size to 2200 MiB. (%btrfs-root-installation-script): Increase my-root partition size to 2G. Oleg Pykhalov
2017-10-30tests: install: Estimate the installation system disk size....1500 MiB are too small for a current system, thus let system-disk-image estimate the required size. * gnu/tests/install.scm: (run-install): Pass "#:disk-image-size 'guess" to system-disk-image. Hartmut Goebel
2017-09-26tests: install: Switch to modifying the gc-root-service-type....Fixes <https://bugs.gnu.org/28600>. Fixes a regression introduced in 4e854b1814a9216ae7cc90aef4d82fd989a519c3. Reported by Christopher Baines <mail@cbaines.net>. * gnu/tests/install.scm (operating-system-with-gc-roots): Use 'simple-service' to extend GC-ROOT-SERVICE-TYPE instead of instantiating it. Ludovic Courtès
2017-09-08tests: Fix incorrect use of 'file-append'....Fixes a regression introduced in fbc7b1f12561159e0ec3f6459d336f95cf2ce503. * gnu/tests/install.scm (run-install)[install]: Don't use 'file-append' with a string as its first argument; use a gexp with 'string-append' instead. Use a gexp instead of a list for "-cdrom IMG". Ludovic Courtès
2017-09-06tests: Add test for installing from an ISO Image....* gnu/tests/install.scm (%test-iso-image-installer): New variable. (run-install): Add #:installation-disk-image-file-system-type as a keyword argument. Christopher Baines
2017-08-23gnu: bootloader: Deprecate "device" field in favor of "target"....* gnu/bootloader.scm (<bootloader-configuration>): Deprecate "device" field in favor of "target" field. This is mostly a renaming but also a generalization to support UEFI targets being paths to a mounted partition instead of a device name. * gnu/system/examples/bare-bones.tmpl: * gnu/system/examples/desktop.tmpl: * gnu/system/examples/lightweight-desktop.tmpl: * gnu/system/examples/vm-image.tmpl: * gnu/system/install.scm: * gnu/tests.scm: * gnu/tests/install.scm: * gnu/tests/nfs.scm: * tests/system.scm: Adapt all invocations of bootloader-configuration. * guix/scripts/system.scm (perform-action): Rename device argument to bootloader-target. (process-action): Adapt caller. * doc/guix.texi (Proceeding with the Installation): * doc/guix.texi (Bootloader Configuration): Update documentation. Andy Wingo
2017-07-15gnu: Rename (gnu packages qemu) to (gnu packages virtualization)....* gnu/packages/qemu.scm: Rename this ... * gnu/packages/virtualization.scm: ... to this. * gnu/local.mk (GNU_SYSTEM_MODULES), gnu/packages/bootloaders.scm, gnu/packages/debug.scm, gnu/packages/gnome.scm, gnu/system/vm.scm, gnu/tests/install.scm: Adjust accordingly. 宋文武
2017-06-21tests: Add extlinux gpt test....* gnu/tests/install.scm (%test-installed-extlinux-os): New exported variable. (%minimal-extlinux-os, %minimal-extlinux-os-source): New variables. (%extlinux-gpt-installation-script): New variable. (run-install)[packages]: New argument. The packages specified are appended to the installation image. Mathieu Othacehe
2017-02-01system: Create home directories once 'file-systems' is up....Fixes <http://bugs.gnu.org/21108>. Reported by Andy Patterson <ajpatter@uwaterloo.ca> and Leo Famulari <leo@famulari.name>. * gnu/build/activation.scm (activate-users+groups)[activate-user]: Pass #:create-home? #t iff CREATE-HOME? and SYSTEM?. (activate-user-home): New procedure. * gnu/system/shadow.scm (account-shepherd-service): New procedure. (account-service-type)[extensions]: Add SHEPHERD-ROOT-SERVICE-TYPE extension. * gnu/tests/base.scm (run-basic-test)["home"] ["skeletons in home directories"]: New tests. * gnu/tests/install.scm (%separate-home-os, %separate-home-os-source) (%test-separate-home-os): New variables. Ludovic Courtès
2017-01-16file-systems: 'file-system-needed-for-boot?' is #t for parents of the store....Suggested by John Darrington <john@darrington.wattle.id.au>. * gnu/system/file-systems.scm (%not-slash): New variable. (file-prefix?): New procedure. (file-system-needed-for-boot?): Use it to check whether FS holds the store. * tests/file-systems.scm ("file-system-needed-for-boot?"): New test. * gnu/tests/install.scm (%separate-store-os)[file-systems]: Remove 'needed-for-boot?' field for "/gnu". Ludovic Courtès
2017-01-10system: Add btrfs file system support....* gnu/build/file-systems.scm (%btrfs-endianness, btrfs-superblock?, read-btrfs-superblock, btrfs-superblock-uuid, btrfs-superblock-volume-name, check-btrfs-file-system): New variables. (%paritition-label-readers, %partition-uuid-readers): Add btrfs readers. * gnu/system/linux-initrd.scm (linux-modules): Add btrfs modules when a btrfs file-system is used. * gnu/tests/install.scm (%btrfs-root-os %btrfs-root-os-source, %btrfs-root-installation-script, %test-btrfs-root-os): New system test. * doc/guix.texi: Adjust accordingly. Fixes <http://bugs.gnu.org/19280>. David Craven
2016-11-30tests: Create a copy-on-write image instead of copying eagerly....* gnu/tests/install.scm (qemu-command/writable-image): Invoke 'qemu-img -o backing_file' instead of calling 'copy-file'. Ludovic Courtès
2016-11-23install: Enable "cryptodisk" handling in GRUB....This allows 'grub-install' to do the right thing when / or /boot is a LUKS-encrypted partition. Fixes <http://bugs.gnu.org/21843>. * gnu/build/install.scm (install-grub): Add 'setenv' to set 'GRUB_ENABLE_CRYPTODISK'. (wait-for-screen-text): New test. * gnu/tests/base.scm (run-basic-test): Add #:initialization parameter and honor it. * gnu/tests/install.scm (%encrypted-root-os)[kernel-arguments]: Remove. (%encrypted-root-installation-script): Pass '--uuid' to 'cryptsetup luksFormat'. Remove 'sed' invocation. (enter-luks-passphrase): New procedure. (%test-encrypted-os)[value]: Pass #:initialization to 'run-basic-test'. Ludovic Courtès
2016-10-27tests: Test installation with a RAID root partition....* gnu/tests/install.scm (%raid-root-os, %raid-root-os-source) (%raid-root-installation-script, %test-raid-root-os): New variables. Ludovic Courtès
2016-10-27tests: Add #:memory-size parameter for the command to run the installed OS....* gnu/tests/install.scm (qemu-command/writable-image): Add #:memory-size parameter and honor it. Ludovic Courtès
2016-10-27tests: Test installation with store on a separate partition....This is a followup to 0f65f54ebd76324653fd5506a7dab42ee44d9255. * gnu/tests/install.scm (%separate-store-os, %separate-store-os-source) (%separate-store-installation-script, %test-separate-store-os): New variables. Ludovic Courtès
2016-07-18tests: install: Generalize 'run-install'....* gnu/tests/install.scm (%simple-installation-script): New variable. Contains installation script formerly in 'run-install'. (run-install): Add 'target-os', 'target-os-source', and #:script parameters. Honor them. (qemu-command/writable-image): New procedure. (%test-installed-os): Use it. Ludovic Courtès
2016-07-12gnu: Switch to 'with-imported-modules'....* gnu/services.scm (directory-union): Use 'with-imported-modules' instead of the '#:modules' argument of 'computed-file'. * gnu/services/base.scm (udev-rules-union): Likewise. * gnu/services/dbus.scm (system-service-directory): Likewise. * gnu/services/desktop.scm (wrapped-dbus-service): (polkit-directory): Likewise. * gnu/services/networking.scm (tor-configuration->torrc): Likewise. * gnu/services/xorg.scm (xorg-configuration-directory): Likewise. * gnu/system/install.scm (self-contained-tarball): Likewise. * gnu/system/linux-container.scm (container-script): Likewise. * gnu/system/linux-initrd.scm (expression->initrd): Likewise, and remove #:modules parameter. (flat-linux-module-directory): Use 'with-imported-modules'. (base-initrd): Likewise. * gnu/system/locale.scm (locale-directory): Likewise. * gnu/system/shadow.scm (default-skeletons): Likewise. * gnu/system/vm.scm (expression->derivation-in-linux-vm): Likewise. * gnu/tests/base.scm (run-basic-test): Likewise. * gnu/tests/install.scm (run-install): Likewise. * doc/guix.texi (Initial RAM Disk): Update 'expression->initrd' documentation. Ludovic Courtès
2016-07-02tests: install: Adjust to new 'marionette-service-type' interface....This is a followup to 037f9e07cd03d6894a6b5fc9a252c34d3b163962. Reported by Mark H Weaver. * gnu/tests/install.scm (%minimal-os): Pass a <marionette-configuration> object as the value for the MARIONETTE-SERVICE-TYPE. Ludovic Courtès
2016-06-23tests: Installation test no longer requires KVM....* gnu/tests/install.scm (%test-installed-os): Use '-enable-kvm' only when /dev/kvm exists. Ludovic Courtès
2016-06-20tests: Add a mechanism to describe and discover system tests....* gnu/tests.scm (<system-test>): New record type. (write-system-test, test-modules, fold-system-tests) (all-system-tests): New procedures. * gnu/tests/base.scm (%test-basic-os): Turn into a <system-test>. * gnu/tests/install.scm (%test-installed-os): Likewise. * build-aux/run-system-tests.scm (%system-tests): Remove. (run-system-tests): Use 'all-system-tests'. Ludovic Courtès