at 16.09-beta 2.2 kB view raw
1import ./make-test.nix ({ pkgs, ... }: { 2 name = "kde4"; 3 meta = with pkgs.stdenv.lib.maintainers; { 4 maintainers = [ domenkozar eelco chaoflow ]; 5 }; 6 7 machine = 8 { config, pkgs, ... }: 9 10 { imports = [ ./common/user-account.nix ]; 11 12 virtualisation.memorySize = 1024; 13 14 services.xserver.enable = true; 15 16 services.httpd.enable = true; 17 services.httpd.adminAddr = "foo@example.org"; 18 services.httpd.documentRoot = "${pkgs.valgrind.doc}/share/doc/valgrind/html"; 19 20 services.xserver.displayManager.kdm.enable = true; 21 services.xserver.displayManager.kdm.extraConfig = 22 '' 23 [X-:0-Core] 24 AutoLoginEnable=true 25 AutoLoginUser=alice 26 AutoLoginPass=foobar 27 ''; 28 29 services.xserver.desktopManager.kde4.enable = true; 30 31 # Include most of KDE. We don't really test these here, but at 32 # least they should build. 33 environment.systemPackages = 34 [ pkgs.kde4.kdemultimedia 35 pkgs.kde4.kdegraphics 36 pkgs.kde4.kdeutils 37 pkgs.kde4.kdegames 38 #pkgs.kde4.kdeedu 39 pkgs.kde4.kdeaccessibility 40 pkgs.kde4.kdeadmin 41 pkgs.kde4.kdenetwork 42 pkgs.kde4.kdetoys 43 pkgs.kde4.kdewebdev 44 pkgs.xorg.xmessage 45 ]; 46 }; 47 48 testScript = '' 49 $machine->waitUntilSucceeds("pgrep plasma-desktop"); 50 $machine->succeed("xauth merge ~alice/.Xauthority"); 51 $machine->waitForWindow(qr/plasma-desktop/); 52 53 # Check that logging in has given the user ownership of devices. 54 $machine->succeed("getfacl /dev/snd/timer | grep -q alice"); 55 56 $machine->execute("su - alice -c 'DISPLAY=:0.0 kwrite /var/log/messages &'"); 57 $machine->waitForWindow(qr/messages.*KWrite/); 58 59 $machine->execute("su - alice -c 'DISPLAY=:0.0 konqueror http://localhost/ &'"); 60 $machine->waitForWindow(qr/Valgrind.*Konqueror/); 61 62 $machine->execute("su - alice -c 'DISPLAY=:0.0 gwenview ${pkgs.kde4.kde_wallpapers}/share/wallpapers/Hanami/contents/images/1280x1024.jpg &'"); 63 $machine->waitForWindow(qr/Gwenview/); 64 65 $machine->sleep(10); 66 67 $machine->screenshot("screen"); 68 ''; 69 70})