From ef82cd9c48a2f1da6d7029554bc043c09c8ef28b Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Sun, 9 Jan 2011 22:21:22 +0000 Subject: [PATCH] * Coverage report: propagate the build products of the VM test run. * Run the Quake 3 with coverage instrumentation. svn path=/nixos/trunk/; revision=25480 --- lib/testing.nix | 10 ++++++---- release.nix | 2 +- tests/quake3.nix | 14 ++++++++++++++ 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/lib/testing.nix b/lib/testing.nix index c7acbfa13c1..6f66ec72601 100644 --- a/lib/testing.nix +++ b/lib/testing.nix @@ -49,7 +49,7 @@ rec { buildCommand = '' - ensureDir $out/nix-support + mkdir -p $out/nix-support LOGFILE=$out/log.xml ${testDriver}/bin/nixos-test-driver ${network}/vms/*/bin/run-*-vm || failed=1 @@ -64,7 +64,7 @@ rec { echo "report testlog $out log.html" >> $out/nix-support/hydra-build-products for i in */coverage-data; do - ensureDir $out/coverage-data + mkdir -p $out/coverage-data mv $i $out/coverage-data/$(dirname $i) done @@ -107,12 +107,14 @@ rec { done echo "making report..." - ensureDir $out/coverage + mkdir -p $out/coverage ${pkgs.lcov}/bin/genhtml --show-details $TMPDIR/full.info -o $out/coverage cp $TMPDIR/full.info $out/coverage/ - ensureDir $out/nix-support + mkdir -p $out/nix-support + cat ${x}/nix-support/hydra-build-products >> $out/nix-support/hydra-build-products echo "report coverage $out/coverage" >> $out/nix-support/hydra-build-products + [ ! -e ${x}/nix-support/failed ] || touch $out/nix-support/failed ''; # */ diff --git a/release.nix b/release.nix index 62fc2387aad..a2ce651770b 100644 --- a/release.nix +++ b/release.nix @@ -173,7 +173,7 @@ let nfs = t.nfs.test; openssh = t.openssh.test; proxy = t.proxy.test; - quake3 = t.quake3.test; + quake3 = t.quake3.report; remote_builds = t.remote_builds.test; subversion = t.subversion.report; trac = t.trac.test; diff --git a/tests/quake3.nix b/tests/quake3.nix index faaf8d2c539..8a18030a934 100644 --- a/tests/quake3.nix +++ b/tests/quake3.nix @@ -1,5 +1,17 @@ { pkgs, ... }: +let + + # Build Quake with coverage instrumentation. + overrides = pkgs: + rec { + quake3game = pkgs.quake3game.override (args: { + stdenv = pkgs.stdenvAdapters.addCoverageInstrumentation args.stdenv; + }); + }; + +in + rec { client = @@ -9,6 +21,7 @@ rec { services.xserver.driSupport = true; services.xserver.defaultDepth = pkgs.lib.mkOverride 0 16; environment.systemPackages = [ pkgs.quake3demo ]; + nixpkgs.config.packageOverrides = overrides; }; nodes = @@ -22,6 +35,7 @@ rec { "${pkgs.quake3demo}/bin/quake3 '+set dedicated 1' '+set g_gametype 0' " + "'+map q3dm7' '+addbot grunt' '+addbot daemia' 2> /tmp/log"; }; + nixpkgs.config.packageOverrides = overrides; }; client1 = client;