2021-11-19 20:21:20 +00:00
|
|
|
let
|
|
|
|
tests = {
|
2021-11-19 22:04:26 +00:00
|
|
|
wayland = { pkgs, ... }: {
|
2021-11-19 20:21:20 +00:00
|
|
|
imports = [ ./common/wayland-cage.nix ];
|
|
|
|
|
2021-11-27 00:54:14 +00:00
|
|
|
services.cage.program = "${pkgs.vscodium}/bin/codium";
|
|
|
|
|
|
|
|
environment.variables.NIXOS_OZONE_WL = "1";
|
|
|
|
environment.variables.DISPLAY = "do not use";
|
2021-11-19 20:21:20 +00:00
|
|
|
|
|
|
|
fonts.fonts = with pkgs; [ dejavu_fonts ];
|
|
|
|
};
|
2021-11-19 22:04:26 +00:00
|
|
|
xorg = { pkgs, ... }: {
|
2021-11-19 20:21:20 +00:00
|
|
|
imports = [ ./common/user-account.nix ./common/x11.nix ];
|
|
|
|
|
|
|
|
virtualisation.memorySize = 2047;
|
|
|
|
services.xserver.enable = true;
|
|
|
|
services.xserver.displayManager.sessionCommands = ''
|
|
|
|
${pkgs.vscodium}/bin/codium
|
|
|
|
'';
|
|
|
|
test-support.displayManager.auto.user = "alice";
|
|
|
|
};
|
2021-02-08 12:54:24 +00:00
|
|
|
};
|
|
|
|
|
2021-11-19 20:21:20 +00:00
|
|
|
mkTest = name: machine:
|
|
|
|
import ./make-test-python.nix ({ pkgs, ... }: {
|
2021-11-19 22:04:26 +00:00
|
|
|
inherit name;
|
|
|
|
|
|
|
|
nodes = { "${name}" = machine; };
|
|
|
|
|
2021-11-19 20:21:20 +00:00
|
|
|
meta = with pkgs.lib.maintainers; {
|
|
|
|
maintainers = [ synthetica turion ];
|
|
|
|
};
|
|
|
|
enableOCR = true;
|
2022-06-15 15:01:04 +01:00
|
|
|
|
|
|
|
# testScriptWithTypes:55: error: Item "function" of
|
|
|
|
# "Union[Callable[[Callable[..., Any]], ContextManager[Any]], ContextManager[Any]]"
|
|
|
|
# has no attribute "__enter__"
|
|
|
|
# with codium_running:
|
|
|
|
# ^
|
|
|
|
skipTypeCheck = true;
|
|
|
|
|
2021-11-19 20:21:20 +00:00
|
|
|
testScript = ''
|
2022-01-01 21:35:20 +00:00
|
|
|
@polling_condition
|
|
|
|
def codium_running():
|
|
|
|
machine.succeed('pgrep -x codium')
|
|
|
|
|
|
|
|
|
2021-11-19 20:21:20 +00:00
|
|
|
start_all()
|
2021-02-08 12:54:24 +00:00
|
|
|
|
2021-11-19 20:21:20 +00:00
|
|
|
machine.wait_for_unit('graphical.target')
|
|
|
|
machine.wait_until_succeeds('pgrep -x codium')
|
2021-02-08 12:54:24 +00:00
|
|
|
|
2022-01-01 21:35:20 +00:00
|
|
|
with codium_running:
|
|
|
|
# Wait until vscodium is visible. "File" is in the menu bar.
|
|
|
|
machine.wait_for_text('Get Started')
|
|
|
|
machine.screenshot('start_screen')
|
|
|
|
|
|
|
|
test_string = 'testfile'
|
2021-02-08 12:54:24 +00:00
|
|
|
|
2022-01-01 21:35:20 +00:00
|
|
|
# Create a new file
|
|
|
|
machine.send_key('ctrl-n')
|
|
|
|
machine.wait_for_text('Untitled')
|
|
|
|
machine.screenshot('empty_editor')
|
2021-02-08 12:54:24 +00:00
|
|
|
|
2022-01-01 21:35:20 +00:00
|
|
|
# Type a string
|
|
|
|
machine.send_chars(test_string)
|
|
|
|
machine.wait_for_text(test_string)
|
|
|
|
machine.screenshot('editor')
|
2021-02-08 12:54:24 +00:00
|
|
|
|
2022-01-01 21:35:20 +00:00
|
|
|
# Save the file
|
|
|
|
machine.send_key('ctrl-s')
|
2022-10-12 10:35:26 +01:00
|
|
|
machine.wait_for_text('(Save|Desktop|alice|Size)')
|
2022-01-01 21:35:20 +00:00
|
|
|
machine.screenshot('save_window')
|
|
|
|
machine.send_key('ret')
|
2021-02-08 12:54:24 +00:00
|
|
|
|
2022-01-01 21:35:20 +00:00
|
|
|
# (the default filename is the first line of the file)
|
|
|
|
machine.wait_for_file(f'/home/alice/{test_string}')
|
2021-11-20 10:26:30 +00:00
|
|
|
|
2022-10-12 10:35:26 +01:00
|
|
|
# machine.send_key('ctrl-q')
|
|
|
|
# machine.wait_until_fails('pgrep -x codium')
|
2021-11-19 20:21:20 +00:00
|
|
|
'';
|
|
|
|
});
|
2021-02-08 12:54:24 +00:00
|
|
|
|
2022-01-01 21:35:20 +00:00
|
|
|
in
|
|
|
|
builtins.mapAttrs (k: v: mkTest k v { }) tests
|