From d1eb9c840c11abdfd04185519249de7f55d3c783 Mon Sep 17 00:00:00 2001 From: Philip Withnall Date: Thu, 13 Apr 2023 15:39:37 +0100 Subject: [PATCH] tests: Add type flag tests for interfaces Signed-off-by: Philip Withnall Helps: #252 --- gobject/tests/type-flags.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gobject/tests/type-flags.c b/gobject/tests/type-flags.c index 653cb9b01..bb67f8c03 100644 --- a/gobject/tests/type-flags.c +++ b/gobject/tests/type-flags.c @@ -3,6 +3,42 @@ #include +typedef struct +{ + GTypeInterface g_iface; +} TestInterfaceInterface; + +GType test_interface_get_type (void); +#define TEST_TYPE_INTERFACE test_interface_get_type () +G_DEFINE_INTERFACE (TestInterface, test_interface, G_TYPE_INVALID) + +static void +test_interface_default_init (TestInterfaceInterface *iface) +{ +} + +static void +test_type_flags_interface (void) +{ + g_assert_false (G_TYPE_IS_ABSTRACT (TEST_TYPE_INTERFACE)); + g_assert_false (g_type_test_flags (TEST_TYPE_INTERFACE, G_TYPE_FLAG_ABSTRACT)); + + g_assert_false (G_TYPE_IS_CLASSED (TEST_TYPE_INTERFACE)); + g_assert_false (g_type_test_flags (TEST_TYPE_INTERFACE, G_TYPE_FLAG_CLASSED)); + + g_assert_false (G_TYPE_IS_DEEP_DERIVABLE (TEST_TYPE_INTERFACE)); + g_assert_false (g_type_test_flags (TEST_TYPE_INTERFACE, G_TYPE_FLAG_DEEP_DERIVABLE)); + + g_assert_true (G_TYPE_IS_DERIVABLE (TEST_TYPE_INTERFACE)); + g_assert_true (g_type_test_flags (TEST_TYPE_INTERFACE, G_TYPE_FLAG_DERIVABLE)); + + g_assert_false (G_TYPE_IS_FINAL (TEST_TYPE_INTERFACE)); + g_assert_false (g_type_test_flags (TEST_TYPE_INTERFACE, G_TYPE_FLAG_FINAL)); + + g_assert_false (G_TYPE_IS_INSTANTIATABLE (TEST_TYPE_INTERFACE)); + g_assert_false (g_type_test_flags (TEST_TYPE_INTERFACE, G_TYPE_FLAG_INSTANTIATABLE)); +} + #define TEST_TYPE_FINAL (test_final_get_type()) G_DECLARE_FINAL_TYPE (TestFinal, test_final, TEST, FINAL, GObject) @@ -201,6 +237,7 @@ main (int argc, char *argv[]) g_setenv ("G_ENABLE_DIAGNOSTIC", "1", TRUE); + g_test_add_func ("/type/flags/interface", test_type_flags_interface); g_test_add_func ("/type/flags/final", test_type_flags_final); g_test_add_func ("/type/flags/final/instance-check", test_type_flags_final_instance_check); g_test_add_func ("/type/flags/deprecated", test_type_flags_deprecated);