at 23.11-beta 1.3 kB view raw
1import ./make-test-python.nix ({ pkgs, ... }: 2let 3 client = { pkgs, ... }: { 4 environment.systemPackages = [ pkgs.croc ]; 5 }; 6 pass = pkgs.writeText "pass" "PassRelay"; 7in { 8 name = "croc"; 9 meta = with pkgs.lib.maintainers; { 10 maintainers = [ hax404 julm ]; 11 }; 12 13 nodes = { 14 relay = { 15 services.croc = { 16 enable = true; 17 pass = pass; 18 openFirewall = true; 19 }; 20 }; 21 sender = client; 22 receiver = client; 23 }; 24 25 testScript = '' 26 start_all() 27 28 # wait until relay is up 29 relay.wait_for_unit("croc") 30 relay.wait_for_open_port(9009) 31 relay.wait_for_open_port(9010) 32 relay.wait_for_open_port(9011) 33 relay.wait_for_open_port(9012) 34 relay.wait_for_open_port(9013) 35 36 # generate testfiles and send them 37 sender.wait_for_unit("multi-user.target") 38 sender.execute("echo Hello World > testfile01.txt") 39 sender.execute("echo Hello Earth > testfile02.txt") 40 sender.execute( 41 "croc --pass ${pass} --relay relay send --code topSecret testfile01.txt testfile02.txt >&2 &" 42 ) 43 44 # receive the testfiles and check them 45 receiver.succeed( 46 "croc --pass ${pass} --yes --relay relay topSecret" 47 ) 48 assert "Hello World" in receiver.succeed("cat testfile01.txt") 49 assert "Hello Earth" in receiver.succeed("cat testfile02.txt") 50 ''; 51})