Commit graph

190 commits

Author SHA1 Message Date
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
Eelco Dolstra
5cc99487cb * A function to wait until a window exists.
svn path=/nixos/trunk/; revision=19246
2010-01-05 23:38:13 +00:00
Eelco Dolstra
0f5b178fcf svn path=/nixos/trunk/; revision=19242 2010-01-05 17:42:36 +00:00
Eelco Dolstra
bc238be01a * Factor out the X11 configuration.
svn path=/nixos/trunk/; revision=19241
2010-01-05 17:08:57 +00:00
Eelco Dolstra
73668f41da * Added an "auto" pseudo display manager that logs in a user
automatically.  This is mostly useful for testing.  (KDM also has
  this feature, but it's nice not to depend on KDE for non-KDE tests.)

svn path=/nixos/trunk/; revision=19239
2010-01-05 15:32:14 +00:00
Eelco Dolstra
bc8445a89e * Add a simple Firefox test.
svn path=/nixos/trunk/; revision=19234
2010-01-05 14:12:51 +00:00
Eelco Dolstra
9889d9f9f8 * Remove most default kernel options since they have no effect. Also,
don't put them in a default, so that they can easily be added to.

svn path=/nixos/trunk/; revision=19232
2010-01-05 13:11:12 +00:00
Eelco Dolstra
8343b8b902 * More cleanups.
svn path=/nixos/trunk/; revision=19228
2010-01-05 11:57:17 +00:00
Eelco Dolstra
5af12b6afe * Provide a function for taking a screenshot.
svn path=/nixos/trunk/; revision=19225
2010-01-05 11:35:59 +00:00
Eelco Dolstra
fbda972090 * This sleep should no longer be needed because in Upstart 0.6
"initctl stop" doesn't return until the job has stopped.

svn path=/nixos/trunk/; revision=19224
2010-01-05 11:29:30 +00:00
Eelco Dolstra
51097933ab * Moved test-related stuff from lib/build-vms.nix to lib/testing.nix.
* Factored out some commonality between tests to make them a bit
  simpler to write.  A test is a function { pkgs, ... }: -> { nodes,
  testScript } or { machine, testScript }.  So it's no longer
  necessary to have a "vms" attribute in every test.

svn path=/nixos/trunk/; revision=19220
2010-01-05 11:18:43 +00:00
Eelco Dolstra
9e98910a72 * Obsolete.
svn path=/nixos/trunk/; revision=19213
2010-01-05 09:20:43 +00:00
Eelco Dolstra
5730c27aed * For debugging, if $tests is not set, read commands from stdin.
svn path=/nixos/trunk/; revision=19210
2010-01-04 16:30:54 +00:00
Eelco Dolstra
9aa0a336bc * Updated the coverage analysis handling for Linux 2.6.32. Gcov is
now merged in the kernel, and the gcda files are exported through
  debugfs in /sys/kernel/debug/gcov.

svn path=/nixos/trunk/; revision=19207
2010-01-04 13:22:43 +00:00
Eelco Dolstra
7707ceaddf * The test doesn't work with the default bit depth.
svn path=/nixos/trunk/; revision=19194
2010-01-03 23:34:44 +00:00
Eelco Dolstra
73c5a61a68 * Fix the Subversion test.
svn path=/nixos/trunk/; revision=19191
2010-01-03 17:57:38 +00:00
Marc Weber
5bf9fdbe41 cleaned up kvm installation test. It works now.
svn path=/nixos/trunk/; revision=18986
2009-12-16 04:55:35 +00:00
Marc Weber
273ecdf070 adding nix-env -i check in booted system.
It fails because nixbldN don't belong to the nixbld group
Manually removing socket file. Somehow the socket is not always created
when rebooting the second time (?) I have to look into that later.

svn path=/nixos/trunk/; revision=18984
2009-12-15 23:26:57 +00:00
Marc Weber
4b5864666e * refactoring kvm test and bootstrapping image.
expose makeInfo (used by test now)
  expose config hack
* Adding tests to release.nix
* fixes
* removing dependency on perl

refactoring details:
Move all configuration modules used by the NixOS installation test script
into one directory.

svn path=/nixos/trunk/; revision=18982
2009-12-15 23:26:52 +00:00
Marc Weber
401fd84ae1 kvm installation test update + NixOS installation archive
You can run the kvm nixos installation test by:
  nix-build --no-out-link tests/test-nixos-install-from-cd.nix
It boots the installed system.
It still fails sshd isn't started (yet)

adding nixos-bootstrapping-archive:
You can install NixOS easily using any live cd now.
See README-BOOTSTRAP-NIXOS

svn path=/nixos/trunk/; revision=18950
2009-12-15 06:37:32 +00:00
Marc Weber
4d7e344f69 Adding initial version of the nixos cd insallation test script using
qemu_kvm. Installation doesn't take place yet. VM is started
printing a remote controlled "Hello".

This serves as example how to run a vm within a bulid job.

svn path=/nixos/trunk/; revision=18887
2009-12-11 00:51:13 +00:00
Marc Weber
5cb52cc7cb nixos vms tests: use relative path to services, nixpkgs because this is more like to work if you don't put the repos in /etc/nixos/
svn path=/nixos/trunk/; revision=18330
2009-11-11 23:54:54 +00:00
Nicolas Pierron
e07f1e98db * Revert 18115, 18150, 18135, 18112, 18107-18105.
Revert modifications done on apache-httpd configurations.


svn path=/nixos/trunk/; revision=18215
2009-11-06 16:23:25 +00:00
Nicolas Pierron
72f804c9b2 * Fix subversion test and change the name of the "config" option to
"configuration" because it may interfered with sub-modules keywords.

svn path=/nixos/trunk/; revision=18155
2009-11-05 19:24:02 +00:00
Nicolas Pierron
ca00f6f3f8 * Fix nix-build errors of tests.
svn path=/nixos/trunk/; revision=18151
2009-11-05 18:21:09 +00:00
Nicolas Pierron
35c14bb11a * Add a test to avoid regression of (NIXOS-85).
svn path=/nixos/trunk/; revision=17979
2009-10-27 19:19:48 +00:00
Nicolas Pierron
2e34baba3b Rename environment.extraPackages to environment.systemPackages.
svn path=/nixos/trunk/; revision=17705
2009-10-07 17:14:25 +00:00
Sander van der Burg
d6b1b4615a Shortened the Trac test expression a bit to make it more readable
svn path=/nixos/trunk/; revision=16965
2009-09-04 23:04:29 +00:00
Sander van der Burg
4c2650d015 - The repository is no longer explicitly created on the storage server, but on the webserver in which the /repos dir is a NFS mount
- NFS mounts are created during startup time
- Played a bit with waiting times in order to capture a nice screenshot


svn path=/nixos/trunk/; revision=16964
2009-09-04 22:06:54 +00:00
Eelco Dolstra
fc69e22e3a * Timing dependency is bad.
svn path=/nixos/trunk/; revision=16961
2009-09-04 15:33:21 +00:00
Eelco Dolstra
80eafedc16 svn path=/nixos/trunk/; revision=16959 2009-09-04 15:26:30 +00:00
Eelco Dolstra
3f65966653 * Test konqueror.
svn path=/nixos/trunk/; revision=16958
2009-09-04 15:02:52 +00:00
Sander van der Burg
7fc8a1fd98 Fixed some bugs in the Trac testcase
svn path=/nixos/trunk/; revision=16957
2009-09-04 14:45:30 +00:00
Sander van der Burg
65cb814f7a Committed trac example case
svn path=/nixos/trunk/; revision=16955
2009-09-04 11:37:07 +00:00
Eelco Dolstra
a27680ea17 * Another distributed regression test, a network consisting of a Quake
3 server and two clients.  The clients connect to the server and do
  nothing (except getting blown by the bots).  After a few seconds we
  verify that the clients indeed connected successfully, and make a
  screenshot of the X displays of the clients.

svn path=/nixos/trunk/; revision=16951
2009-09-03 00:04:43 +00:00
Eelco Dolstra
497760b444 * Use scrot to make screenshots.
* Another X11 test (running Quake 3).

svn path=/nixos/trunk/; revision=16949
2009-09-02 23:16:33 +00:00
Eelco Dolstra
6ee7ccf07f * Automatically log in using kdm.
svn path=/nixos/trunk/; revision=16941
2009-09-02 18:44:09 +00:00
Eelco Dolstra
cddc93cc5e * Start of a simple GUI test. Right now it just starts the X server,
wait a few seconds and makes a screenshot.

svn path=/nixos/trunk/; revision=16934
2009-09-02 14:48:28 +00:00
Eelco Dolstra
0ca8c84618 svn path=/nixos/trunk/; revision=16924 2009-09-02 08:42:43 +00:00
Eelco Dolstra
137c5c65bd * Added a timeout for starting the VM. TODO: handle SIGCHLD from
qemu.
* Do the subversion test on i686-linux.  

svn path=/nixos/trunk/; revision=16923
2009-09-02 08:36:30 +00:00
Eelco Dolstra
37134cf3af svn path=/nixos/trunk/; revision=16921 2009-09-02 06:45:50 +00:00
Eelco Dolstra
e7acca2ba3 * Cleanup the kernel coverage analysis.
svn path=/nixos/trunk/; revision=16919
2009-09-01 22:50:46 +00:00
Eelco Dolstra
4d8d704fba * Run the subversion.nix test with coverage analysis on the kernel.
svn path=/nixos/trunk/; revision=16917
2009-09-01 22:22:45 +00:00
Eelco Dolstra
9359bf11d5 * Build the Subversion test in Hydra (as a regression test for NixOS).
* Pass the location to the services tree around instead of requiring
  it to be in ../services.

svn path=/nixos/trunk/; revision=16901
2009-08-31 14:56:19 +00:00
Eelco Dolstra
27a8e656bc * Stuff for automatic and manual testing of NixOS VMs.
lib/build-vms.nix contains a function `buildVirtualNetwork' that
  takes a specification of a network of machines (as an attribute set
  of NixOS machine configurations) and builds a script that starts
  each configuration in a separate QEMU/KVM VM and connects them
  together in a virtual network.  This script can be run manually to
  test the VMs interactively.  There is also a function `runTests'
  that starts and runs the virtual network in a derivation, and
  then executes a test specification that tells the VMs to do certain
  things (i.e., letting one VM send an HTTP request to a webserver on
  another VM).  The tests are written in Perl (for now).

  tests/subversion.nix shows a simple example, namely a network of two
  machines: a webserver that runs the Subversion subservice, and a
  client.  Apache, Subversion and a few other packages are built with
  coverage analysis instrumentation.  For instance,

    $ nix-build tests/subversion.nix -A vms
    $ ./result/bin/run-vms

  starts two QEMU/KVM instances.  When they have finished booting, the
  webserver can be accessed from the host through
  http://localhost:8081/.

  It also has a small test suite:

    $ nix-build tests/subversion.nix -A report

  This runs the VMs in a derivation, runs the tests, and then produces
  a distributed code coverage analysis report (i.e. it shows the
  combined coverage on both machines).

  The Perl test driver program is in lib/test-driver.  It executes
  commands on the guest machines by connecting to a root shell running
  on port 514 (provided by modules/testing/test-instrumentation.nix).

  The VMs are connected together in a virtual network using QEMU's
  multicast feature.  This isn't very secure.  At the very least,
  other processes on the same machine can listen to or send packets on
  the virtual network.  On the plus side, we don't need to be root to
  set up a multicast virtual network, so we can do it from a
  derivation.  Maybe we can use VDE instead.

  (Moved from the vario repository.)

svn path=/nixos/trunk/; revision=16899
2009-08-31 14:25:12 +00:00
Eelco Dolstra
921b838149 * test -> tests.
svn path=/nixos/trunk/; revision=16897
2009-08-31 13:40:57 +00:00