Commit graph

195 commits

Author SHA1 Message Date
Eelco Dolstra 9bf4ac079e * Add a module for doing Network Address Translation.
svn path=/nixos/trunk/; revision=26246
2011-03-10 12:08:39 +00:00
Eelco Dolstra 0c6129bb90 * Hopefully fix the rebuildCD job.
svn path=/nixos/trunk/; revision=26155
2011-03-04 10:28:02 +00:00
Eelco Dolstra b70ba07ec1 * Add a test of IPv6 support.
svn path=/nixos/trunk/; revision=26036
2011-02-19 19:21:19 +00:00
Eelco Dolstra 5bdc1a9db7 * Fix the Subversion test.
svn path=/nixos/trunk/; revision=26017
2011-02-17 15:41:28 +00:00
Eelco Dolstra 8f5f70b292 * We don't really need a display manager on the installation CD. Just
log in as root automatically.

svn path=/nixos/trunk/; revision=26014
2011-02-17 14:38:02 +00:00
Eelco Dolstra 10119c9abc * Give the installation VM a different MAC/IP from the fake nixos.org
VM.  MAC collisions don't work at all with VDE.

svn path=/nixos/trunk/; revision=26009
2011-02-17 13:00:55 +00:00
Eelco Dolstra 32aa967ee1 * Only add a VDE NIC if there is a webserver.
svn path=/nixos/trunk/; revision=25986
2011-02-16 10:07:28 +00:00
Sander van der Burg e995f317ae Fixed NFS mount to storage machine
svn path=/nixos/trunk/; revision=25773
2011-02-04 13:33:52 +00:00
Eelco Dolstra 2ac09578c0 * runInMachine: properly evaluate the machine configuration.
svn path=/nixos/trunk/; revision=25536
2011-01-13 11:39:03 +00:00
Eelco Dolstra 06a239a699 * runInMachine: use buildVM rather than buildVirtualNetwork since
there is only one machine.
* Add a simple test case for runInMachine.

svn path=/nixos/trunk/; revision=25535
2011-01-13 10:54:07 +00:00
Eelco Dolstra fd48855284 * No wonder the OpenSSH test was so unreliable: it didn't wait for the
sshd Upstart job to finish.

svn path=/nixos/trunk/; revision=25524
2011-01-12 17:36:15 +00:00
Eelco Dolstra 60b6eb7579 * Add a method Machine::sleep to sleep N seconds in virtual (guest)
time rather than host real time.

svn path=/nixos/trunk/; revision=25491
2011-01-10 14:41:16 +00:00
Eelco Dolstra 7e3873f75e * Use the dedicated server.
svn path=/nixos/trunk/; revision=25488
2011-01-10 12:25:13 +00:00
Eelco Dolstra 261430df54 * Flush the coverage data by doing a shutdown.
svn path=/nixos/trunk/; revision=25481
2011-01-09 22:33:21 +00:00
Eelco Dolstra ef82cd9c48 * Coverage report: propagate the build products of the VM test run.
* Run the Quake 3 with coverage instrumentation.

svn path=/nixos/trunk/; revision=25480
2011-01-09 22:21:22 +00:00
Eelco Dolstra 7adc21218f * Simulate connection interruptions.
svn path=/nixos/trunk/; revision=25470
2011-01-09 18:17:17 +00:00
Eelco Dolstra e343a16a36 * Improved logging in the test driver.
* Support subtests.

svn path=/nixos/trunk/; revision=25451
2011-01-06 17:28:35 +00:00
Eelco Dolstra 7378e17f74 * Test driver: write structured log info to $out/log.xml (not finished
yet).
* Machine->new -> createMachine (because VMs must be tracked in the
  %vms hash).

