From 7713889556b013ef109c35be7fccb378a4f13b6d Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Wed, 14 Feb 2018 22:19:56 +0100 Subject: [PATCH] nixos/gjs: add test --- nixos/release.nix | 1 + nixos/tests/gjs.nix | 19 ++++++++++++++++ pkgs/desktops/gnome-3/core/gjs/default.nix | 25 +++++++++++++++++++--- 3 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 nixos/tests/gjs.nix diff --git a/nixos/release.nix b/nixos/release.nix index e473a0804244..e88bc80ea793 100644 --- a/nixos/release.nix +++ b/nixos/release.nix @@ -260,6 +260,7 @@ in rec { tests.fleet = callTestOnTheseSystems ["x86_64-linux"] tests/fleet.nix {}; #tests.gitlab = callTest tests/gitlab.nix {}; tests.gitolite = callTest tests/gitolite.nix {}; + tests.gjs = callTest tests/gjs.nix {}; tests.gocd-agent = callTest tests/gocd-agent.nix {}; tests.gocd-server = callTest tests/gocd-server.nix {}; tests.gnome3 = callTest tests/gnome3.nix {}; diff --git a/nixos/tests/gjs.nix b/nixos/tests/gjs.nix new file mode 100644 index 000000000000..e6002ef98dd0 --- /dev/null +++ b/nixos/tests/gjs.nix @@ -0,0 +1,19 @@ +# run installed tests +import ./make-test.nix ({ pkgs, ... }: { + name = "gjs"; + + meta = { + maintainers = pkgs.gnome3.gjs.meta.maintainers; + }; + + machine = { pkgs, ... }: { + imports = [ ./common/x11.nix ]; + environment.systemPackages = with pkgs; [ gnome-desktop-testing ]; + environment.variables.XDG_DATA_DIRS = [ "${pkgs.gnome3.gjs.installedTests}/share" ]; + }; + + testScript = '' + $machine->waitForX; + $machine->succeed("gnome-desktop-testing-runner"); + ''; +}) diff --git a/pkgs/desktops/gnome-3/core/gjs/default.nix b/pkgs/desktops/gnome-3/core/gjs/default.nix index deba5d47fd26..e2ae74931030 100644 --- a/pkgs/desktops/gnome-3/core/gjs/default.nix +++ b/pkgs/desktops/gnome-3/core/gjs/default.nix @@ -1,16 +1,35 @@ -{ fetchurl, stdenv, pkgconfig, gnome3, gtk3, gobjectIntrospection -, spidermonkey_52, pango, readline, glib, libxml2, dbus }: +{ fetchurl, stdenv, pkgconfig, gnome3, gtk3, atk, gobjectIntrospection +, spidermonkey_52, pango, readline, glib, libxml2, dbus, gdk_pixbuf +, makeWrapper }: stdenv.mkDerivation rec { inherit (import ./src.nix fetchurl) name src; - nativeBuildInputs = [ pkgconfig ]; + outputs = [ "out" "installedTests" ]; + + nativeBuildInputs = [ pkgconfig makeWrapper ]; buildInputs = [ libxml2 gobjectIntrospection gtk3 glib pango readline dbus ]; propagatedBuildInputs = [ spidermonkey_52 ]; + configureFlags = [ + "--enable-installed-tests" + ]; + + postPatch = '' + for f in installed-tests/*.test.in; do + substituteInPlace "$f" --subst-var-by pkglibexecdir "$installedTests/libexec/gjs" + done + ''; + postInstall = '' sed 's|-lreadline|-L${readline.out}/lib -lreadline|g' -i $out/lib/libgjs.la + + moveToOutput "share/installed-tests" "$installedTests" + moveToOutput "libexec/gjs/installed-tests" "$installedTests" + + wrapProgram "$installedTests/libexec/gjs/installed-tests/minijasmine" \ + --prefix GI_TYPELIB_PATH : "${stdenv.lib.makeSearchPath "lib/girepository-1.0" [ gtk3 atk pango.out gdk_pixbuf ]}:$installedTests/libexec/gjs/installed-tests" ''; meta = with stdenv.lib; {