1import ./make-test-python.nix ({ pkgs, ...} : {
2 name = "xrdp";
3 meta = with pkgs.lib.maintainers; {
4 maintainers = [ ];
5 };
6
7 nodes = {
8 server = { 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 = { pkgs, ... }: {
16 imports = [ ./common/x11.nix ./common/user-account.nix ];
17 test-support.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, ... }: let
25 user = nodes.client.config.users.users.alice;
26 in ''
27 start_all()
28
29 client.wait_for_x()
30 client.wait_for_file("${user.home}/.Xauthority")
31 client.succeed("xauth merge ${user.home}/.Xauthority")
32
33 client.sleep(5)
34
35 client.execute("xterm >&2 &")
36 client.sleep(1)
37 client.send_chars("xfreerdp /cert-tofu /w:640 /h:480 /v:127.0.0.1 /u:${user.name} /p:${user.password}\n")
38 client.sleep(5)
39 client.screenshot("localrdp")
40
41 client.execute("xterm >&2 &")
42 client.sleep(1)
43 client.send_chars("xfreerdp /cert-tofu /w:640 /h:480 /v:server /u:${user.name} /p:${user.password}\n")
44 client.sleep(5)
45 client.screenshot("remoterdp")
46 '';
47})