diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 27124bb953d7..a93f74dbe57f 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -360,7 +360,7 @@ in { eintopf = handleTest ./eintopf.nix {}; ejabberd = handleTest ./xmpp/ejabberd.nix {}; elk = handleTestOn ["x86_64-linux"] ./elk.nix {}; - emacs-daemon = handleTest ./emacs-daemon.nix {}; + emacs-daemon = runTest ./emacs-daemon.nix; endlessh = handleTest ./endlessh.nix {}; endlessh-go = handleTest ./endlessh-go.nix {}; engelsystem = handleTest ./engelsystem.nix {}; diff --git a/nixos/tests/emacs-daemon.nix b/nixos/tests/emacs-daemon.nix index db8a26e6db35..da6463f165d5 100644 --- a/nixos/tests/emacs-daemon.nix +++ b/nixos/tests/emacs-daemon.nix @@ -1,52 +1,48 @@ -import ./make-test-python.nix ( - { pkgs, ... }: - { - name = "emacs-daemon"; - meta = with pkgs.lib.maintainers; { - maintainers = [ ]; - }; +{ lib, ... }: +{ + name = "emacs-daemon"; + meta.maintainers = lib.teams.emacs.members; - enableOCR = true; + enableOCR = true; - nodes.machine = - { ... }: + nodes.machine = + { ... }: - { - imports = [ ./common/x11.nix ]; - services.emacs = { - enable = true; - defaultEditor = true; - }; - - # Important to get the systemd service running for root - environment.variables.XDG_RUNTIME_DIR = "/run/user/0"; - - environment.variables.TEST_SYSTEM_VARIABLE = "system variable"; + { + imports = [ ./common/x11.nix ]; + services.emacs = { + enable = true; + defaultEditor = true; }; - testScript = '' - machine.wait_for_unit("multi-user.target") + # Important to get the systemd service running for root + environment.variables.XDG_RUNTIME_DIR = "/run/user/0"; - # checks that the EDITOR environment variable is set - machine.succeed('test $(basename "$EDITOR") = emacseditor') + environment.variables.TEST_SYSTEM_VARIABLE = "system variable"; + }; - # waits for the emacs service to be ready - machine.wait_until_succeeds( - "systemctl --user status emacs.service | grep 'Active: active'" - ) + testScript = '' + machine.wait_for_unit("multi-user.target") - # connects to the daemon - machine.succeed("emacsclient --no-wait --frame-parameters='((display . \"'\"$DISPLAY\"'\"))' --create-frame $EDITOR >&2") + # checks that the EDITOR environment variable is set + machine.succeed('test $(basename "$EDITOR") = emacseditor') - # checks that Emacs shows the edited filename - machine.wait_for_text("emacseditor") + # waits for the emacs service to be ready + machine.wait_until_succeeds( + "systemctl --user status emacs.service | grep 'Active: active'" + ) - # makes sure environment variables are accessible from Emacs - machine.succeed( - "emacsclient --eval '(getenv \"TEST_SYSTEM_VARIABLE\")' | grep -q 'system variable'" - ) + # connects to the daemon + machine.succeed("emacsclient --no-wait --frame-parameters='((display . \"'\"$DISPLAY\"'\"))' --create-frame $EDITOR >&2") - machine.screenshot("emacsclient") - ''; - } -) + # checks that Emacs shows the edited filename + machine.wait_for_text("emacseditor") + + # makes sure environment variables are accessible from Emacs + machine.succeed( + "emacsclient --eval '(getenv \"TEST_SYSTEM_VARIABLE\")' | grep -q 'system variable'" + ) + + machine.screenshot("emacsclient") + ''; +}