gtestutils: add g_test_add_data_func_full()

Like g_test_add_data_func(), but includes a GDestroyNotify for the
test data.

https://bugzilla.gnome.org/show_bug.cgi?id=682560
This commit is contained in:
Dan Winship 2012-08-23 12:29:36 -04:00
parent 2427378223
commit 0c0cdfd9c4
4 changed files with 37 additions and 0 deletions

View File

@ -2883,6 +2883,7 @@ GTestFunc
g_test_add_func
GTestDataFunc
g_test_add_data_func
g_test_add_data_func_full
g_test_add
g_test_fail

View File

@ -1184,6 +1184,7 @@ g_assertion_message_expr
g_assertion_message_error
g_strcmp0
g_test_add_data_func
g_test_add_data_func_full
g_test_add_func
g_test_add_vtable
g_test_assert_expected_messages_internal

View File

@ -1510,9 +1510,37 @@ g_test_add_data_func (const char *testpath,
g_return_if_fail (testpath != NULL);
g_return_if_fail (testpath[0] == '/');
g_return_if_fail (test_func != NULL);
g_test_add_vtable (testpath, 0, test_data, NULL, (GTestFixtureFunc) test_func, NULL);
}
/**
* g_test_add_data_func_full:
* @testpath: /-separated test case path name for the test.
* @test_data: Test data argument for the test function.
* @test_func: The test function to invoke for this test.
* @data_free_func: #GDestroyNotify for @test_data.
*
* Create a new test case, as with g_test_add_data_func(), but freeing
* @test_data after the test run is complete.
*
* Since: 2.34
*/
void
g_test_add_data_func_full (const char *testpath,
gpointer test_data,
GTestDataFunc test_func,
GDestroyNotify data_free_func)
{
g_return_if_fail (testpath != NULL);
g_return_if_fail (testpath[0] == '/');
g_return_if_fail (test_func != NULL);
g_test_add_vtable (testpath, 0, test_data, NULL,
(GTestFixtureFunc) test_func,
(GTestFixtureFunc) data_free_func);
}
/**
* g_test_create_suite:
* @suite_name: a name for the suite

View File

@ -108,6 +108,13 @@ void g_test_add_func (const char *testpath,
void g_test_add_data_func (const char *testpath,
gconstpointer test_data,
GTestDataFunc test_func);
GLIB_AVAILABLE_IN_2_34
void g_test_add_data_func_full (const char *testpath,
gpointer test_data,
GTestDataFunc test_func,
GDestroyNotify data_free_func);
/* tell about failure */
void g_test_fail (void);