Commit graph

15 commits

Author SHA1 Message Date
Eelco Dolstra
8343b8b902 * More cleanups.
svn path=/nixos/trunk/; revision=19228
2010-01-05 11:57:17 +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
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
73c5a61a68 * Fix the Subversion test.
svn path=/nixos/trunk/; revision=19191
2010-01-03 17:57:38 +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
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