svn path=/nixos/trunk/; revision=25427
2011-01-05 15:27:21 +00:00
Eelco Dolstra c8bca42355 * Update the Bittorrent test for Transmission 2.
svn path=/nixos/trunk/; revision=25422
2011-01-05 11:52:45 +00:00
Eelco Dolstra 747e284e75 * Fix an evaluation error in tests.installer.rebuildCD.
svn path=/nixos/trunk/; revision=25193
2010-12-18 18:07:25 +00:00
Eelco Dolstra 6039c22da4 svn path=/nixos/trunk/; revision=25141 2010-12-15 12:10:17 +00:00
Eelco Dolstra 47157986f2 * Unbreak the NixOS installer tests.
svn path=/nixos/trunk/; revision=25096
2010-12-13 08:53:43 +00:00
Eelco Dolstra 9def3a8dbc * Use mkOverride.
svn path=/nixos/trunk/; revision=24255
2010-10-12 22:04:10 +00:00
Eelco Dolstra 52a8a529b3 * Fix indentation.
svn path=/nixos/trunk/; revision=24254
2010-10-12 22:03:50 +00:00
Ludovic Courtès 5e6186418e Avahi test: Use getent hosts' instead of ping -c1'.
svn path=/nixos/trunk/; revision=24151
2010-10-07 20:10:45 +00:00
Ludovic Courtès 2b2b7820a9 Add an Avahi (mDNS/DNS-SD) and NSS-mDNS test.
svn path=/nixos/trunk/; revision=24148
2010-10-07 16:58:07 +00:00
Nicolas Pierron 6cc0032074 Installation CD: Check that the current system can be replaced.
svn path=/nixos/trunk/; revision=23920
2010-09-25 09:33:21 +00:00
Nicolas Pierron 1a232545a0 Test that CD configuration can be rebuild.
svn path=/nixos/trunk/; revision=23908
2010-09-25 09:32:22 +00:00
Nicolas Pierron de1ba135ac Fix installer tests.
svn path=/nixos/trunk/; revision=23907
2010-09-25 09:18:42 +00:00
Eelco Dolstra 0fccd7bb49 * Add a trivial test that just starts a machine and shuts it down.
svn path=/nixos/trunk/; revision=23765
2010-09-13 16:06:07 +00:00
Nicolas Pierron c9dc3651da Replace mkOverride by its alias mkOverrideTemplate to remove the unused
template argument of mkOverride later.

svn path=/nixos/trunk/; revision=23631
2010-09-03 19:10:59 +00:00
Eelco Dolstra b9282b1752 * Test whether the build hook automatically skips unavailable slaves.
(This is in fact currently broken.)

