json-glib: add installed tests

https://github.com/NixOS/nixpkgs/issues/34987
This commit is contained in:
Will Bush 2022-07-31 17:55:20 -05:00
parent 5857574d45
commit ec11cf5337
No known key found for this signature in database
GPG key ID: 3823864B54B13BDA
4 changed files with 72 additions and 1 deletions

View file

@ -98,6 +98,7 @@ in
gnome-photos = callInstalledTest ./gnome-photos.nix {};
graphene = callInstalledTest ./graphene.nix {};
gsconnect = callInstalledTest ./gsconnect.nix {};
json-glib = callInstalledTest ./json-glib.nix {};
ibus = callInstalledTest ./ibus.nix {};
libgdata = callInstalledTest ./libgdata.nix {};
librsvg = callInstalledTest ./librsvg.nix {};

View file

@ -0,0 +1,5 @@
{ pkgs, makeInstalledTest, ... }:
makeInstalledTest {
tested = pkgs.json-glib;
}

View file

@ -0,0 +1,51 @@
From 06418362d5a6c8bc592acb7572f4d1b48213884f Mon Sep 17 00:00:00 2001
From: Will Bush <will.g.bush@gmail.com>
Date: Sun, 31 Jul 2022 02:48:18 -0500
Subject: [PATCH] meson: add options for tests installation dirs
---
json-glib/tests/meson.build | 13 +++++++++++--
meson_options.txt | 6 ++++++
2 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/json-glib/tests/meson.build b/json-glib/tests/meson.build
index 1eb56c8..beab6c7 100644
--- a/json-glib/tests/meson.build
+++ b/json-glib/tests/meson.build
@@ -21,8 +21,17 @@ test_data = [
'stream-load.json',
]
-installed_test_bindir = join_paths(json_libexecdir, 'installed-tests', json_api_name)
-installed_test_datadir = join_paths(json_datadir, 'installed-tests', json_api_name)
+installed_test_suffix = join_paths('installed-tests', json_api_name)
+
+installed_test_bindir = join_paths(get_option('installed_test_bindir'), installed_test_suffix)
+if installed_test_bindir == ''
+ installed_test_bindir = join_paths(json_libexecdir, installed_test_suffix)
+endif
+
+installed_test_datadir = join_paths(get_option('installed_test_datadir'), installed_test_suffix)
+if installed_test_datadir == ''
+ installed_test_datadir = join_paths(json_datadir, installed_test_suffix)
+endif
install_data(test_data, install_dir: installed_test_bindir)
diff --git a/meson_options.txt b/meson_options.txt
index 068a03f..b3b1837 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -10,3 +10,9 @@ option('man',
option('tests',
type: 'boolean', value: true,
description: 'Build the tests')
+option('installed_test_datadir', type: 'string',
+ value: '',
+ description: 'Installation directory for data files in tests')
+option('installed_test_bindir', type: 'string',
+ value: '',
+ description: 'Installation directory for binary files in tests')
--
2.36.1

View file

@ -4,6 +4,7 @@
, glib
, meson
, ninja
, nixosTests
, pkg-config
, gettext
, gobject-introspection
@ -17,13 +18,18 @@ stdenv.mkDerivation rec {
pname = "json-glib";
version = "1.6.6";
outputs = [ "out" "dev" "devdoc" ];
outputs = [ "out" "dev" "devdoc" "installedTests" ];
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "luyYvnqR9t3jNjZyDj2i/27LuQ52zKpJSX8xpoVaSQ4=";
};
patches = [
# Add option for changing installation path of installed tests.
./0001-meson-add-options-for-tests-installation-dirs.patch
];
strictDeps = true;
depsBuildBuild = [
@ -49,6 +55,10 @@ stdenv.mkDerivation rec {
glib
];
mesonFlags = [
"-Dinstalled_test_bindir=${placeholder "installedTests"}/libexec"
"-Dinstalled_test_datadir=${placeholder "installedTests"}/share"
];
# Run-time dependency gi-docgen found: NO (tried pkgconfig and cmake)
# it should be a build-time dep for build
@ -73,6 +83,10 @@ stdenv.mkDerivation rec {
'';
passthru = {
tests = {
installedTests = nixosTests.installed-tests.json-glib;
};
updateScript = gnome.updateScript {
packageName = pname;
versionPolicy = "odd-unstable";