Commit graph

193 commits

Author SHA1 Message Date
Vladimír Čunát 8d45d82c71
Revert "nixos/tests/installer: test relative paths in initrd secrets"
This reverts commit 9bb888c9f8 from PR #210812.
We first need to fix nixosTests.installer.simpleUefiSystemdBoot
2023-01-19 10:25:22 +01:00
Vladimír Čunát 2b988c76fd
Revert "nixosTests.installer: bump memorySize"
This reverts commit 309ed272be.
The bump caused nixosTests.installer.luksroot hang, e.g. see
https://hydra.nixos.org/build/205951019
(I don't know why.)

The OOM issues were avoided by 6dccdc4585 (newer but merged earlier)
2023-01-18 11:45:48 +01:00
rnhmjoj 9bb888c9f8
nixos/tests/installer: test relative paths in initrd secrets 2023-01-16 02:31:02 +01:00
rnhmjoj 928181b5f3
nixos/tests/installer: add full disk encryption test
This tests a common full disk encryption setup:
https://gist.github.com/ladinu/bfebdd90a5afd45dec811296016b2a3f
2023-01-16 02:31:01 +01:00
Artturi ee5e15cf2d
Merge pull request #208614 from LeSuisse/grub2-CVE-2022-2601-CVE-2022-3775 2023-01-15 23:23:33 +02:00
pennae a88a515653 nixosTests.installer.*: disable documentation
building the manual takes a pretty long time and sufficient memory to
cause hydra failures: https://hydra.nixos.org/build/205689097#tabs-buildsteps
2023-01-15 16:06:07 +01:00
Artturin 309ed272be nixosTests.installer: bump memorySize
Without it the tests sometimes fail because the OOM killer is triggered.
https://hydra.nixos.org/build/204713462
2023-01-10 18:45:34 +02:00
Naïm Favier b8ee437596
Merge pull request #208643 from ncfavier/installer-test-tmp 2023-01-09 13:20:02 +01:00
Jörg Thalheim c8104628f4 nixos/tests/installer/bcachefs: use ocr to type in password 2023-01-01 19:58:17 +01:00
Jörg Thalheim 13b0e42202 nixos/tests/installer: disable zfs for bcachefs tests
we are potentially testing very new kernels here, which are not
supported by zfs yet.
2023-01-01 19:58:17 +01:00
Naïm Favier 19cfb3e48c
nixos/tests/installer: test initrd secrets and nix-build
Both of those things rely on nixos-enter creating `/tmp` under the mount
point.
2023-01-01 17:20:37 +01:00
Artturin 05a2dfd674 lib.replaceChars: warn about being a deprecated alias
replaceStrings has been in nix since 2015(nix 1.10)

so it is safe to remove the fallback

d6d5885c15
2022-12-15 22:25:51 +02:00
Lily Foster c2b3c9794d nixosTests: test spaces in mount options via btrfs subvols
Also enabled the btrfs tests for installer-systemd-stage-1 again
2022-11-06 22:15:35 +01:00
Robert Hensing f40ff7f1f1 nixos/tests/installer: Add make-options-doc dep 2022-09-24 17:42:52 +01:00
Robert Hensing 618f82406f nixos/tests/installer: Fix docbook dependency 2022-09-24 17:38:10 +01:00
Madoura 39b9cf311b
nixos/tests/installer: add bcachefs tests 2022-05-04 19:26:43 -05:00
Bernardo Meurer 78f6f77962
Merge pull request #169113 from ElvishJerricco/systemd-stage-1-installer-tests
nixos: Installer tests for systemd stage 1
2022-04-30 13:18:57 -07:00
K900 adf3fe6811 nixos/tests/installer: disable vlans for initial VM
This saves 10-15 minutes of waiting for things to time out later.
2022-04-22 22:27:03 +03:00
K900 ed3cc9672a nixos/tests/installer: add missing dependency to image
Unbreaks nixosTests.installer.simple.
2022-04-22 21:03:46 +03:00
Will Fancher 9ee5d61a16 nixos: Installer tests for systemd stage 1 2022-04-17 18:31:35 -04:00
Vladimír Čunát 6427998d85
nixosTests.installer.*: provide a missing dependency
See errors in these three jobs:
https://hydra.nixos.org/eval/1753111#tabs-still-fail
It's a bit unpleasant that a single run of each test takes
almost an hour for me (half an hour on Hydra in some cases).
2022-04-05 18:55:56 +02:00
ajs124 16bce5f2fe nixosTests.installer.lvm: adjust root LV size
install ran out of disk space after 5b820f714d
2022-03-24 01:15:22 +01:00
pennae 6b8e88268e
Merge pull request #156213 from chkno/fix-install-tests
nixos/tests/install: Fix after sandboxed-docs change fc614c3
2022-01-29 00:15:53 +00:00
polykernel 4a9d9928dc nixos/nix-daemon: use structural settings
The `nix.*` options, apart from options for setting up the
daemon itself, currently provide a lot of setting mappings
for the Nix daemon configuration. The scope of the mapping yields
convience, but the line where an option is considered essential
is blurry. For instance, the `extra-sandbox-paths` mapping is
provided without its primary consumer, and the corresponding
`sandbox-paths` option is also not mapped.

The current system increases the maintenance burden as maintainers have to
closely follow upstream changes. In this case, there are two state versions
of Nix which have to be maintained collectively, with different options
avaliable.

This commit aims to following the standard outlined in RFC 42[1] to
implement a structural setting pattern. The Nix configuration is encoded
at its core as key-value pairs which maps nicely to attribute sets, making
it feasible to express in the Nix language itself. Some existing options are
kept such as `buildMachines` and `registry` which present a simplified interface
to managing the respective settings. The interface is exposed as `nix.settings`.

Legacy configurations are mapped to their corresponding options under `nix.settings`
for backwards compatibility.

Various options settings in other nixos modules and relevant tests have been
updated to use structural setting for consistency.

The generation and validation of the configration file has been modified to
use `writeTextFile` instead of `runCommand` for clarity. Note that validation
is now mandatory as strict checking of options has been pushed down to the
derivation level due to freeformType consuming unmatched options. Furthermore,
validation can not occur when cross-compiling due to current limitations.

A new option `publicHostKey` was added to the `buildMachines`
submodule corresponding to the base64 encoded public host key settings
exposed in the builder syntax. The build machine generation was subsequently
rewritten to use `concatStringsSep` for better performance by grouping
concatenations.

[1] - https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md
2022-01-26 21:04:50 -05:00
Scott Worley 3f70c90d7a nixos/tests/installer: Fix race in bcache test
It looks like "make-bcache" also registers the devices, so the separate
registration afterwords is unnecessary.

Previously, the separate registration right afterwords didn't cause
a problem, presumably because it won the race with make-bcache's
registration.  After 1640359f33 slightly
changed the timing of command execution in tests, the separate
registration often fails with the error message "device already
registered", stopping the test.
2022-01-24 10:58:23 +01:00
Scott Worley e7a1007725 nixos/tests/installer: Fix after sandboxed-docs change fc614c3 2022-01-23 00:09:19 -08:00
ajs124 a43c2c1e70 Revert "nixos/tests/installer: lvm: test lvm2-pvscan@ units"
This reverts commit 53a34361af.
2021-12-07 13:17:42 +01:00
Artturin c19234d0df nixos/tests/installer: increase /boot sizes to 100MB 2021-11-30 03:53:14 +02:00
Artturi c4851c0d71
Revert msize related commits (#147180) 2021-11-24 02:33:53 +02:00
Artturin 03e8e5848b nixos/tests/installer: increase memorySize to 3G
and increase the memory flags too
2021-11-21 23:06:58 +02:00
Sandro 07f29d2db2
Merge pull request #146829 from r-burns/isx86 2021-11-21 14:20:12 +01:00
Ryan Burns 2175b157ac treewide: refactor isi686 && isx86_64 -> isx86 2021-11-20 17:50:41 -08:00
Vladimír Čunát 60c5230968
nixosTests.installer: increase the VM memory
For me that fixes the i686 ZFS case:
https://hydra.nixos.org/build/158897777
I don't think it's worth chasing why RAM usage isn't very low here.
2021-11-20 23:00:43 +01:00
Bernardo Meurer 9c1d31ce68
nixos/tests/installer: comment out nixos-option test for now 2021-11-10 15:57:18 -08:00
Luke Granger-Brown b942e0f650 nixos/tests/installer: don't break under i686
Currently, the installer tests just hang after the initial install phase
on i686 because qemu just quits because of the gic parameter.

Fix this by doing x86 things for both x86-64 and i686.
2021-05-03 01:44:54 +00:00
Samuel Dionne-Riel 7d112134de nixosTests.installer: Fix grub1 test being unreliable
The kernel sometimes assigns `/dev/sdb` to the 8GiB disk. This, in turn,
means the test will fail because we're targeting the wrong disk.

```
machine # [    0.000000] sd 2:0:0:0: [sda] 16777216 512-byte logical blocks: (8.59 GB/8.00 GiB)
machine # [    0.000000] sd 3:0:0:0: [sdb] 1048576 512-byte logical blocks: (537 MB/512 MiB)
```

```
machine # [    0.000000] sd 2:0:0:0: [sdb] 16777216 512-byte logical blocks: (8.59 GB/8.00 GiB)
machine # [    0.000000] sd 3:0:0:0: [sda] 1048576 512-byte logical blocks: (537 MB/512 MiB)
```

Note how the "sd x:0:0:0:` ID is stable. That is because QEMU **is**
told to give specific identifiers to the disks. So using the
dev/disk/by-id/ identifiers is stable.

* * *

Tested by forcing the sda/sdb swap this way:

    diff --git a/nixos/tests/installer.nix b/nixos/tests/installer.nix
    index 24c55081f9a..2eee224351b 100644
    --- a/nixos/tests/installer.nix
    +++ b/nixos/tests/installer.nix
    @@ -702,12 +702,19 @@ in {
               + " mkpart primary linux-swap 1M 1024M"
               + " mkpart primary ext2 1024M -1s",
               "udevadm settle",
    +      )
    +      print(machine.succeed("find /dev/disk/ '!' -type d -printf '%p → %l\n' | sort"))
    +      machine.succeed(
               "mkswap ${grubDevice}-part1 -L swap",
               "swapon -L swap",
               "mkfs.ext3 -L nixos ${grubDevice}-part2",
               "mount LABEL=nixos /mnt",
               "mkdir -p /mnt/tmp",
           )
    +      machine.succeed("echo success")
    +      machine.succeed(
    +          'if [[ "$(find ${grubDevice} -printf \'%l\')" != "../../sdb" ]]; then exit 22; else true; fi'
    +      )
         '';
         grubVersion = 1;
         # /dev/sda is not stable, even when the SCSI disk number is.

And ran this way:

     $ until (clear; tmux clear ; time env -i nix-build nixos/release-combined.nix -A nixos.tests.installer.grub1.x86_64-linux); do echo derp; done
2021-04-25 19:59:29 -04:00
Jacek Galowicz bc7a369c68
Merge pull request #112961 from r-burns/nixos-test-grub
nixosTests.installer: fix non-zfs grub tests
2021-02-18 11:58:57 +01:00
Ryan Burns 5406db08bf nixosTests.installer: increase EFI partition size
Needed for simpleUefiGrub test to pass on aarch64
Runs out of space otherwise
2021-02-18 01:58:25 -08:00
Ryan Burns 5828d54356 nixosTests.installer: fix non-zfs grub tests
Now that grub2 is built without zfs support when possible, this is a
separate store path which may need to be made available to the installer.
2021-02-12 19:39:17 -08:00
Anders Kaseorg 4a0a7ccb2a nixosTests.installer: Increase memory allocated to the VM
Fixes #111223.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2021-01-31 12:45:42 -08:00
Vladimír Čunát fe111fc679 nixosTests.zfs.installer: fixup test after d44c6219b8 2021-01-24 21:02:56 +01:00
Kevin Cox 4ee9a86405
Merge pull request #109042 from Atemu/installer-tests-more-cores
tests/installer: give installer VM more cores
2021-01-18 06:14:50 -05:00
Dominik Xaver Hörl 25bef2d8f9 treewide: simplify pkgs.stdenv.lib -> pkgs.lib
The library does not depend on stdenv, that `stdenv` exposes `lib` is
an artifact of the ancient origins of nixpkgs.
2021-01-10 20:12:06 +01:00
Atemu 71590db8fb tests/installer: give installer VM more cores
ZFS installer test runtime went from 637s to 380s on my Ryzen 3600
2021-01-10 13:45:14 +01:00
Vladimír Čunát 85afe9cbe9
nixos/tests/installer: increase RAM in the VM
1G apparently isn't sufficient anymore, at least in swraid case:
https://hydra.nixos.org/build/126561574
2020-09-07 15:43:37 +02:00
Vladimír Čunát 6eea644749
nixos/tests/installer swraid: increase partition size
We apparently didn't fit anymore.  I don't think this test is meant
to (also) check closure size.

Note: as of this commit, the test is blocked by a fontconfig problem,
so I tested with that merge temporarily reverted.
2020-09-05 19:29:38 +02:00
Anders Kaseorg f4b2c9dfe7 cryptsetup, lvm2, systemd: Break cyclic dependency at a different point
The cyclic dependency of systemd → cryptsetup → lvm2 → udev=systemd
needs to be broken somewhere.  The previous strategy of building
cryptsetup with an lvm2 built without udev (#66856) caused the
installer.luksroot test to fail.  Instead, build lvm2 with a udev built
without cryptsetup.

Fixes #96479.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2020-09-03 12:35:56 -07:00
Matthew Bauer ca3fa9c32a
Merge pull request #95956 from matthewbauer/qemu-cpu-max
runInLinuxVM, test-driver: use -cpu max instead of -cpu host
2020-08-26 12:59:57 -05:00
Vladimír Čunát e02793de2f
nixos installer tests: add a missing package
Tested it locally fixes #96361
nix-build nixos/release-combined.nix -A nixos.tests.installer.lvm.x86_64-linux -Q
2020-08-26 18:14:34 +02:00
ajs124 b4fab1cdff nixosTests.installer.btrfsSubvolDefault: fix warning 2020-08-23 16:10:02 +02:00