at master 1.1 kB view raw
1{ pkgs, lib, ... }: 2 3let 4 port = 1080; 5 6 client = 7 { pkgs, ... }: 8 { 9 environment.systemPackages = [ pkgs.curl ]; 10 }; 11 12 server = 13 { pkgs, ... }: 14 { 15 # tusd does not have a NixOS service yet. 16 systemd.services.tusd = { 17 wantedBy = [ "multi-user.target" ]; 18 19 serviceConfig = { 20 ExecStart = ''${pkgs.tusd}/bin/tusd -port "${toString port}" -upload-dir=/data''; 21 }; 22 }; 23 networking.firewall.allowedTCPPorts = [ port ]; 24 }; 25in 26{ 27 name = "tusd"; 28 meta.maintainers = with lib.maintainers; [ 29 nh2 30 kalbasit 31 ]; 32 33 nodes = { 34 inherit server; 35 inherit client; 36 }; 37 38 testScript = '' 39 server.wait_for_unit("tusd.service") 40 server.wait_for_open_port(${toString port}) 41 42 # Create large file. 43 client.succeed("${pkgs.coreutils}/bin/truncate --size=100M file-100M.bin") 44 45 # Upload it. 46 client.wait_for_unit("network.target") 47 client.succeed("${./tus-curl-upload.sh} file-100M.bin http://server:${toString port}/files/") 48 49 print("Upload succeeded") 50 ''; 51}