aboutsummaryrefslogtreecommitdiff
path: root/pkgs/applications/graphics
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2019-08-23 03:16:28 +0200
committerJan Tojnar <jtojnar@gmail.com>2019-08-23 19:31:14 +0200
commitc6eb691fb8cd0616b85d1e6d91c650030f3250ac (patch)
tree14beaa589c0a52c0e4e423c4e170ea6eb736bc5b /pkgs/applications/graphics
parentc241e9756bf80ca7f672925e2d83ec7746ee80af (diff)
gnome-photos: add installed tests
Diffstat (limited to 'pkgs/applications/graphics')
-rw-r--r--pkgs/applications/graphics/gnome-photos/default.nix33
-rw-r--r--pkgs/applications/graphics/gnome-photos/installed-tests-path.patch23
2 files changed, 54 insertions, 2 deletions
diff --git a/pkgs/applications/graphics/gnome-photos/default.nix b/pkgs/applications/graphics/gnome-photos/default.nix
index e6072b1211d..f591dd5a60d 100644
--- a/pkgs/applications/graphics/gnome-photos/default.nix
+++ b/pkgs/applications/graphics/gnome-photos/default.nix
@@ -1,5 +1,6 @@
{ stdenv
, fetchurl
+, at-spi2-core
, babl
, dbus
, desktop-file-utils
@@ -13,6 +14,7 @@
, glib
, gnome-online-accounts
, gnome3
+, gobject-introspection
, grilo
, grilo-plugins
, gsettings-desktop-schemas
@@ -23,6 +25,7 @@
, libxml2
, meson
, ninja
+, nixosTests
, pkgconfig
, python3
, tracker
@@ -34,22 +37,32 @@ stdenv.mkDerivation rec {
pname = "gnome-photos";
version = "3.32.1";
+ outputs = [ "out" "installedTests" ];
+
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0nxa2jz1g73wypdsj19r4plf4hfkhs9mpl7gbhsiyqp1rkn84ahn";
};
- # doCheck = true;
+ patches = [
+ ./installed-tests-path.patch
+ ];
nativeBuildInputs = [
desktop-file-utils
gettext
+ gobject-introspection # for setup hook
+ glib # for setup hook
itstool
libxml2
meson
ninja
pkgconfig
- python3
+ (python3.withPackages (pkgs: with pkgs; [
+ dogtail
+ pygobject3
+ pyatspi
+ ]))
wrapGAppsHook
];
@@ -73,17 +86,33 @@ stdenv.mkDerivation rec {
libgdata
tracker
tracker-miners # For 'org.freedesktop.Tracker.Miner.Files' GSettings schema
+
+ at-spi2-core # for tests
+ ];
+
+ mesonFlags = [
+ "-Dinstalled_tests=true"
+ "-Dinstalled_test_prefix=${placeholder "installedTests"}"
];
postPatch = ''
chmod +x meson_post_install.py
patchShebangs meson_post_install.py
+ patchShebangs tests/basic.py
+ '';
+
+ postFixup = ''
+ wrapProgram "${placeholder "installedTests"}/libexec/installed-tests/gnome-photos/basic.py" "''${gappsWrapperArgs[@]}"
'';
passthru = {
updateScript = gnome3.updateScript {
packageName = pname;
};
+
+ tests = {
+ installed-tests = nixosTests.gnome-photos;
+ };
};
meta = with stdenv.lib; {
diff --git a/pkgs/applications/graphics/gnome-photos/installed-tests-path.patch b/pkgs/applications/graphics/gnome-photos/installed-tests-path.patch
new file mode 100644
index 00000000000..218108328dd
--- /dev/null
+++ b/pkgs/applications/graphics/gnome-photos/installed-tests-path.patch
@@ -0,0 +1,23 @@
+diff --git a/meson.build b/meson.build
+index dee932dc..f8851913 100644
+--- a/meson.build
++++ b/meson.build
+@@ -16,8 +16,8 @@
+ photos_docdir = join_paths(photos_datadir, 'doc', meson.project_name())
+ photos_libdir = join_paths(photos_prefix, get_option('libdir'), meson.project_name())
+
+-photos_installed_test_metadir = join_paths(photos_datadir, 'installed-tests', meson.project_name())
+-photos_installed_test_execdir = join_paths(photos_libexecdir, 'installed-tests', meson.project_name())
++photos_installed_test_metadir = join_paths(get_option('installed_test_prefix'), 'share', 'installed-tests', meson.project_name())
++photos_installed_test_execdir = join_paths(get_option('installed_test_prefix'), 'libexec', 'installed-tests', meson.project_name())
+
+ photos_namespace = 'org.gnome.Photos'
+
+diff --git a/meson_options.txt b/meson_options.txt
+index f34b5cc0..8e09970b 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -1,2 +1,3 @@
+ option('dogtail', type: 'boolean', value: true, description: 'test using dogtail')
+ option('installed_tests', type: 'boolean', value: false, description: 'Enable installation of some test cases')
++option('installed_test_prefix', type: 'string', value: '', description: 'Prefix for installed tests')