gnome-photos: add installed tests
This commit is contained in:
parent
c241e9756b
commit
c6eb691fb8
4 changed files with 97 additions and 2 deletions
|
@ -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 {};
|
||||
|
|
42
nixos/tests/gnome-photos.nix
Normal file
42
nixos/tests/gnome-photos.nix
Normal 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");
|
||||
'';
|
||||
})
|
|
@ -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; {
|
||||
|
|
|
@ -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')
|
Loading…
Reference in a new issue