Commit Graph

207 Commits

Author SHA1 Message Date
Jörg Thalheim
af57956199 nixos/test/bcachefs: fix password input 2023-07-01 17:10:11 +02:00
happysalada
97f556cac1 installer: remove unused with 2023-06-19 13:12:04 -04:00
happysalada
31342eea54 installer: remove reference to non existing doc option 2023-06-19 13:12:04 -04:00
nikstur
0bdba6c99b nixos/qemu-vm: use persistent block device names
This change removes the bespoke logic around identifying block devices.
Instead of trying to find the right device by iterating over
`qemu.drives` and guessing the right partition number (e.g.
/dev/vda{1,2}), devices are now identified by persistent names provided
by udev in /dev/disk/by-*.

Before this change, the root device was formatted on demand in the
initrd. However, this makes it impossible to use filesystem identifiers
to identify devices. Now, the formatting step is performed before the VM
is started. Because some tests, however, rely on this behaviour, a
utility function to replace this behaviour in added in
/nixos/tests/common/auto-format-root-device.nix.

Devices that contain neither a partition table nor a filesystem are
identified by their hardware serial number which is injecetd via QEMU
(and is thus persistent and predictable). PCI paths are not a reliably
way to identify devices because their availability and numbering depends
on the QEMU machine type.

This change makes the module more robust against changes in QEMU and the
kernel (non-persistent device naming) and by decoupling abstractions
(i.e. rootDevice, bootPartition, and bootLoaderDevice) enables further
improvement down the line.
2023-06-16 19:36:03 +02:00
Matthias Berndt
feb5a3cdcd remove unneeded import 2023-05-23 14:56:49 +02:00
Matthias Berndt
cb410a8c59 Merge remote-tracking branch 'upstream/master' into mberndt123/stratis-rootfs 2023-05-17 21:47:19 -04:00
Matthias Berndt
92814241a8 improve stratis initrd support
it is now possible to supply a stratis pool uuid
for every filesystem, and if that filesystem
is required for boot, the relevant pool will be
started in the initramfs.
2023-05-16 22:48:36 -04:00
ajs124
6db7450827 nixos/installer/grub1: remove 2023-05-10 21:51:26 +02:00
Matthias Berndt
8aa320b4c2 address code review issues 2023-05-08 23:18:55 +02:00
Matthias Berndt
d1411444b6 add installer test for stratis root fs 2023-05-07 18:48:28 +02:00
Vladimír Čunát
fb91facda2
nixos/tests/installer.nix: add missing kbd.dev
Sometimes the tests fail since splitting kbd.dev in PR #226247
https://hydra.nixos.org/build/218620685/nixlog/2/tail
Apparently the failure isn't 100% reproducible; I don't know how/why.
2023-05-04 08:35:23 +02:00
Raito Bezarius
58f4c3944d nixos/tests(treewide): vdb → vda, vdc → vdb, vdd → vdc, … / bootDevice → rootDevice 2023-04-21 13:00:19 +02:00
Adam Joseph
4d15fb3ade nixos/tests/installer.nix: fix hydra eval
Hydra Eval has been throwing these eval errors for the past four
months, which makes the yellow "Eval Errors" bubble pretty useless:

https://hydra.nixos.org/eval/1790611#tabs-errors

```
in job ‘nixos.tests.installer.separateBoot.aarch64-linux’:
error: Non-EFI boot methods are only supported on i686 / x86_64

in job ‘nixos.tests.installer.simple.aarch64-linux’:
error: Non-EFI boot methods are only supported on i686 / x86_64

in job ‘nixos.tests.installer.lvm.aarch64-linux’:
error: Non-EFI boot methods are only supported on i686 / x86_64
```

This PR moves the failure for the `!isEfi &&
!pkgs.stdenv.hostPlatform.isx86` case from eval-time to runtime, so
the failure gets categorized under the test that produced it, rather
than just being lumped in to the catch-all Eval Errors pile
which... apparently nobody cares about.
2023-03-09 00:58:26 -08:00
rnhmjoj
b139c467e9
Revert "Revert "nixos/tests/installer: test relative paths in initrd secrets""
This reverts commit 8d45d82c71.

The tests shold pass now that systemd-boot handles failures in initrd
for older boot entries.
2023-01-19 20:50:59 +01:00
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