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

Reply via email to