at 18.03-beta 1.4 kB view raw
1import ./make-test.nix ({ pkgs, ...} : { 2 name = "xrdp"; 3 meta = with pkgs.stdenv.lib.maintainers; { 4 maintainers = [ volth ]; 5 }; 6 7 nodes = { 8 server = { lib, pkgs, ... }: { 9 imports = [ ./common/user-account.nix ]; 10 services.xrdp.enable = true; 11 services.xrdp.defaultWindowManager = "${pkgs.xterm}/bin/xterm"; 12 networking.firewall.allowedTCPPorts = [ 3389 ]; 13 }; 14 15 client = { lib, pkgs, ... }: { 16 imports = [ ./common/x11.nix ./common/user-account.nix ]; 17 services.xserver.displayManager.auto.user = "alice"; 18 environment.systemPackages = [ pkgs.freerdp ]; 19 services.xrdp.enable = true; 20 services.xrdp.defaultWindowManager = "${pkgs.icewm}/bin/icewm"; 21 }; 22 }; 23 24 testScript = { nodes, ... }: '' 25 startAll; 26 27 $client->waitForX; 28 $client->waitForFile("/home/alice/.Xauthority"); 29 $client->succeed("xauth merge ~alice/.Xauthority"); 30 31 $client->sleep(5); 32 33 $client->execute("xterm &"); 34 $client->sleep(1); 35 $client->sendChars("xfreerdp /cert-tofu /w:640 /h:480 /v:127.0.0.1 /u:alice /p:foobar\n"); 36 $client->sleep(5); 37 $client->screenshot("localrdp"); 38 39 $client->execute("xterm &"); 40 $client->sleep(1); 41 $client->sendChars("xfreerdp /cert-tofu /w:640 /h:480 /v:server /u:alice /p:foobar\n"); 42 $client->sleep(5); 43 $client->screenshot("remoterdp"); 44 ''; 45})