summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Withnall <pwithnall@endlessos.org>2023-04-13 15:39:37 +0100
committerPhilip Withnall <pwithnall@endlessos.org>2023-04-13 15:39:37 +0100
commitd1eb9c840c11abdfd04185519249de7f55d3c783 (patch)
tree1d5d6762bba5ef8220a3fc97a3b7d6858bc5d6cc
parent783f1b8640089f41af5862cb8e6ab092efe2b26f (diff)
downloadglib-d1eb9c840c11abdfd04185519249de7f55d3c783.tar.gz
tests: Add type flag tests for interfaces
Signed-off-by: Philip Withnall <pwithnall@endlessos.org> Helps: #252
-rw-r--r--gobject/tests/type-flags.c37
1 files changed, 37 insertions, 0 deletions
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 <glib-object.h>
+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);