From 028379be28695cf07ac31a73bcbc1439bfb944b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Domen=20Ko=C5=BEar?= Date: Sat, 8 Feb 2014 21:47:28 +0100 Subject: [PATCH] nixos: add most basic gnome3 test and take a screenshot --- nixos/release-combined.nix | 1 + nixos/tests/default.nix | 1 + nixos/tests/gnome3.nix | 31 +++++++++++++++++++++++++++++++ 3 files changed, 33 insertions(+) create mode 100644 nixos/tests/gnome3.nix diff --git a/nixos/release-combined.nix b/nixos/release-combined.nix index dccc3acbf46..ed5c4769d0a 100644 --- a/nixos/release-combined.nix +++ b/nixos/release-combined.nix @@ -61,6 +61,7 @@ in rec { (all nixos.tests.printing) (all nixos.tests.proxy) (all nixos.tests.xfce) + (all nixos.tests.gnome3) nixpkgs.tarball (all nixpkgs.emacs) diff --git a/nixos/tests/default.nix b/nixos/tests/default.nix index 574e1dd2f8b..b37a0d5fa0c 100644 --- a/nixos/tests/default.nix +++ b/nixos/tests/default.nix @@ -12,6 +12,7 @@ with import ../lib/testing.nix { inherit system minimal; }; firewall = makeTest (import ./firewall.nix); installer = makeTests (import ./installer.nix); efi-installer = makeTests (import ./efi-installer.nix); + gnome3 = makeTest (import ./gnome3.nix); ipv6 = makeTest (import ./ipv6.nix); kde4 = makeTest (import ./kde4.nix); #kexec = makeTest (import ./kexec.nix); diff --git a/nixos/tests/gnome3.nix b/nixos/tests/gnome3.nix new file mode 100644 index 00000000000..98a76137842 --- /dev/null +++ b/nixos/tests/gnome3.nix @@ -0,0 +1,31 @@ +{ pkgs, ... }: + +{ + + machine = + { config, pkgs, ... }: + + { imports = [ ./common/user-account.nix ]; + + services.xserver.enable = true; + + services.xserver.displayManager.auto.enable = true; + services.xserver.displayManager.auto.user = "alice"; + services.xserver.desktopManager.gnome3.enable = true; + }; + + testScript = + '' + $machine->waitForX; + $machine->sleep(15); + + # Check that logging in has given the user ownership of devices. + $machine->succeed("getfacl /dev/snd/timer | grep -q alice"); + + $machine->succeed("su - alice -c 'DISPLAY=:0.0 gnome-terminal &'"); + $machine->waitForWindow(qr/Terminal/); + $machine->sleep(10); + $machine->screenshot("screen"); + ''; + +}