summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/reference/glib/glib-sections.txt1
-rw-r--r--glib/gtestutils.c20
-rw-r--r--glib/gtestutils.h4
-rw-r--r--glib/tests/testing.c15
4 files changed, 40 insertions, 0 deletions
diff --git a/docs/reference/glib/glib-sections.txt b/docs/reference/glib/glib-sections.txt
index d20f419af..35ba9af4d 100644
--- a/docs/reference/glib/glib-sections.txt
+++ b/docs/reference/glib/glib-sections.txt
@@ -3508,6 +3508,7 @@ GTestDataFunc
g_test_add_data_func
g_test_add_data_func_full
g_test_add
+g_test_get_path
GTestFileType
g_test_build_filename
diff --git a/glib/gtestutils.c b/glib/gtestutils.c
index be6b68e56..473e1b677 100644
--- a/glib/gtestutils.c
+++ b/glib/gtestutils.c
@@ -4230,3 +4230,23 @@ g_test_get_filename (GTestFileType file_type,
return result;
}
+
+/**
+ * g_test_get_path:
+ *
+ * Gets the test path for the test currently being run.
+ *
+ * In essence, it will be the same string passed as the first argument to
+ * e.g. g_test_add() when the test was added.
+ *
+ * This function returns a valid string only within a test function.
+ *
+ * Returns: the test path for the test currently being run
+ *
+ * Since: 2.68
+ **/
+const char *
+g_test_get_path (void)
+{
+ return test_run_name;
+}
diff --git a/glib/gtestutils.h b/glib/gtestutils.h
index 780b163b9..041143936 100644
--- a/glib/gtestutils.h
+++ b/glib/gtestutils.h
@@ -338,6 +338,10 @@ void g_test_add_data_func_full (const char *testpath,
GTestDataFunc test_func,
GDestroyNotify data_free_func);
+/* tell about currently run test */
+GLIB_AVAILABLE_IN_2_68
+const char * g_test_get_path (void);
+
/* tell about failure */
GLIB_AVAILABLE_IN_2_30
void g_test_fail (void);
diff --git a/glib/tests/testing.c b/glib/tests/testing.c
index 29551b9d2..7faa7b5ec 100644
--- a/glib/tests/testing.c
+++ b/glib/tests/testing.c
@@ -843,6 +843,18 @@ test_subprocess_timed_out (void)
g_assert_true (g_test_trap_reached_timeout ());
}
+static void
+test_path_first (void)
+{
+ g_assert_cmpstr (g_test_get_path (), ==, "/misc/path/first");
+}
+
+static void
+test_path_second (void)
+{
+ g_assert_cmpstr (g_test_get_path (), ==, "/misc/path/second");
+}
+
static const char *argv0;
static void
@@ -1595,6 +1607,9 @@ main (int argc,
g_test_add_func ("/misc/incomplete", test_incomplete);
g_test_add_func ("/misc/timeout", test_subprocess_timed_out);
+ g_test_add_func ("/misc/path/first", test_path_first);
+ g_test_add_func ("/misc/path/second", test_path_second);
+
g_test_add_func ("/tap", test_tap);
g_test_add_func ("/tap/summary", test_tap_summary);