at 25.11-pre 1.4 kB view raw
1import ./make-test-python.nix ( 2 { pkgs, ... }: 3 { 4 name = "vsftpd"; 5 6 nodes = { 7 server = { 8 services.vsftpd = { 9 enable = true; 10 userlistDeny = false; 11 localUsers = true; 12 userlist = [ "ftp-test-user" ]; 13 writeEnable = true; 14 localRoot = "/tmp"; 15 }; 16 networking.firewall.enable = false; 17 18 users = { 19 users.ftp-test-user = { 20 isSystemUser = true; 21 password = "ftp-test-password"; 22 group = "ftp-test-group"; 23 }; 24 groups.ftp-test-group = { }; 25 }; 26 }; 27 28 client = { }; 29 }; 30 31 testScript = '' 32 client.start() 33 server.wait_for_unit("vsftpd") 34 server.wait_for_open_port(21) 35 36 client.succeed("curl -u ftp-test-user:ftp-test-password ftp://server") 37 client.succeed('echo "this is a test" > /tmp/test.file.up') 38 client.succeed("curl -v -T /tmp/test.file.up -u ftp-test-user:ftp-test-password ftp://server") 39 client.succeed("curl -u ftp-test-user:ftp-test-password ftp://server/test.file.up > /tmp/test.file.down") 40 client.succeed("diff /tmp/test.file.up /tmp/test.file.down") 41 assert client.succeed("cat /tmp/test.file.up") == server.succeed("cat /tmp/test.file.up") 42 assert client.succeed("cat /tmp/test.file.down") == server.succeed("cat /tmp/test.file.up") 43 ''; 44 } 45)