gnome-photos: add installed tests

This commit is contained in:
Jan Tojnar 2019-08-23 03:16:28 +02:00
parent c241e9756b
commit c6eb691fb8
No known key found for this signature in database
GPG key ID: 7FAB2A15F7A607A4
4 changed files with 97 additions and 2 deletions

View file

@ -97,6 +97,7 @@ in
glusterfs = handleTest ./glusterfs.nix {};
gnome3-xorg = handleTest ./gnome3-xorg.nix {};
gnome3 = handleTest ./gnome3.nix {};
gnome-photos = handleTest ./gnome-photos.nix {};
gocd-agent = handleTest ./gocd-agent.nix {};
gocd-server = handleTest ./gocd-server.nix {};
google-oslogin = handleTest ./google-oslogin {};

View file

@ -0,0 +1,42 @@
# run installed tests
import ./make-test.nix ({ pkgs, lib, ... }:
let
# gsettings tool with access to gsettings-desktop-schemas
desktop-gsettings = with pkgs; stdenv.mkDerivation {
name = "desktop-gsettings";
dontUnpack = true;
nativeBuildInputs = [ glib wrapGAppsHook ];
buildInputs = [ gsettings-desktop-schemas ];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
ln -s ${glib.bin}/bin/gsettings $out/bin/desktop-gsettings
runHook postInstall
'';
};
in
{
name = "gnome-photos";
meta = {
maintainers = pkgs.gnome-photos.meta.maintainers;
};
machine = { pkgs, ... }: {
imports = [ ./common/x11.nix ];
programs.dconf.enable = true;
services.gnome3.at-spi2-core.enable = true; # needed for dogtail
environment.systemPackages = with pkgs; [ gnome-desktop-testing desktop-gsettings ];
services.dbus.packages = with pkgs; [ gnome-photos ];
};
testScript = ''
$machine->waitForX;
# dogtail needs accessibility enabled
$machine->succeed("desktop-gsettings set org.gnome.desktop.interface toolkit-accessibility true 2>&1");
$machine->succeed("gnome-desktop-testing-runner -d '${pkgs.gnome-photos.installedTests}/share' 2>&1");
'';
})

View file

@ -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; {

View file

@ -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')