summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2023-01-17 16:34:49 +0100
committerThomas Haller <thaller@redhat.com>2023-01-19 08:56:20 +0100
commite435c1b07f980ac3044c62272a71454ef5903d3c (patch)
tree0b760459fb3a82fceb3d1e1f497122875c4070ff
parentfe99d462ec65143c22484e49c6fea0a8cd89212f (diff)
glib-aux/tests: add nmtst_keeper_add() test helper
-rw-r--r--src/libnm-glib-aux/nm-test-utils.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/libnm-glib-aux/nm-test-utils.h b/src/libnm-glib-aux/nm-test-utils.h
index 5196c9a076..48ead7e75b 100644
--- a/src/libnm-glib-aux/nm-test-utils.h
+++ b/src/libnm-glib-aux/nm-test-utils.h
@@ -3069,6 +3069,27 @@ nmtst_ip_address_new(int addr_family, const char *str)
/*****************************************************************************/
+static inline gpointer
+nmtst_keeper_add(GPtrArray **p_arr, gpointer ptr)
+{
+ if (!p_arr) {
+ /* If not GPtrArray in/out argument is given, track the pointer
+ * via _nmtst_testdata_track_add(), which means it stays alive
+ * until the end of the test. */
+ _nmtst_testdata_track_add(ptr, g_free);
+ } else {
+ if (!*p_arr)
+ *p_arr = g_ptr_array_new_with_free_func(g_free);
+
+ g_ptr_array_add(*p_arr, ptr);
+ }
+ return ptr;
+}
+
+#define nmtst_keeper_printf(p_ptr, ...) nmtst_keeper_add((p_ptr), g_strdup_printf(__VA_ARGS__))
+
+/*****************************************************************************/
+
#define nmtst_gbytes_from_arr(...) \
({ \
const guint8 _arr[] = {__VA_ARGS__}; \