Commit Graph

236 Commits

Author SHA1 Message Date
obadz
08fe395074 nixos/tests/installer.nix: add curl on host machine
add curl so that rather than seeing the test attempt to download
curl's tarball, we see what it's trying to download.
2016-07-17 21:17:55 +01:00
Nikolay Amiantov
f4ea97ae90 Revert "nixos/tests/installer: Fix matching LUKS prompt"
This reverts commit ec072cbc4c.

See also 193ab8be67
2016-07-17 22:44:54 +03:00
aszlig
ec072cbc4c
nixos/tests/installer: Fix matching LUKS prompt
The LUKS passphrase prompt has changed from "Enter passphrase" to "Enter
LUKS Passphrase" in c69c76ca7e, so the OCR
detection of the test fails indefinitely.

Unfortunately, this doesn't fix the test because we have a real problem
here:

Enter LUKS Passphrase:
killall: cryptsetup: no process killed
Enter LUKS Passphrase:

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Cc: @abbradar
2016-07-17 11:20:25 +02:00
Eelco Dolstra
9f0e137338 Rename boot.loader.gummiboot.enable -> boot.loader.systemd-boot.enable 2016-06-01 12:55:52 +02:00
Eelco Dolstra
f222689aba Use systemd-boot instead of gummiboot
Gummiboot is part of systemd now so we may as well use it.
2016-05-31 17:02:47 +02:00
obadz
e78a99c35b nixos/tests/installer.nix: nixos-generate-config detects LUKS since a7baec7
Fixes nix-build '<nixos/release.nix>' -A tests.installer.luksroot.x86_64-linux
2016-05-26 04:02:36 +01:00
Eelco Dolstra
845c9b50bf boot.initrd.luks.devices: Change into an attribute set
This allows setting options for the same LUKS device in different
modules. For example, the auto-generated hardware-configuration.nix
can contain

  boot.initrd.luks.devices.crypted.device = "/dev/disk/...";

while configuration.nix can add

  boot.initrd.luks.devices.crypted.allowDiscards = true;

