diff --git a/nixos/release-combined.nix b/nixos/release-combined.nix index 54fd4a15ffc..047860d3e49 100644 --- a/nixos/release-combined.nix +++ b/nixos/release-combined.nix @@ -115,6 +115,7 @@ in rec { (all nixos.tests.slim) (all nixos.tests.udisks2) (all nixos.tests.xfce) + (all nixos.tests.xmonad) nixpkgs.tarball (all allSupportedNixpkgs.emacs) diff --git a/nixos/release.nix b/nixos/release.nix index ca2a164bb6c..c687722ec3e 100644 --- a/nixos/release.nix +++ b/nixos/release.nix @@ -312,6 +312,7 @@ in rec { tests.virtualbox = callSubTests tests/virtualbox.nix { system = "x86_64-linux"; }; tests.wordpress = callTest tests/wordpress.nix {}; tests.xfce = callTest tests/xfce.nix {}; + tests.xmonad = callTest tests/xmonad.nix {}; /* Build a bunch of typical closures so that Hydra can keep track of diff --git a/nixos/tests/xmonad.nix b/nixos/tests/xmonad.nix new file mode 100644 index 00000000000..2e86f942a66 --- /dev/null +++ b/nixos/tests/xmonad.nix @@ -0,0 +1,28 @@ +import ./make-test.nix ({ pkgs, ...} : { + name = "xmonad"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ nequissimus ]; + }; + + machine = { lib, pkgs, ... }: { + imports = [ ./common/x11.nix ./common/user-account.nix ]; + services.xserver.displayManager.auto.user = "alice"; + services.xserver.windowManager.default = lib.mkForce "xmonad"; + services.xserver.windowManager.xmonad = { + enable = true; + enableContribAndExtras = true; + extraPackages = with pkgs.haskellPackages; haskellPackages: [ xmobar ]; + }; + }; + + testScript = { nodes, ... }: '' + $machine->waitForX; + $machine->waitForFile("/home/alice/.Xauthority"); + $machine->succeed("xauth merge ~alice/.Xauthority"); + $machine->sleep(3); + $machine->sendKeys("alt-shift-ret"); + $machine->waitForWindow(qr/machine.*alice/); + $machine->sleep(1); + $machine->screenshot("terminal"); + ''; +})