at 23.11-beta 2.5 kB view raw
1import ../make-test-python.nix ({ pkgs, ... }: 2let 3 # Generated with 4 # 5 # nix shell .#rkvm --command "rkvm-certificate-gen --ip-addresses 10.0.0.1 cert.pem key.pem" 6 # 7 snakeoil-cert = ./cert.pem; 8 snakeoil-key = ./key.pem; 9in 10{ 11 name = "rkvm"; 12 13 nodes = { 14 server = { pkgs, ... }: { 15 imports = [ ../common/user-account.nix ]; 16 17 virtualisation.vlans = [ 1 ]; 18 19 networking = { 20 useNetworkd = true; 21 useDHCP = false; 22 firewall.enable = false; 23 }; 24 25 systemd.network.networks."01-eth1" = { 26 name = "eth1"; 27 networkConfig.Address = "10.0.0.1/24"; 28 }; 29 30 services.getty.autologinUser = "alice"; 31 32 services.rkvm.server = { 33 enable = true; 34 settings = { 35 certificate = snakeoil-cert; 36 key = snakeoil-key; 37 password = "snakeoil"; 38 switch-keys = [ "left-alt" "right-alt" ]; 39 }; 40 }; 41 }; 42 43 client = { pkgs, ... }: { 44 imports = [ ../common/user-account.nix ]; 45 46 virtualisation.vlans = [ 1 ]; 47 48 networking = { 49 useNetworkd = true; 50 useDHCP = false; 51 firewall.enable = false; 52 }; 53 54 systemd.network.networks."01-eth1" = { 55 name = "eth1"; 56 networkConfig.Address = "10.0.0.2/24"; 57 }; 58 59 services.getty.autologinUser = "alice"; 60 61 services.rkvm.client = { 62 enable = true; 63 settings = { 64 server = "10.0.0.1:5258"; 65 certificate = snakeoil-cert; 66 key = snakeoil-key; 67 password = "snakeoil"; 68 }; 69 }; 70 }; 71 }; 72 73 testScript = '' 74 server.wait_for_unit("getty@tty1.service") 75 server.wait_until_succeeds("pgrep -f 'agetty.*tty1'") 76 server.wait_for_unit("rkvm-server") 77 server.wait_for_open_port(5258) 78 79 client.wait_for_unit("getty@tty1.service") 80 client.wait_until_succeeds("pgrep -f 'agetty.*tty1'") 81 client.wait_for_unit("rkvm-client") 82 83 server.sleep(1) 84 85 # Switch to client 86 server.send_key("alt-alt_r", delay=0.2) 87 server.send_chars("echo 'hello client' > /tmp/test.txt\n") 88 89 # Switch to server 90 server.send_key("alt-alt_r", delay=0.2) 91 server.send_chars("echo 'hello server' > /tmp/test.txt\n") 92 93 server.sleep(1) 94 95 client.systemctl("stop rkvm-client.service") 96 server.systemctl("stop rkvm-server.service") 97 98 server_file = server.succeed("cat /tmp/test.txt") 99 assert server_file.strip() == "hello server" 100 101 client_file = client.succeed("cat /tmp/test.txt") 102 assert client_file.strip() == "hello client" 103 ''; 104})