diff --git a/nixos/modules/tests/private-storage.nix b/nixos/modules/tests/private-storage.nix index 38efce8d302f08e87a261982f7c824c27417467a..b863c1a4a22e7356a24c2914f14b58a80efbce8e 100644 --- a/nixos/modules/tests/private-storage.nix +++ b/nixos/modules/tests/private-storage.nix @@ -135,11 +135,37 @@ import <nixpkgs/nixos/tests/make-test.nix> { # # Set up a Tahoe-LAFS introducer. # - $introducer->succeed('tahoe create-introducer --hostname introducer /tmp/introducer'); - $introducer->copyFileFromHost('${pemFile}', '/tmp/introducer/private/node.pem'); - $introducer->copyFileFromHost('${introducerFURLFile}', '/tmp/introducer/private/introducer.furl'); - $introducer->succeed('daemonize $(type -p tahoe) run /tmp/introducer'); - $introducer->waitForOpenPort(${toString introducerPort}); + $introducer->succeed( + 'tahoe create-introducer ' . + '--port tcp:${toString introducerPort} ' . + '--location tcp:introducer:${toString introducerPort} ' . + '/tmp/introducer' + ); + $introducer->copyFileFromHost( + '${pemFile}', + '/tmp/introducer/private/node.pem' + ); + $introducer->copyFileFromHost( + '${introducerFURLFile}', + '/tmp/introducer/private/introducer.furl' + ); + $introducer->succeed( + 'daemonize ' . + '-e /tmp/stderr ' . + '-o /tmp/stdout ' . + '$(type -p tahoe) run /tmp/introducer' + ); + + eval { + $introducer->waitForOpenPort(${toString introducerPort}); + # Signal success. :/ + 1; + } or do { + my $error = $@ || 'Unknown failure'; + my ($code, $log) = $introducer->execute('cat /tmp/stdout /tmp/stderr'); + $introducer->log($log); + die $@; + }; # # Get a Tahoe-LAFS storage server up. @@ -162,6 +188,35 @@ import <nixpkgs/nixos/tests/make-test.nix> { # # Create a Tahoe-LAFS client on it. - $client->succeed('tahoe create-client --shares-needed 1 --shares-happy 1 --shares-total 1 --introducer ${introducerFURL}'); + $client->succeed( + 'tahoe create-client ' . + '--shares-needed 1 ' . + '--shares-happy 1 ' . + '--shares-total 1 ' . + '--introducer ${introducerFURL} /tmp/client' + ); + + # Launch it + $client->succeed( + 'daemonize ' . + '-e /tmp/stderr ' . + '-o /tmp/stdout ' . + '$(type -p tahoe) run /tmp/client' + ); + $client->waitForOpenPort(3456); + + my ($code, $out) = $client->execute( + 'tahoe -d /tmp/client ' . + 'put /etc/issue' + ); + ($code == 0) or do { + my ($code, $log) = $client->execute('cat /tmp/stdout /tmp/stderr'); + $client->log($log); + die "put failed"; + }; + $client->succeed( + 'tahoe -d /tmp/client ' . + "get $out" + ); ''; }