summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/glib-2.0
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2023-05-30 15:42:44 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2023-05-31 16:52:42 +0100
commit82910dd43889e9ac50f7dba9437e3304c52eb1c3 (patch)
tree9860cf5d7ee7ab0d47e590ac0e70fb4cf547d9da /meta/recipes-core/glib-2.0
parent7c1cd24de5ec06501354ca6378887f4b1048274e (diff)
downloadopenembedded-core-82910dd43889e9ac50f7dba9437e3304c52eb1c3.tar.gz
glib-2.0: Update ptest fix to upstream backport
Update the ptest fix to match the one accepted upstream. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-core/glib-2.0')
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-portal-support-Fix-snap-test-ordering-race.patch107
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/fix-ptest.patch166
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0_2.76.2.bb2
3 files changed, 108 insertions, 167 deletions
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-portal-support-Fix-snap-test-ordering-race.patch b/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-portal-support-Fix-snap-test-ordering-race.patch
new file mode 100644
index 0000000000..9e2bc1338b
--- /dev/null
+++ b/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-portal-support-Fix-snap-test-ordering-race.patch
@@ -0,0 +1,107 @@
+From f47503cc5ae10de6dee319ba6cff257eddabf33e Mon Sep 17 00:00:00 2001
+From: Richard Purdie <richard.purdie@linuxfoundation.org>
+Date: Tue, 30 May 2023 11:52:38 +0100
+Subject: [PATCH] gio/tests/portal-support: Fix snap test ordering race
+
+When the gnome test runner executes the tests, the test appear to execute in disk
+order. This means it sometimes works and sometimes we see breakage in portal-support-snap
+and portal-support-snap-classic.
+
+The issue is that some tests create config files but some don't. If they run
+in the wrong order, tests see config files they shouldn't and break.
+
+Fix this by deleting the files after each test run, properly cleaning up after
+themselves. The cleanup code is based upon gtestutils.c:rm_rf().
+
+Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/c63cf19d9a8a6ae315a7f9a3fe4ea60c8cf5dece]
+
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+---
+ gio/tests/portal-support-snap-classic.c | 3 +++
+ gio/tests/portal-support-snap.c | 3 +++
+ gio/tests/portal-support-utils.c | 27 +++++++++++++++++++++++++
+ gio/tests/portal-support-utils.h | 2 ++
+ 4 files changed, 35 insertions(+)
+
+diff --git a/gio/tests/portal-support-snap-classic.c b/gio/tests/portal-support-snap-classic.c
+index 8c0ed90c2..5b67865e7 100644
+--- a/gio/tests/portal-support-snap-classic.c
++++ b/gio/tests/portal-support-snap-classic.c
+@@ -66,6 +66,9 @@ tests_teardown (SetupData *setup_data,
+ else
+ g_unsetenv ("SNAP");
+
++ cleanup_snapfiles (setup_data->snap_path);
++ cleanup_snapfiles (setup_data->bin_path);
++
+ g_clear_pointer (&setup_data->old_path, g_free);
+ g_clear_pointer (&setup_data->old_snap, g_free);
+ }
+diff --git a/gio/tests/portal-support-snap.c b/gio/tests/portal-support-snap.c
+index 7dd14d82f..cd904678f 100644
+--- a/gio/tests/portal-support-snap.c
++++ b/gio/tests/portal-support-snap.c
+@@ -67,6 +67,9 @@ tests_teardown (SetupData *setup_data,
+ else
+ g_unsetenv ("SNAP");
+
++ cleanup_snapfiles (setup_data->snap_path);
++ cleanup_snapfiles (setup_data->bin_path);
++
+ g_clear_pointer (&setup_data->old_path, g_free);
+ g_clear_pointer (&setup_data->old_snap, g_free);
+ }
+diff --git a/gio/tests/portal-support-utils.c b/gio/tests/portal-support-utils.c
+index ae7073a3a..b7ee22630 100644
+--- a/gio/tests/portal-support-utils.c
++++ b/gio/tests/portal-support-utils.c
+@@ -26,6 +26,33 @@
+ #include <glib.h>
+ #include <glib/gstdio.h>
+
++
++void
++cleanup_snapfiles (const gchar *path)
++{
++ GDir *dir = NULL;
++ const gchar *entry;
++
++ dir = g_dir_open (path, 0, NULL);
++ if (dir == NULL)
++ {
++ /* Assume it’s a file. Ignore failure. */
++ (void) g_remove (path);
++ return;
++ }
++
++ while ((entry = g_dir_read_name (dir)) != NULL)
++ {
++ gchar *sub_path = g_build_filename (path, entry, NULL);
++ cleanup_snapfiles (sub_path);
++ g_free (sub_path);
++ }
++
++ g_dir_close (dir);
++
++ g_rmdir (path);
++}
++
+ void
+ create_fake_snapctl (const char *path,
+ const char *supported_op)
+diff --git a/gio/tests/portal-support-utils.h b/gio/tests/portal-support-utils.h
+index 40c035b43..defbdcd4e 100644
+--- a/gio/tests/portal-support-utils.h
++++ b/gio/tests/portal-support-utils.h
+@@ -23,6 +23,8 @@
+
+ #include <glib.h>
+
++void cleanup_snapfiles (const gchar *path);
++
+ void create_fake_snap_yaml (const char *snap_path,
+ gboolean is_classic);
+
+--
+2.39.2
+
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/fix-ptest.patch b/meta/recipes-core/glib-2.0/glib-2.0/fix-ptest.patch
deleted file mode 100644
index 1ae98be707..0000000000
--- a/meta/recipes-core/glib-2.0/glib-2.0/fix-ptest.patch
+++ /dev/null
@@ -1,166 +0,0 @@
-gio/tests/portal: Fix test ordering race
-
-When the gnome test runner executes the tests, the test appear to execute in disk
-order. This means it sometimes works and we sometimes see breakage in portal-support-snap
-and portal-support-snap-classic.
-
-The issue is that some tests create config files but some don't. If they run
-in the wrong order, tests see config files they shouldn't and break.
-
-Fix this by deleting the files after each test run, properly cleaning up after
-themselves. There are probably better ways to handle this but this patch should
-at least let us check this is the issue.
-
-I've tried to report upstream but their issue tracker account creation is struggling
-and I can't get my account to work.
-
-Upstream-Status: Pending
-
-Index: glib-2.76.2/gio/tests/portal-support-snap-classic.c
-===================================================================
---- glib-2.76.2.orig/gio/tests/portal-support-snap-classic.c
-+++ glib-2.76.2/gio/tests/portal-support-snap-classic.c
-@@ -89,6 +89,9 @@ test_portal_support_snap_none (SetupData
- g_assert_false (glib_should_use_portal ());
- g_assert_true (glib_network_available_in_sandbox ());
- g_assert_true (glib_has_dconf_access_in_sandbox ());
-+
-+ cleanup_snapfiles (setup->snap_path);
-+ cleanup_snapfiles (setup->bin_path);
- }
-
- static void
-@@ -101,6 +104,9 @@ test_portal_support_snap_all (SetupData
- g_assert_false (glib_should_use_portal ());
- g_assert_true (glib_network_available_in_sandbox ());
- g_assert_true (glib_has_dconf_access_in_sandbox ());
-+
-+ cleanup_snapfiles (setup->snap_path);
-+ cleanup_snapfiles (setup->bin_path);
- }
-
- int
-Index: glib-2.76.2/gio/tests/portal-support-snap.c
-===================================================================
---- glib-2.76.2.orig/gio/tests/portal-support-snap.c
-+++ glib-2.76.2/gio/tests/portal-support-snap.c
-@@ -80,6 +80,8 @@ test_portal_support_snap_no_snapctl (Set
- g_assert_false (glib_should_use_portal ());
- g_assert_false (glib_network_available_in_sandbox ());
- g_assert_false (glib_has_dconf_access_in_sandbox ());
-+
-+ cleanup_snapfiles (setup->snap_path);
- }
-
- static void
-@@ -92,6 +94,9 @@ test_portal_support_snap_none (SetupData
- g_assert_false (glib_should_use_portal ());
- g_assert_false (glib_network_available_in_sandbox ());
- g_assert_false (glib_has_dconf_access_in_sandbox ());
-+
-+ cleanup_snapfiles (setup->snap_path);
-+ cleanup_snapfiles (setup->bin_path);
- }
-
- static void
-@@ -104,6 +109,9 @@ test_portal_support_snap_all (SetupData
- g_assert_true (glib_should_use_portal ());
- g_assert_true (glib_network_available_in_sandbox ());
- g_assert_true (glib_has_dconf_access_in_sandbox ());
-+
-+ cleanup_snapfiles (setup->snap_path);
-+ cleanup_snapfiles (setup->bin_path);
- }
-
- static void
-@@ -116,6 +124,9 @@ test_portal_support_snap_desktop_only (S
- g_assert_true (glib_should_use_portal ());
- g_assert_true (glib_network_available_in_sandbox ());
- g_assert_false (glib_has_dconf_access_in_sandbox ());
-+
-+ cleanup_snapfiles (setup->snap_path);
-+ cleanup_snapfiles (setup->bin_path);
- }
-
- static void
-@@ -128,6 +139,9 @@ test_portal_support_snap_network_only (S
- g_assert_false (glib_should_use_portal ());
- g_assert_true (glib_network_available_in_sandbox ());
- g_assert_false (glib_has_dconf_access_in_sandbox ());
-+
-+ cleanup_snapfiles (setup->snap_path);
-+ cleanup_snapfiles (setup->bin_path);
- }
-
- static void
-@@ -140,6 +154,9 @@ test_portal_support_snap_gsettings_only
- g_assert_false (glib_should_use_portal ());
- g_assert_false (glib_network_available_in_sandbox ());
- g_assert_true (glib_has_dconf_access_in_sandbox ());
-+
-+ cleanup_snapfiles (setup->snap_path);
-+ cleanup_snapfiles (setup->bin_path);
- }
-
- static void
-@@ -182,6 +199,9 @@ test_portal_support_snap_updates_dynamic
- g_assert_false (glib_should_use_portal ());
- g_assert_false (glib_network_available_in_sandbox ());
- g_assert_false (glib_has_dconf_access_in_sandbox ());
-+
-+ cleanup_snapfiles (setup->snap_path);
-+ cleanup_snapfiles (setup->bin_path);
- }
-
- int
-Index: glib-2.76.2/gio/tests/portal-support-utils.c
-===================================================================
---- glib-2.76.2.orig/gio/tests/portal-support-utils.c
-+++ glib-2.76.2/gio/tests/portal-support-utils.c
-@@ -26,6 +26,33 @@
- #include <glib.h>
- #include <glib/gstdio.h>
-
-+
-+void
-+cleanup_snapfiles (const gchar *path)
-+{
-+ GDir *dir = NULL;
-+ const gchar *entry;
-+
-+ dir = g_dir_open (path, 0, NULL);
-+ if (dir == NULL)
-+ {
-+ /* Assume it’s a file. Ignore failure. */
-+ (void) g_remove (path);
-+ return;
-+ }
-+
-+ while ((entry = g_dir_read_name (dir)) != NULL)
-+ {
-+ gchar *sub_path = g_build_filename (path, entry, NULL);
-+ cleanup_snapfiles (sub_path);
-+ g_free (sub_path);
-+ }
-+
-+ g_dir_close (dir);
-+
-+ g_rmdir (path);
-+}
-+
- void
- create_fake_snapctl (const char *path,
- const char *supported_op)
-Index: glib-2.76.2/gio/tests/portal-support-utils.h
-===================================================================
---- glib-2.76.2.orig/gio/tests/portal-support-utils.h
-+++ glib-2.76.2/gio/tests/portal-support-utils.h
-@@ -23,6 +23,8 @@
-
- #include <glib.h>
-
-+void cleanup_snapfiles (const gchar *path);
-+
- void create_fake_snap_yaml (const char *snap_path,
- gboolean is_classic);
-
diff --git a/meta/recipes-core/glib-2.0/glib-2.0_2.76.2.bb b/meta/recipes-core/glib-2.0/glib-2.0_2.76.2.bb
index 7a0ed6b603..6a9a5f359c 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0_2.76.2.bb
+++ b/meta/recipes-core/glib-2.0/glib-2.0_2.76.2.bb
@@ -15,7 +15,7 @@ SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
file://0001-meson-Run-atomics-test-on-clang-as-well.patch \
file://0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch \
file://0001-Avoid-having-g_futex_simple-inadvertently-modify-err.patch \
- file://fix-ptest.patch \
+ file://0001-gio-tests-portal-support-Fix-snap-test-ordering-race.patch \
"
SRC_URI:append:class-native = " file://relocate-modules.patch"