svn path=/nixos/trunk/; revision=23398
2010-08-24 14:01:19 +00:00
Eelco Dolstra bfb2e304dd * Test using multiple build machines in parallel.
svn path=/nixos/trunk/; revision=23396
2010-08-24 13:56:18 +00:00
Eelco Dolstra 3f10cf70f6 * Regression test for the build hook mechanism.
svn path=/nixos/trunk/; revision=23395
2010-08-24 13:27:28 +00:00
Eelco Dolstra 392275f185 * Move support for writable Nix stores to qemu-vm.nix.
svn path=/nixos/trunk/; revision=23393
2010-08-24 12:59:16 +00:00
Eelco Dolstra ea1ba40374 svn path=/nixos/trunk/; revision=23056 2010-08-09 11:58:26 +00:00
Eelco Dolstra 3a0f295337 * The swraid installer test needs more disk space
(http://hydra.nixos.org/build/494390).

svn path=/nixos/trunk/; revision=22692
2010-07-21 21:20:42 +00:00
Eelco Dolstra 575950aa5d svn path=/nixos/trunk/; revision=22609 2010-07-15 13:28:36 +00:00
Eelco Dolstra 2a6819e03d * swraid test: Fix the alignment of the first logical partition. GNU
parted 2.3 barfs on this (http://hydra.nixos.org/build/484788),
  while 2.2 accepts it.

svn path=/nixos/trunk/; revision=22576
2010-07-13 11:57:12 +00:00
Eelco Dolstra ddf6dae895 * Urgh, we do need to wait after each parted call
(http://hydra.nixos.org/build/483571).

svn path=/nixos/trunk/; revision=22558
2010-07-12 12:35:25 +00:00
Eelco Dolstra d43d321e86 * Sync with the trunk.
svn path=/nixos/branches/boot-order/; revision=22349
2010-06-20 20:54:31 +00:00
Eelco Dolstra eab091cc11 * Remove some redundant calls to `udevadm settle'.
svn path=/nixos/branches/boot-order/; revision=22345
2010-06-20 16:15:30 +00:00
Eelco Dolstra 1371f4e6c8 * Apparantly GRUB 2 cannot boot from a software RAID partition, so use
a separate /boot.

svn path=/nixos/branches/boot-order/; revision=22344
2010-06-20 16:05:15 +00:00
Eelco Dolstra a65b5ec81c * Added an option boot.loader.grub.extraConfig to add commands to
grub.cfg before the menu entries.  (This could also be done using
  `extraEntriesBeforeNixOS', but then you can't have entries *after*
  the main entry anymore.)
* In the installer test, redirect GRUB output to the serial port.

svn path=/nixos/branches/boot-order/; revision=22300
2010-06-16 22:18:26 +00:00
Eelco Dolstra a5c433696c * Put all of /var/run (not just /var/run/nscd) on a tmpfs to simplify
shutdown.  (Portmap and statd are needed during shutdown to unmount
  NFS volumes but have open files in /var/run.)
* In the shutdown job, don't kill PIDs belonging to Upstart jobs that
  are still running.  If they don't stop on the "starting shutdown"
  event, then they're needed during shutdown (such as portmap and
  statd).
* NFS test: test whether the shutdown quickly unmounts NFS volumes
  (i.e. whether portmap and statd are still running).

svn path=/nixos/branches/boot-order/; revision=22204
2010-06-09 22:29:06 +00:00
Eelco Dolstra e519b0652a * Test whether locks survive a reboot of the server.
svn path=/nixos/branches/boot-order/; revision=22201
2010-06-09 15:11:46 +00:00
Eelco Dolstra b56b4c22d5 * Test whether clients release their locks when they reboot.
svn path=/nixos/branches/boot-order/; revision=22199
2010-06-09 13:46:18 +00:00
Eelco Dolstra 6e27ce8e8e * Test whether distributed locking works on NFS.
svn path=/nixos/branches/boot-order/; revision=22197
2010-06-09 13:18:49 +00:00
Eelco Dolstra 5ddaf9b963 * Set `services.nfsKernel.client.enable' automatically if there is a
filesystem with type "nfs" or "nfs4".

svn path=/nixos/branches/boot-order/; revision=22189
2010-06-08 16:14:41 +00:00
Eelco Dolstra 2678f947fb * Add a test for the NFS server/client.
svn path=/nixos/branches/boot-order/; revision=22188
2010-06-08 16:02:22 +00:00
Eelco Dolstra 48255afa61 * This passwd doesn't have a --stdin flag.
svn path=/nixos/trunk/; revision=22110
2010-06-02 21:59:19 +00:00
Eelco Dolstra 046af078bb * We don't need Linux 2.6.27 anymore in the tests to get a writable
Nix store.  AUFS2 on 2.6.32 seems to work.

svn path=/nixos/trunk/; revision=22034
2010-05-28 07:10:17 +00:00
Eelco Dolstra 77a4004df1 * The installer test lost the QEMU flags to set up the NIC to talk to
the web server somewhere, so put them back in
  (http://hydra.nixos.org/build/424923).

svn path=/nixos/trunk/; revision=22003
2010-05-27 12:20:37 +00:00
Eelco Dolstra 894435ce5e * Slight cleanup.
svn path=/nixos/trunk/; revision=21998
2010-05-27 10:05:17 +00:00
Eelco Dolstra fa89713c78 * Rename apply' and call'.
svn path=/nixos/trunk/; revision=21944
2010-05-23 12:02:54 +00:00
Eelco Dolstra dd81311714 * Optionally pass the computed `nodes' to the test script as a
function argument, so that the test script can refer to computed
  values such as the assigned IP addresses of the virtual machines.

svn path=/nixos/trunk/; revision=21939
2010-05-21 14:31:05 +00:00
Eelco Dolstra fa183e5472 * Expose networking.interfaces as an attribute set keyed on the
interface name through the derived option networking.ifaces.  This
  makes it easier to get information about specific interfaces
  (e.g. `nodes.router.config.networking.ifaces.eth2.ipAddress').
  Really networking.interfaces should be an attribute set.

svn path=/nixos/trunk/; revision=21938
2010-05-21 14:12:03 +00:00
Eelco Dolstra 3c7a6eb53c * Make the Bittorrent test more interesting by putting one client
behind a NAT router and verifying that another client can connect to
  it through the NAT (using a UPnP-IGD mapping created automatically
  by miniupnpd).

svn path=/nixos/trunk/; revision=21932
2010-05-20 23:07:21 +00:00
Eelco Dolstra 4dac9e5814 * Allow more complex network topologies in distributed tests. Each
machine can now declare an option `virtualisation.vlans' that causes
  it to have network interfaces connected to each listed virtual
  network.  For instance,

    virtualisation.vlans = [ 1 2 ];

  causes the machine to have two interfaces (in addition to eth0, used
  by the test driver to control the machine): eth1 connected to
  network 1 with IP address 192.168.1.<i>, and eth2 connected to
  network 2 with address 192.168.2.<i> (where <i> is the index of the
  machine in the `nodes' attribute set).  On the other hand,
  
    virtualisation.vlans = [ 2 ];

  causes the machine to only have an eth1 connected to network 2 with
  address 192.168.2.<i>.  So each virtual network <n> is assigned the
  IP range 192.168.<n>.0/24.

  Each virtual network is implemented using a separate multicast
  address on the host, so guests really cannot talk to networks to
  which they are not connected.

* Added a simple NAT test to demonstrate this.

* Added an option `virtualisation.qemu.options' to specify QEMU
  command-line options.  Used to factor out some commonality between
  the test driver script and the interactive test script.

svn path=/nixos/trunk/; revision=21928
2010-05-20 21:07:32 +00:00
Eelco Dolstra 85bd5bad32 * Another distributed test example: Bittorrent.
svn path=/nixos/trunk/; revision=21926
2010-05-20 14:56:04 +00:00
Eelco Dolstra ec33622b48 * A test for installing NixOS on software RAID. Doesn't quite work
yet though - GRUB fails mysteriously on the second reboot.

svn path=/nixos/trunk/; revision=21808
2010-05-16 20:44:45 +00:00
Eelco Dolstra 835522e40d * Wait a bit more.
svn path=/nixos/trunk/; revision=21340
2010-04-27 12:24:16 +00:00
Sander van der Burg 97c20c8f4d Added openssh testcase
svn path=/nixos/trunk/; revision=20732
2010-03-18 13:07:56 +00:00
Eelco Dolstra 9d253ceca3 * Remove the obsolete gnu-integration.nix.
svn path=/nixos/trunk/; revision=20648
2010-03-16 12:10:50 +00:00
Eelco Dolstra c1e313b5e1 * Remove obsolete references to kernelPackages in Nixpkgs.
svn path=/nixos/trunk/; revision=20647
2010-03-16 12:10:06 +00:00
Ludovic Courtès 8e16742b79 Update users of `services.sshd'.
svn path=/nixos/trunk/; revision=20575
2010-03-11 17:02:53 +00:00
Eelco Dolstra cfcb5a1544 * Start of a GNU integration test (i.e. a variant of the NixOS
ISOs/tests that use the latest tarballs for GNU packages to provide
  a regression test for those GNU projects).

svn path=/nixos/trunk/; revision=20488
2010-03-09 12:21:26 +00:00
Eelco Dolstra a8aefffa09 * Test whether logging into X assigns device ownership properly.
svn path=/nixos/trunk/; revision=20486
2010-03-09 11:43:56 +00:00
Eelco Dolstra 89d599bab1 * When switching between virtual terminals, check whether
ConsoleKit/udev change device ownership to the logged in user.

svn path=/nixos/trunk/; revision=20485
2010-03-09 11:38:24 +00:00
Eelco Dolstra 358f3cd79c * In tests/default.nix, only import lib/testing.nix.
svn path=/nixos/trunk/; revision=20483
2010-03-09 10:14:45 +00:00
Lluís Batlle i Rossell 0fb8300bb6 Updating the nixos NFS related expressions. Thanks to Oleksandr for the
help.
I tried not to break the tests.


svn path=/nixos/trunk/; revision=20157
2010-02-21 16:26:33 +00:00
Rob Vermaas d79d934d85 move functions to lib/testing to allow easier use outside of nixos
svn path=/nixos/trunk/; revision=20072
2010-02-17 09:37:22 +00:00
Eelco Dolstra eed3f9a118 * Remove a sleep that hopefully is no longer needed.
svn path=/nixos/trunk/; revision=20025
2010-02-15 19:30:35 +00:00
Eelco Dolstra c373ac846d * Update test-upstart-job.sh for Upstart 0.6.
svn path=/nixos/trunk/; revision=19939
2010-02-11 16:14:47 +00:00
Eelco Dolstra dbc03fbf68 * nixos-install: copy /etc/nsswitch.conf to the chroot. This seems
necessary to have it use /etc/hosts.

svn path=/nixos/trunk/; revision=19905
2010-02-10 14:31:46 +00:00
Eelco Dolstra 07cc5ac2fd * "python2.5" -> ${pkgs.python.libPrefix}
svn path=/nixos/trunk/; revision=19901
2010-02-10 12:39:47 +00:00
Eelco Dolstra 55c349fe20 * Added a test that checks whether users can log in on a virtual
console.  This uses the `sendkey' command in the QEMU monitor.
* For the block/unblock primitives, use the `set_link' command in the
  QEMU monitor.

svn path=/nixos/trunk/; revision=19854
2010-02-06 13:08:15 +00:00
Eelco Dolstra 5b60c280d7 * Make the Quake 3 test less timing-sensitive.
svn path=/nixos/trunk/; revision=19816
2010-02-04 13:59:31 +00:00
Ludovic Courtès 31f2d8ffbc Add simple portmap test.
svn path=/nixos/trunk/; revision=19700
2010-01-26 23:55:22 +00:00
Eelco Dolstra 3e3448a7df * Added an Upstart job to fetch the SSH key for logging into the root
account of the VM.  However, it doesn't work yet (the machine
  doesn't boot properly and there is no console output).  So use a
  hard-coded password for now (very dangerous!).

svn path=/nixos/trunk/; revision=19589
2010-01-21 08:03:58 +00:00
Eelco Dolstra 97668574dc * Doh.
svn path=/nixos/trunk/; revision=19584
2010-01-20 21:04:10 +00:00
Eelco Dolstra dc137c54eb * Configuration used to generate an Amazon image. This doesn't belong
in `tests' but I don't have a better place right now.

svn path=/nixos/trunk/; revision=19583
2010-01-20 21:03:53 +00:00
Lluís Batlle i Rossell 473c9d8881 Fixing an additional missing check for linuxPackages/kernelPackages in tests.
svn path=/nixos/trunk/; revision=19444
2010-01-14 20:23:03 +00:00
Eelco Dolstra 73bdc861b7 * Added a test for a simple load-balancing web server. The tests
verify whether the reverse proxy works correctly if the back-ends go
  down and come up.  (Moved from the varia repo.)

svn path=/nixos/trunk/; revision=19356
2010-01-11 15:58:15 +00:00
Eelco Dolstra f22a548c0d * Grrrr.
svn path=/nixos/trunk/; revision=19338
2010-01-10 19:19:52 +00:00
Eelco Dolstra 3219ad5587 * LVM test: use /dev/disk/by-label/nixos to see whether by-label works
for LVM.
* Add even more udevadm settle calls.  Urgh.

svn path=/nixos/trunk/; revision=19336
2010-01-10 19:05:30 +00:00
Eelco Dolstra dcdbf68a68 * Add a sleep before initialising the Trac database. This shouldn't
be necessary, because waitForJob shouldn't return until Postgres is
  up and running, but we still get errors like this:

postgresql: running command: initctl status postgresql
postgresql: exit status 0
postgresql: running command: createdb trac
postgresql# createdb: could not connect to database postgres: FATAL:  the database system is starting up
postgresql: exit status 1
  

svn path=/nixos/trunk/; revision=19329
2010-01-10 16:31:19 +00:00
Eelco Dolstra 6cfe5e2746 * Add some more "udevadm settle" calls. Hopefully this fixes random
failures like this:

machine: running command: parted /dev/vda -- mkpart primary 1M 2048M
machine: exit status 0
machine: running command: parted /dev/vda -- set 1 lvm on
machine: exit status 1
machine: output: 
                                                                          
Warning: WARNING: the kernel failed to re-read the partition table on /dev/vda
(Device or resource busy).  As a result, it may not reflect all of your changes
until after reboot.
command `parted /dev/vda -- set 1 lvm on' did not succeed (exit code 1) at Machine.pm line 212, <GEN2> line 24.

svn path=/nixos/trunk/; revision=19328
2010-01-10 15:22:09 +00:00
Eelco Dolstra 1a0bb65901 * Added a regression test for whether the Nixpkgs channel works. This
is done by instantiating a webserver that simulates nixos.org.
  Using nix-push we create a channel that contains some stuff (namely
  the GNU Hello source tarball and the rlwrap program).  This was a
  bit tricky because nix-push requires a writable Nix store.  Using
  AUFS this is possible, but not on recent Linux kernels (AUFS1 over
  CIFS fails).

svn path=/nixos/trunk/; revision=19327
2010-01-10 01:26:01 +00:00
Eelco Dolstra eee4b381ce * LVM test: don't use a /boot partition. GRUB 2 can boot directly
from LVM.

svn path=/nixos/trunk/; revision=19291
2010-01-07 14:59:43 +00:00
Eelco Dolstra b74432218d * Test LVM installs.
svn path=/nixos/trunk/; revision=19289
2010-01-07 14:19:19 +00:00
Eelco Dolstra a776afb085 * Parameterize the installer test to support different partitioning
schemes.
* Added a test for installing NixOS with a separate /boot partition.

svn path=/nixos/trunk/; revision=19283
2010-01-07 13:19:38 +00:00
Eelco Dolstra 381a38f5fe * Do a nixos-rebuild in the installed machine and then reboot again to
see if the system still boots.

svn path=/nixos/trunk/; revision=19279
2010-01-06 22:53:27 +00:00
Eelco Dolstra ec3398e4b2 * Move the serial console kernel parameters to test-instrumentation.nix.
svn path=/nixos/trunk/; revision=19275
2010-01-06 21:16:57 +00:00
Eelco Dolstra bffb5450e5 * Perform a full installation and boot from the installed system.
svn path=/nixos/trunk/; revision=19274
2010-01-06 20:52:05 +00:00
Eelco Dolstra 1d549cf6df * Test whether nix-env -i works.
svn path=/nixos/trunk/; revision=19265
2010-01-06 16:46:21 +00:00
Eelco Dolstra cbca2f72df * Put a timeout on all wait* actions.
svn path=/nixos/trunk/; revision=19264
2010-01-06 15:14:26 +00:00
Eelco Dolstra 1b21115f61 * Support creating a virtual disk in the test driver.
svn path=/nixos/trunk/; revision=19263
2010-01-06 14:37:23 +00:00
Eelco Dolstra 816f12da88 * Test driver: added support for running from an ISO image. The goal
is to merge test-nixos-install-from-cd so that we have a single
  testing framework.

svn path=/nixos/trunk/; revision=19259
2010-01-06 13:36:21 +00:00
Eelco Dolstra bc68c2985c * Added a function waitForX, which returns when the X server accepts
connections.
* In the root shell, source /etc/bashrc and set $HOME and $DISPLAY.  

svn path=/nixos/trunk/; revision=19247
2010-01-05 23:59:29 +00:00