python310Packages.pydeconz: 104 -> 105
[NixPkgs.git] / nixos / tests / croc.nix
blob5d709eb3d1cb3817da8554d38d94caec20d10f4d
1 import ./make-test-python.nix ({ pkgs, ... }:
2 let
3   client = { pkgs, ... }: {
4     environment.systemPackages = [ pkgs.croc ];
5   };
6   pass = pkgs.writeText "pass" "PassRelay";
7 in {
8   name = "croc";
9   meta = with pkgs.lib.maintainers; {
10     maintainers = [ hax404 julm ];
11   };
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   };
25   testScript = ''
26     start_all()
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)
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     )
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   '';