summaryrefslogtreecommitdiffstats
path: root/nixos/tests/svnserve.nix
blob: 4a537bbdd657c5669b4b2cd6d9f25488fb1aa54a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
{ pkgs, ... }:
{
  name = "svnserve";

  nodes = {
    server = {
      virtualisation.vlans = [ 1 ];

      networking = {
        useNetworkd = true;
        useDHCP = false;
        firewall.allowedTCPPorts = [ 3690 ];
      };

      systemd.network.networks."01-eth1" = {
        name = "eth1";
        networkConfig.Address = "10.0.0.1/24";
      };

      services.svnserve.enable = true;

      environment.systemPackages = [ pkgs.subversion ];
    };

    client =
      { pkgs, ... }:
      {
        virtualisation.vlans = [ 1 ];

        networking = {
          useNetworkd = true;
          useDHCP = false;
        };

        systemd.network.networks."01-eth1" = {
          name = "eth1";
          networkConfig.Address = "10.0.0.2/24";
        };

        environment.systemPackages = [ pkgs.subversion ];
      };
  };

  testScript =
    { nodes, ... }:
    ''
      start_all()

      server.wait_for_unit("svnserve")
      server.wait_for_open_port(3690)
      server.succeed("svnadmin create '${nodes.server.services.svnserve.svnBaseDir}/project'")
      server.succeed("sed -i 's/# anon-access = read/anon-access = write/' '${nodes.server.services.svnserve.svnBaseDir}/project/conf/svnserve.conf'")

      client.succeed("svn checkout svn://10.0.0.1/project")
      client.succeed("cd ./project && echo hello > ./file.txt && svn add ./file.txt && svn commit -m 'Added file.txt'")

      client.succeed("svn checkout svn://10.0.0.1/project project-copy")
      client.succeed("grep hello project-copy/file.txt")
    '';
}