Also updated the examples/docs to use /disk/disk/by-uuid instead of
/dev/sda, since we shouldn't promote the use of the latter.
2016-05-25 18:04:21 +02:00
Eelco Dolstra
3e7b510281 nixos.tests.swraid: Drop mdadm -W
This command is racy because it will return a non-zero exit code if
the array is already clean. This caused numerous random failures. It
should be unnecessary anyway. (Maybe in the past we needed this
because of #15226.)

http://hydra.nixos.org/job/nixos/release-16.03/nixos.tests.installer.swraid.i686-linux
2016-05-24 17:20:22 +02:00
aszlig
dc6d003011
nixos/tests/installer/swraid: Check for safemode
This is a regression test for #15226, so that the test will fail once we
accidentally kill one or more of the md kthreads (aka: if safe mode is
enabled).

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2016-05-06 16:51:38 +02:00
Tuomas Tynkkynen
1feed61164 NixOS installer tests: Add a test using Gummiboot
Issue #14956
2016-04-24 22:05:48 +03:00
Tuomas Tynkkynen
87b49397bf installer tests: Use different package for testing nix-env -iA
Coreutils is multi-output and the `info` output doesn't seem to be
included on the install disk, failing like this (because now nix-env
wants to build coreutils):

````
machine# these derivations will be built:
machine#   /nix/store/0jk4wzg11sa6cqyw8g7w5lb35axji969-bison-3.0.4.tar.gz.drv
...
machine#   /nix/store/ybjgqwxx63l8cj1s7b8axx09wz06kxbv-coreutils-8.25.drv
machine# building path(s) ‘/nix/store/4xvdi5740vq8vlsi48lik3saz0v5jsx0-coreutils-8.25.tar.xz’
machine# downloading ‘http://ftpmirror.gnu.org/coreutils/coreutils-8.25.tar.xz’...
machine# error: unable to download ‘http://ftpmirror.gnu.org/coreutils/coreutils-8.25.tar.xz’: Couldn't resolve host name (6)
machine# builder for ‘/nix/store/5j3bc5sjr6271fnjh9gk9hrid8kgbpx3-coreutils-8.25.tar.xz.drv’ failed with exit code 1
machine# cannot build derivation ‘/nix/store/ybjgqwxx63l8cj1s7b8axx09wz06kxbv-coreutils-8.25.drv’: 1 dependencies couldn't be built
machine# error: build of ‘/nix/store/ybjgqwxx63l8cj1s7b8axx09wz06kxbv-coreutils-8.25.drv’ failed
````
2016-04-12 17:29:15 +03:00
Graham Christensen
37617a2c45 nixos.tests.installer.swraid: mdadm verbosity
These two steps seem to fail intermittently with exit code 1. It isn't clear to me why, or what the issue is. Adding the `--verbose` option, hoping to capture some debugging information which might aid stabilization. Also: I was unable to replicate the failure locally.
2016-03-28 14:00:00 -05:00
Domen Kožar
ba05826707 Attempt to fix transient grub1 test kernel panics
Example: http://hydra.nixos.org/build/32469819/nixlog/26/raw
2016-03-02 17:31:57 +00:00
Domen Kožar
82af770fa6 correctly fix 313fa2ebc6 2016-01-10 18:24:29 +01:00
Domen Kožar
313fa2ebc6 nixos installer tests: use -A nix-env flag to prevent out of memory 2016-01-10 17:48:35 +01:00
Luca Bruno
e0102a91ea nixos/tests: increase ram from 768 to 1024
Fixes simpleProvided test failing on unionfs
using more ram than available.

cc @edolstra @wkennington
2015-12-01 11:24:37 +01:00
Joachim Schiele
0731489953 all tests: added meta.maintainers section 2015-07-12 12:29:51 +02:00
William A. Kennington III
e861889e99 nixos/tests/installer: Add a testcase for fat32 /boot 2015-07-08 12:05:31 -07:00
Eelco Dolstra
f93d8425c3 Installer test: Fix booting from SCSI
This is required by the GRUB 1 test.
2015-06-17 15:47:43 +02:00
Eelco Dolstra
8e88710693 Installer test: Remove apparently useless setting of nix.readOnlyStore 2015-06-10 15:28:56 +02:00
Eelco Dolstra
d906939e74 Installer tests: Don't use the ISO
We already have separate tests for checking whether the ISO boots
correctly, so it's not necessary to do that here. So now
tests/installer.nix just tests nixos-install, from a regular NixOS VM
that uses the host's Nix store. This makes running the tests more
convenient because we don't have to build a new ISO after every
change.
2015-06-10 15:28:56 +02:00
Eelco Dolstra
7c6b935b60 Remove dead code 2015-06-03 16:38:52 +02:00
William A. Kennington III
c8db08ee07 nixos/installer: Make test install disk larger to support the expressions 2015-05-25 21:11:59 -07:00
aszlig
8be00dc71d
nixos/test-driver: Make tesseract OCR optional.
By default this is now enabled, and it has to be explicitely enabled
using "enableOCR = true". If it is set to false, any usage of
getScreenText or waitForText will fail with an error suggesting to pass
enableOCR.

This should get rid of the rather large dependency on tesseract which
we don't need for most tests.

Note, that I'm using system("type -P") here to check whether tesseract
is in PATH. I know it's a bashism but we already have other bashisms
within the test scripts and we also run it with bash, so IMHO it's not a
problem here.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2015-05-22 07:21:58 +02:00
aszlig
77d7aa6742
nixos/tests/luksroot: Switch to use waitForText.
Fixes the "blindly hope that 60 seconds is enough" issue from 1f34503,
so that we now have a (hopefully) reliable way to wait for the
passphrase prompt.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2015-05-21 19:55:21 +02:00
aszlig
1f34503010
nixos/tests/installer: Add test for LUKS rootfs.
This serves as a regression test for #7859.

It's pretty straightforward, except from the fact that nixos-generate-
config doesn't detect LUKS devices and the "sleep 60".

As for the former, I have tried to add support for LUKS devices for
nixos-generate-config, but it's not so easy as it sounds, because we
need to create a device tree across all possible mappers and/or LVM up
to the "real" device and then decide whether it is relevant to what is
currently mounted. So I guess this is something for the nixpart branch
(see #2079).

And the latter isn't very trivial as well, because the LUKS passphrase
prompt is issued on /dev/console, which is the last "console=..." kernel
parameter (thus the `mkAfter`). So we can't simply grep the log, because
the prompt ends up being on one terminal only (tty0) and using select()
on $machine->{socket} doesn't work very well, because the FD is always
"ready for read". If we would read the FD, we would conflict with
$machine->connect and end up having an inconsistent state. Another idea
would be to use multithreading to do $machine->connect while feeding the
passphrase prompt in a loop and stop the thread once $machine->connect
is done. Turns out that this is not so easy as well, because the threads
need to share the $machine object and of course need to do properly
locking.

In the end I decided to use the "blindly hope that 60 seconds is enough"
approach for now and come up with a better solution later. Other VM
tests surely use sleep as well, but it's $machine->sleep, which is bound
to the clock of the VM, so if the build machine is on high load, a
$machine->sleep gets properly delayed but the timer outside the VM won't
get that delay, so the test is not deterministic.

Tested against the following revisions:

5e3fe39: Before the libgcrypt cleanup (a71f78a) that broke cryptsetup.
69a6848: While cryptsetup was broken (obviously the test failed).
15faa43: After cryptsetup has been switched to OpenSSL (fd588f9).

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2015-05-21 13:21:41 +02:00
aszlig
3b396701fd
nixos/tests/installer: Allow pre-boot commands.
These commands will be executed directly after the machine is created,
so it gives us the chance to for example type in passphrases using the
virtual keyboard.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2015-05-21 13:21:41 +02:00
aszlig
5d2c6f0353
nixos/tests/installer: Allow to pass extra config.
We're going to need it for installer tests where nixos-generate-config
isn't yet able to fully detect the filesystems/hardware. for example for
device mapper configurations other than LVM.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2015-05-21 13:21:40 +02:00
aszlig
56c0edca86
nixos/tests/swraid: Increase boot partition size.
I'm increasing it to 100MB to make sure, any bootloader will fit with
all its stages. Of course, right now the reason why GRUB doesn't fit
into the partition is because of mdadm 3.3.2 and thus the initrd taking
all the space, but in order to avoid confusion on why the *boot* loader
fails in the VM tests, I've increased the size.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2015-04-01 08:50:38 +02:00
William A. Kennington III
23e1b46f17 nixos/tests/installer: Add all bootloaders to the store 2015-02-13 14:41:11 -08:00
William A. Kennington III
e2915fc5d1 nixos/tests: Fix installer test by providing a missing dependency 2015-02-12 11:36:02 -08:00
Eelco Dolstra
efa8fc2b0a Paranoia 2015-01-15 18:37:55 +01:00
Eelco Dolstra
faf0797c0c Use https://cache.nixos.org 2014-12-09 13:38:46 +01:00
Domen Kožar
07ce825a4e installer tests: don't rely on swap.target until systemd bug is fixed 2014-12-07 20:58:48 +01:00
Domen Kožar
226d209d97 fix installer tests 2014-12-05 18:31:30 +01:00
William A. Kennington III
6ad032ed93 nixos/installer: Fix swap device override 2014-12-04 13:34:35 -08:00
William A. Kennington III
82f59e8c69 nixos/installer: Override swap devices so tests don't fail
This patch should be reverted if either:
  - systemd fixes the multi-swapon issue.
    https://bugs.freedesktop.org/show_bug.cgi?id=86930
  - If we disable the autogeneration of swap and vfat units within
    systemd.
2014-12-03 15:43:48 -08:00
Domen Kožar
4941b96f0c eval fix 2014-10-07 21:46:15 +02:00
Shea Levy
92837f2dbf Ditch efi installer tests
They've been broken forever due to weirdness in qemu tests, and they don't add much over installer tests
2014-10-07 12:20:56 -04:00
Eelco Dolstra
0a967b9268 Installer test: Use the minimal ISO
So we don't depend on KDE etc. (which we don't even test here).
2014-09-25 00:07:35 +02:00
William A. Kennington III
6fb6ba48f8 nixos/installer-test: nixos-option syntax correction 2014-09-05 09:49:05 -07:00
William A. Kennington III
e07e1c3fdf nixos/installer-test: Add writable store test 2014-09-05 09:48:58 -07:00
William A. Kennington III
4eff4afa3c nixos/installer-test: Use nested subvolumes for root to test detection 2014-09-02 09:16:13 -07:00
William A. Kennington III
3944239362 nixos/tests-installer: Add a test for btrfs default volumes and bind mounts 2014-09-02 09:16:13 -07:00
William A. Kennington III
36614ff3e2 Revert "Revert "Merge pull request #2449 from wkennington/master.grub""
This reverts commit 94205f5f21.

Conflicts:
	nixos/modules/system/boot/loader/grub/install-grub.pl
2014-09-02 09:16:13 -07:00
Michael Raskin
94205f5f21 Revert "Merge pull request #2449 from wkennington/master.grub"
This reverts commit 469f22d717, reversing
changes made to 0078bc5d8f.

Conflicts:
	nixos/modules/installer/tools/nixos-generate-config.pl
	nixos/modules/system/boot/loader/grub/install-grub.pl
	nixos/release.nix
	nixos/tests/installer.nix

I tried to keep apparently-safe code in conflicts.
2014-08-31 12:58:37 +04:00
Luca Bruno
01f0b1cf1a Fix evaluation of nixos tested 2014-08-29 11:49:36 +02:00
William A. Kennington III
cc62623b37 tests/installer: Provided test should add symlinks to /dev/disk if udev doesn't 2014-08-28 13:35:36 -07:00
William A. Kennington III
4f096c044f nixos/grub: Simplify detection of labels / uuids for provided device names 2014-08-28 13:35:36 -07:00
William A. Kennington III
6549bcff96 tests/installer: Fix provided test uuid and label mounts 2014-08-28 13:35:36 -07:00
William A. Kennington III
b651097d19 tests/installer: Swapspace should be larger 2014-08-28 13:35:36 -07:00
William A. Kennington III
7264941a46 tests/installer: Remove unneeded tests 2014-08-28 13:35:36 -07:00
William A. Kennington III
429f785135 tests/installer: Fix simple tests 2014-08-28 13:35:36 -07:00
William A. Kennington III
8ff4b3b780 tests/installer: Add swap to the new tests 2014-08-28 13:35:36 -07:00
William A. Kennington III
8b36bf5c59 tests/installer: fix mount 2014-08-28 13:35:36 -07:00
William A. Kennington III
62fedf6081 installer/btrfs: Typo in subvol 2014-08-28 13:35:35 -07:00
William A. Kennington III
2b703f82d5 tests/installer: Test for more grub configurations 2014-08-28 13:35:35 -07:00
William A. Kennington III
809caa87ab tests/installer: Add btrfs tests for grub and nixos-generate-config 2014-08-28 13:35:35 -07:00
Eelco Dolstra
619f18956d Bump the amount of memory for the installer test
It randomly OOMs.

http://hydra.nixos.org/build/13587153
2014-08-25 10:54:10 +02:00
Eelco Dolstra
b8cb960a58 Fix evaluation 2014-07-01 16:28:34 +02:00
Florian Friesdorf
9b7dbcc83e name nixos tests, close #3078 2014-06-28 16:05:47 +02:00
William A. Kennington III
ef4ea24420 sudo: Always keepVisudo in order to simplify sudo build 2014-06-17 22:41:32 -05:00
Ricardo M. Correia
f8e108c865 nixos.tests.installer: Fix test failures due to network being disabled 2014-06-17 18:41:26 +02:00
Ricardo M. Correia
abd0b3f411 nixos.tests.installer: Attempt to fix race condition
Attempt to fix race condition in installer tests, especially the
grub1 test.

The latter was failing when running "parted /dev/sda ..." because
/dev/sda didn't exist yet.
2014-05-30 21:26:24 +02:00
Eelco Dolstra
f23231f198 Installer test: Don't wait for dhcpcd if we don't have a network 2014-05-21 15:55:50 +02:00
Eelco Dolstra
ca123bc274 Installer test: Get rid of a warning 2014-05-21 15:55:50 +02:00
Eelco Dolstra
35925d7a76 Fix installer test
The installer now asks the user to set a root password if stdin is a
tty, which doesn't work for an interactive test.

http://hydra.nixos.org/build/11130072
2014-05-21 11:04:45 +02:00
Eelco Dolstra
fae135b871 Installer test: Increase amount of RAM
On x86_64, 384 MB is not enough anymore for running "nix-env -i".

http://hydra.nixos.org/build/10865007
2014-05-07 18:24:15 +02:00
Eelco Dolstra
27d47f3983 Fix the simple installer test
http://hydra.nixos.org/build/10712818
2014-04-30 15:07:34 +02:00
Eelco Dolstra
437962ebb2 Installer test: Unmount filesystems after installation
Hopefully fixes failures like:

  http://hydra.nixos.org/build/10712833

This shouldn't be necessary, but it might be that the use of unionfs
is interfering with a clean shutdown.
2014-04-30 15:07:34 +02:00
Eelco Dolstra
9bb209a3bd gummiboot: Automatically disable GRUB 2014-04-30 11:47:18 +02:00
Eelco Dolstra
e9be441b62 Merge the EFI test into tests/installer.nix 2014-04-30 11:26:39 +02:00
Eelco Dolstra
077ecf43e5 Installer test: Remove fileSystems argument
The config function unintentionally ignored its fileSystems
argument. However, things still worked thanks to the magic of
nixos-generate-config. Yay!
2014-04-30 11:26:39 +02:00
Eelco Dolstra
4f2aa2f706 Fix installer test evaluation 2014-04-14 16:24:08 +02:00
Eelco Dolstra
abe218950c Make it easier to run the tests
You can now run a test in the nixos/tests directory directly using
nix-build, e.g.

  $ nix-build '<nixos/tests/login.nix>' -A test

This gets rid of having to add the test to nixos/tests/default.nix.
(Of course, you still need to add it to nixos/release.nix if you want
Hydra to run the test.)
2014-04-14 14:02:44 +02:00
Eelco Dolstra
13185280fe Fix tests broken due to the firewall being enabled by default 2014-04-11 17:16:44 +02:00
Eelco Dolstra
c20383e756 Another fix to the installer tests 2014-03-31 11:10:56 +02:00
Eelco Dolstra
075168ca81 nixos-hardware-scan: Detect QEMU 2014-03-30 17:27:18 +02:00
Eelco Dolstra
1c192e1fea Another attempt to fix the installer test
http://hydra.nixos.org/build/9904133
2014-03-30 16:53:23 +02:00
Shea Levy
258c7536be Force a rebuild 2014-02-09 11:59:02 -05:00
Shea Levy
741cc62f75 Force a rebuild.
Sigh.

Signed-off-by: Shea Levy <shea@shealevy.com>
2014-02-04 08:43:45 -05:00
Shea Levy
30f7947031 Whitespace to force a build
Ugh

Signed-off-by: Shea Levy <shea@shealevy.com>
2014-01-19 15:07:35 -05:00
Eelco Dolstra
30a36f9a80 Remove remaining uses of mkOverrideTemplate 2013-10-28 22:45:58 +01:00
Eelco Dolstra
903c5d4df9 Test nixos-option 2013-10-13 22:36:04 +02:00
Eelco Dolstra
647b0f5f5c Update the installer tests for nixos-generate-config 2013-10-13 17:35:57 +02:00
Eelco Dolstra
5c1f8cbc70 Move all of NixOS to nixos/ in preparation of the repository merge 2013-10-10 13:28:20 +02:00