Make reftests work in a vm

Resolves: #1983778
This commit is contained in:
Matthias Clasen 2021-07-19 14:41:40 -04:00
parent 7d0912aa96
commit 621bf97605
2 changed files with 79 additions and 1 deletions

View File

@ -0,0 +1,70 @@
From b541ad48d1c7060e2d38205d4874675e27578b9b Mon Sep 17 00:00:00 2001
From: Matthias Clasen <mclasen@redhat.com>
Date: Mon, 19 Jul 2021 13:10:31 -0400
Subject: [PATCH] reftests: Enforce default settings
Set all settings to their default values, so we
are less dependent on the environment to be set
up just right. In particular, this fixes animations
being disabled when we happen to run in a vm.
---
testsuite/reftests/gtk-reftest.c | 36 ++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
diff --git a/testsuite/reftests/gtk-reftest.c b/testsuite/reftests/gtk-reftest.c
index 585e1c393d..1a51a9756b 100644
--- a/testsuite/reftests/gtk-reftest.c
+++ b/testsuite/reftests/gtk-reftest.c
@@ -368,6 +368,40 @@ add_test_for_file (GFile *file)
g_list_free_full (files, g_object_unref);
}
+static void
+enforce_default_settings (void)
+{
+ GtkSettings *settings;
+ GTypeClass *klass;
+ GParamSpec **pspecs;
+ guint n_pspecs;
+ int i;
+
+ settings = gtk_settings_get_default ();
+
+ klass = g_type_class_ref (G_OBJECT_TYPE (settings));
+
+ pspecs = g_object_class_list_properties (klass, &n_pspecs);
+ for (i = 0; i < n_pspecs; i++)
+ {
+ GParamSpec *pspec = pspecs[i];
+ const GValue *value;
+
+ if ((pspec->flags & G_PARAM_WRITABLE) == 0)
+ continue;
+
+ if (pspec->value_type == G_TYPE_HASH_TABLE)
+ continue;
+
+ value = g_param_spec_get_default_value (pspec);
+ g_object_set_property (settings, pspec->name, value);
+ }
+
+ g_free (pspecs);
+
+ g_type_class_unref (klass);
+}
+
int
main (int argc, char **argv)
{
@@ -382,6 +416,8 @@ main (int argc, char **argv)
if (!parse_command_line (&argc, &argv))
return 1;
+ enforce_default_settings ();
+
if (arg_base_dir)
basedir = arg_base_dir;
else
--
2.31.1

View File

@ -19,13 +19,16 @@
Name: gtk3
Version: 3.24.30
Release: 1%{?dist}
Release: 2%{?dist}
Summary: GTK+ graphical user interface library
License: LGPLv2+
URL: http://www.gtk.org
Source0: http://download.gnome.org/sources/gtk+/3.24/gtk+-%{version}.tar.xz
# Upstream patch to make reftests work in a vm
Patch1: 0001-reftests-Enforce-default-settings.patch
BuildRequires: pkgconfig(atk) >= %{atk_version}
BuildRequires: pkgconfig(atk-bridge-2.0)
BuildRequires: pkgconfig(glib-2.0) >= %{glib2_version}
@ -149,6 +152,8 @@ the functionality of the installed %{name} package.
%prep
%autosetup -n gtk+-%{version} -p1
%patch1 -p1
%build
export CFLAGS='-fno-strict-aliasing %optflags'
(if ! test -x configure; then NOCONFIGURE=1 ./autogen.sh; CONFIGFLAGS=--enable-gtk-doc; fi;
@ -305,6 +310,9 @@ gtk-query-immodules-3.0-%{__isa_bits} --update-cache &>/dev/null || :
%{_datadir}/installed-tests/
%changelog
* Mon Jul 19 2021 Matthias Clasen <mclasen@redhat.com> - 3.24.30-2
- Fix reftests to work in a vm (#1981790)
* Tue Jul 13 2021 David King <amigadave@amigadave.com> - 3.24.30-1
- Update to 3.24.30 (#1981790)