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