Commit graph

63 commits

Author SHA1 Message Date
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