Author: eelco
Date: Mon May 16 09:22:59 2011
New Revision: 27266
URL: https://svn.nixos.org/websvn/nix/?rev=27266&sc=1
Log:
* Do an actual download.
Modified:
hydra-config/tribler/trunk/release.nix
Modified: hydra-config/tribler/trunk/release.nix
==============================================================================
--- hydra-config/tribler/trunk/release.nix Mon May 16 08:20:38 2011
(r27265)
+++ hydra-config/tribler/trunk/release.nix Mon May 16 09:22:59 2011
(r27266)
@@ -48,12 +48,15 @@
pythonPackages.setuptools pythonPackages.m2crypto
pythonPackages.sqlite3
];
- installPhase =
+ buildPhase =
''
substituteInPlace Tribler/Core/NATFirewall/guessip.py \
--replace /bin/netstat ${nettools}/bin/netstat \
--replace /sbin/ifconfig ${nettools}/sbin/ifconfig
+ '';
+ installPhase =
+ ''
# Nasty hack; call wrapPythonPrograms to set program_PYTHONPATH.
wrapPythonPrograms
@@ -107,6 +110,68 @@
'';
})).test;
+
+
+ tests.download =
+ { system ? "x86_64-linux" }:
+
+ with import "${nixosSrc}/lib/testing.nix" { inherit nixpkgs system; };
+
+ (makeTest ({ pkgs, ... }: {
+
+ nodes =
+ { tracker =
+ { config, pkgs, ... }:
+ { environment.systemPackages = [ pkgs.transmission pkgs.bittorrent
];
+
+ # We need Apache on the tracker to serve the torrents.
+ services.httpd.enable = true;
+ services.httpd.adminAddr = "[email protected]";
+ services.httpd.documentRoot = "/tmp";
+ };
+
+ client =
+ { config, pkgs, ... }:
+
+ { require = [ "${nixosSrc}/tests/common/x11.nix" ];
+ environment.systemPackages = [ (build { inherit system; }) ];
+ };
+ };
+
+ testScript =
+ ''
+ startAll;
+
+ # Create the torrent.
+ $tracker->succeed("mkdir /tmp/data");
+ $tracker->succeed("cp ${pkgs.nixUnstable.src}
/tmp/data/test.tar.bz2");
+ $tracker->succeed("transmission-create /tmp/data/test.tar.bz2 -t
http://tracker:6969/announce -o /tmp/test.torrent");
+ $tracker->succeed("chmod 644 /tmp/test.torrent");
+
+ # Start the tracker. !!! use a less crappy tracker
+ $tracker->waitForJob("network-interfaces");
+ $tracker->succeed("bittorrent-tracker --port 6969 --dfile
/tmp/dstate >&2 &");
+ $tracker->waitForOpenPort(6969);
+
+ # Start the initial seeder.
+ my $pid = $tracker->succeed("transmission-cli /tmp/test.torrent -M
-w /tmp/data >&2 & echo \$!");
+
+ # Download the torrent file on the client.
+ $client->succeed("curl http://tracker/test.torrent >
/tmp/test.torrent");
+
+ # Start Tribler to download the file.
+ $client->waitForX;
+ $client->execute("tribler /tmp/test.torrent &");
+ $client->waitForWindow(qr/Tribler/);
+
+ # Wait until Tribler has finished downloading.
+ $client->waitUntilSucceeds("cmp --quiet
/root/TriblerDownloads/test.tar.bz2 ${pkgs.nixUnstable.src}");
+
+ $client->sleep(5);
+ $client->screenshot("screen");
+ '';
+
+ })).test;
}
_______________________________________________
nix-commits mailing list
[email protected]
http://mail.cs.uu.nl/mailman/listinfo/nix-commits