mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-16 06:45:16 +01:00
1f34503010
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: |
||
---|---|---|
.. | ||
common | ||
avahi.nix | ||
bittorrent.nix | ||
blivet.nix | ||
boot.nix | ||
cadvisor.nix | ||
check-filesystems.nix | ||
chromium.nix | ||
cjdns.nix | ||
containers.nix | ||
docker-registry.nix | ||
docker.nix | ||
etcd.nix | ||
firefox.nix | ||
firewall.nix | ||
fleet.nix | ||
gitlab.nix | ||
gnome3.nix | ||
i3wm.nix | ||
influxdb.nix | ||
installer.nix | ||
ipv6.nix | ||
jenkins.nix | ||
kde4.nix | ||
kexec.nix | ||
kubernetes.nix | ||
login.nix | ||
logstash.nix | ||
make-test.nix | ||
mesos.nix | ||
misc.nix | ||
mpich-example.c | ||
mpich.nix | ||
mumble.nix | ||
munin.nix | ||
mysql-replication.nix | ||
mysql.nix | ||
nat.nix | ||
networking-proxy.nix | ||
networking.nix | ||
nfs.nix | ||
nsd.nix | ||
openssh.nix | ||
panamax.nix | ||
partition.nix | ||
peerflix.nix | ||
phabricator.nix | ||
printing.nix | ||
proxy.nix | ||
quake3.nix | ||
rabbitmq.nix | ||
run-in-machine.nix | ||
simple.nix | ||
subversion.nix | ||
test-config-examples.sh | ||
testdb.sql | ||
tomcat.nix | ||
trac.nix | ||
udisks2.nix | ||
virtualbox.nix | ||
xfce.nix |