From 23da6bade053463a823bbfc4520b71a4ade2b84b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Wed, 25 Jan 2023 16:06:06 +0100 Subject: [PATCH] {glib,gio}/cxx: Add more tests for C++ inline funcs These could behave differently in C++ so let's ensure this is not the case. --- gio/tests/cxx.cpp | 45 ++++++++++++++++++++++++++++++++++++++++++--- glib/tests/cxx.cpp | 28 ++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+), 3 deletions(-) diff --git a/gio/tests/cxx.cpp b/gio/tests/cxx.cpp index 60d295b19..4af7b3b5f 100644 --- a/gio/tests/cxx.cpp +++ b/gio/tests/cxx.cpp @@ -21,8 +21,47 @@ #include -int -main () +static void +test_name (void) { - return 0; + GTask *task = NULL; + char *orig = g_strdup ("some task"); + + task = g_task_new (NULL, NULL, NULL, NULL); + (g_task_set_name) (task, orig); + g_assert_cmpstr (g_task_get_name (task), ==, "some task"); + + (g_task_set_name) (task, "some other name"); + g_assert_cmpstr (g_task_get_name (task), ==, "some other name"); + + g_clear_object (&task); + g_free (orig); +} + +static void +test_name_macro_wrapper (void) +{ + GTask *task = NULL; + char *orig = g_strdup ("some task"); + + task = g_task_new (NULL, NULL, NULL, NULL); + g_task_set_name (task, orig); + g_assert_cmpstr (g_task_get_name (task), ==, "some task"); + + g_task_set_name (task, "some other name"); + g_assert_cmpstr (g_task_get_name (task), ==, "some other name"); + + g_clear_object (&task); + g_free (orig); +} + +int +main (int argc, char **argv) +{ + g_test_init (&argc, &argv, NULL); + + g_test_add_func ("/gtask/name", test_name); + g_test_add_func ("/gtask/name/macro-wrapper", test_name_macro_wrapper); + + return g_test_run (); } diff --git a/glib/tests/cxx.cpp b/glib/tests/cxx.cpp index 8616a18db..abd8a8d67 100644 --- a/glib/tests/cxx.cpp +++ b/glib/tests/cxx.cpp @@ -349,6 +349,30 @@ test_strdup_macro (void) g_free (str); } +static void +test_str_has_prefix (void) +{ + g_assert_true ((g_str_has_prefix) ("C++ is cool!", "C++")); +} + +static void +test_str_has_prefix_macro (void) +{ + g_assert_true (g_str_has_prefix ("C++ is cool!", "C++")); +} + +static void +test_str_has_suffix (void) +{ + g_assert_true ((g_str_has_suffix) ("C++ is cool!", "cool!")); +} + +static void +test_str_has_suffix_macro (void) +{ + g_assert_true (g_str_has_suffix ("C++ is cool!", "cool!")); +} + static void test_string_append (void) { @@ -473,6 +497,10 @@ main (int argc, char *argv[]) g_test_add_func ("/C++/str-equal", test_str_equal); g_test_add_func ("/C++/strdup", test_strdup); g_test_add_func ("/C++/strdup/macro", test_strdup_macro); + g_test_add_func ("/C++/str-has-prefix", test_str_has_prefix); + g_test_add_func ("/C++/str-has-prefix/macro", test_str_has_prefix_macro); + g_test_add_func ("/C++/str-has-suffix", test_str_has_suffix); + g_test_add_func ("/C++/str-has-suffix/macro", test_str_has_suffix_macro); g_test_add_func ("/C++/string-append", test_string_append); return g_test_run ();