[glib/benzea/systemd-transient-scope: 398/400] tests: Use file monitoring to wait for file creation
- From: Benjamin Berg <bberg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib/benzea/systemd-transient-scope: 398/400] tests: Use file monitoring to wait for file creation
- Date: Tue, 21 Dec 2021 14:20:40 +0000 (UTC)
commit c7519e1454a98dd6e6adcc8ec627ab3f9f063199
Author: Benjamin Berg <bberg redhat com>
Date: Tue Dec 21 15:07:08 2021 +0100
tests: Use file monitoring to wait for file creation
Doing this is faster and also means that the mainloop will be iterated
while the test is waiting for file creation. The mainloop iteration is
necessary as GLib may need to wait for a DBus reply from systemd before
the application is executed.
gio/tests/desktop-app-info.c | 17 +++++------------
1 file changed, 5 insertions(+), 12 deletions(-)
---
diff --git a/gio/tests/desktop-app-info.c b/gio/tests/desktop-app-info.c
index 4a5de6017..a5019459a 100644
--- a/gio/tests/desktop-app-info.c
+++ b/gio/tests/desktop-app-info.c
@@ -324,20 +324,13 @@ wait_for_file (const gchar *want_this,
const gchar *but_not_this,
const gchar *or_this)
{
- guint retries = 600;
+ GFileMonitor *monitor = g_file_monitor (g_file_new_for_path (want_this),
+ G_FILE_MONITOR_NONE, NULL, NULL);
- /* I hate time-based conditions in tests, but this will wait up to one
- * whole minute for "touch file" to finish running. I think it should
- * be OK.
- *
- * 600 * 100ms = 60 seconds.
- */
while (access (want_this, F_OK) != 0)
- {
- g_usleep (100000); /* 100ms */
- g_assert_cmpuint (retries, >, 0);
- retries--;
- }
+ g_main_context_iteration (NULL, TRUE);
+
+ g_object_unref (monitor);
g_assert_cmpuint (access (but_not_this, F_OK), !=, 0);
g_assert_cmpuint (access (or_this, F_OK), !=, 0);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]