1import ./make-test.nix ({ pkgs, ... }: { 2 name = "kde4"; 3 meta = with pkgs.stdenv.lib.maintainers; { 4 maintainers = [ iElectric 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 ]; 45 }; 46 47 testScript = '' 48 $machine->waitUntilSucceeds("pgrep plasma-desktop"); 49 $machine->waitForWindow(qr/plasma-desktop/); 50 51 # Check that logging in has given the user ownership of devices. 52 $machine->succeed("getfacl /dev/snd/timer | grep -q alice"); 53 54 $machine->execute("su - alice -c 'DISPLAY=:0.0 kwrite /var/log/messages &'"); 55 $machine->waitForWindow(qr/messages.*KWrite/); 56 57 $machine->execute("su - alice -c 'DISPLAY=:0.0 konqueror http://localhost/ &'"); 58 $machine->waitForWindow(qr/Valgrind.*Konqueror/); 59 60 $machine->execute("su - alice -c 'DISPLAY=:0.0 gwenview ${pkgs.kde4.kde_wallpapers}/share/wallpapers/Hanami/contents/images/1280x1024.jpg &'"); 61 $machine->waitForWindow(qr/Gwenview/); 62 63 $machine->sleep(10); 64 65 $machine->screenshot("screen"); 66 ''; 67 68})