gnome-photos: add installed tests
This commit is contained in:
parent
c241e9756b
commit
c6eb691fb8
@ -97,6 +97,7 @@ in
|
|||||||
glusterfs = handleTest ./glusterfs.nix {};
|
glusterfs = handleTest ./glusterfs.nix {};
|
||||||
gnome3-xorg = handleTest ./gnome3-xorg.nix {};
|
gnome3-xorg = handleTest ./gnome3-xorg.nix {};
|
||||||
gnome3 = handleTest ./gnome3.nix {};
|
gnome3 = handleTest ./gnome3.nix {};
|
||||||
|
gnome-photos = handleTest ./gnome-photos.nix {};
|
||||||
gocd-agent = handleTest ./gocd-agent.nix {};
|
gocd-agent = handleTest ./gocd-agent.nix {};
|
||||||
gocd-server = handleTest ./gocd-server.nix {};
|
gocd-server = handleTest ./gocd-server.nix {};
|
||||||
google-oslogin = handleTest ./google-oslogin {};
|
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
|
{ stdenv
|
||||||
, fetchurl
|
, fetchurl
|
||||||
|
, at-spi2-core
|
||||||
, babl
|
, babl
|
||||||
, dbus
|
, dbus
|
||||||
, desktop-file-utils
|
, desktop-file-utils
|
||||||
@ -13,6 +14,7 @@
|
|||||||
, glib
|
, glib
|
||||||
, gnome-online-accounts
|
, gnome-online-accounts
|
||||||
, gnome3
|
, gnome3
|
||||||
|
, gobject-introspection
|
||||||
, grilo
|
, grilo
|
||||||
, grilo-plugins
|
, grilo-plugins
|
||||||
, gsettings-desktop-schemas
|
, gsettings-desktop-schemas
|
||||||
@ -23,6 +25,7 @@
|
|||||||
, libxml2
|
, libxml2
|
||||||
, meson
|
, meson
|
||||||
, ninja
|
, ninja
|
||||||
|
, nixosTests
|
||||||
, pkgconfig
|
, pkgconfig
|
||||||
, python3
|
, python3
|
||||||
, tracker
|
, tracker
|
||||||
@ -34,22 +37,32 @@ stdenv.mkDerivation rec {
|
|||||||
pname = "gnome-photos";
|
pname = "gnome-photos";
|
||||||
version = "3.32.1";
|
version = "3.32.1";
|
||||||
|
|
||||||
|
outputs = [ "out" "installedTests" ];
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||||
sha256 = "0nxa2jz1g73wypdsj19r4plf4hfkhs9mpl7gbhsiyqp1rkn84ahn";
|
sha256 = "0nxa2jz1g73wypdsj19r4plf4hfkhs9mpl7gbhsiyqp1rkn84ahn";
|
||||||
};
|
};
|
||||||
|
|
||||||
# doCheck = true;
|
patches = [
|
||||||
|
./installed-tests-path.patch
|
||||||
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
desktop-file-utils
|
desktop-file-utils
|
||||||
gettext
|
gettext
|
||||||
|
gobject-introspection # for setup hook
|
||||||
|
glib # for setup hook
|
||||||
itstool
|
itstool
|
||||||
libxml2
|
libxml2
|
||||||
meson
|
meson
|
||||||
ninja
|
ninja
|
||||||
pkgconfig
|
pkgconfig
|
||||||
python3
|
(python3.withPackages (pkgs: with pkgs; [
|
||||||
|
dogtail
|
||||||
|
pygobject3
|
||||||
|
pyatspi
|
||||||
|
]))
|
||||||
wrapGAppsHook
|
wrapGAppsHook
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -73,17 +86,33 @@ stdenv.mkDerivation rec {
|
|||||||
libgdata
|
libgdata
|
||||||
tracker
|
tracker
|
||||||
tracker-miners # For 'org.freedesktop.Tracker.Miner.Files' GSettings schema
|
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 = ''
|
postPatch = ''
|
||||||
chmod +x meson_post_install.py
|
chmod +x meson_post_install.py
|
||||||
patchShebangs 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 = {
|
passthru = {
|
||||||
updateScript = gnome3.updateScript {
|
updateScript = gnome3.updateScript {
|
||||||
packageName = pname;
|
packageName = pname;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
tests = {
|
||||||
|
installed-tests = nixosTests.gnome-photos;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
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…
x
Reference in New Issue
Block a user