mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-11-10 08:39:08 +03:00
Merge pull request #158027 from Synthetica9/test-sway-swaylock
nixosTests.sway: add swaylock test
This commit is contained in:
commit
1c4d0f130b
@ -1,6 +1,4 @@
|
||||
import ./make-test-python.nix ({ pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
import ./make-test-python.nix ({ pkgs, lib, ... }: {
|
||||
name = "sway";
|
||||
meta = {
|
||||
maintainers = with lib.maintainers; [ primeos synthetica ];
|
||||
@ -70,6 +68,14 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
|
||||
enableOCR = true;
|
||||
|
||||
testScript = { nodes, ... }: ''
|
||||
import shlex
|
||||
|
||||
def swaymsg(command: str, succeed=True):
|
||||
with machine.nested(f"sending swaymsg {command!r}" + " (allowed to fail)" * (not succeed)):
|
||||
(machine.succeed if succeed else machine.execute)(
|
||||
f"su - alice -c {shlex.quote('swaymsg -- ' + command)}"
|
||||
)
|
||||
|
||||
start_all()
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
|
||||
@ -81,9 +87,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
|
||||
machine.wait_for_file("/tmp/sway-ipc.sock")
|
||||
|
||||
# Test XWayland (foot does not support X):
|
||||
machine.succeed(
|
||||
"su - alice -c 'swaymsg exec WINIT_UNIX_BACKEND=x11 WAYLAND_DISPLAY=invalid alacritty'"
|
||||
)
|
||||
swaymsg("exec WINIT_UNIX_BACKEND=x11 WAYLAND_DISPLAY=invalid alacritty")
|
||||
machine.wait_for_text("alice@machine")
|
||||
machine.send_chars("test-x11\n")
|
||||
machine.wait_for_file("/tmp/test-x11-exit-ok")
|
||||
@ -107,9 +111,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
|
||||
|
||||
# Test gpg-agent starting pinentry-gnome3 via D-Bus (tests if
|
||||
# $WAYLAND_DISPLAY is correctly imported into the D-Bus user env):
|
||||
machine.succeed(
|
||||
"su - alice -c 'swaymsg -- exec gpg --no-tty --yes --quick-generate-key test'"
|
||||
)
|
||||
swaymsg("exec gpg --no-tty --yes --quick-generate-key test")
|
||||
machine.wait_until_succeeds("pgrep --exact gpg")
|
||||
machine.wait_for_text("Passphrase")
|
||||
machine.screenshot("gpg_pinentry")
|
||||
@ -121,8 +123,15 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
|
||||
machine.wait_for_text("You pressed the exit shortcut.")
|
||||
machine.screenshot("sway_exit")
|
||||
|
||||
swaymsg("exec swaylock")
|
||||
machine.wait_until_succeeds("pgrep -x swaylock")
|
||||
machine.sleep(3)
|
||||
machine.send_chars("${nodes.machine.config.users.users.alice.password}")
|
||||
machine.send_key("ret")
|
||||
machine.wait_until_fails("pgrep -x swaylock")
|
||||
|
||||
# Exit Sway and verify process exit status 0:
|
||||
machine.succeed("su - alice -c 'swaymsg exit || true'")
|
||||
swaymsg("exit", succeed=False)
|
||||
machine.wait_until_fails("pgrep -x sway")
|
||||
machine.wait_for_file("/tmp/sway-exit-ok")
|
||||
'';
|
||||
|
Loading…
Reference in New Issue
Block a user