]> git.draconx.ca Git - gob-dx.git/blobdiff - testsuite.at
Minor testsuite cleanup.
[gob-dx.git] / testsuite.at
index 52dbd98cb649a04414ea8261a3f263b08375b4ec..b28fd93535c6d8aad3d974c323516df7a02b6312 100644 (file)
@@ -16,6 +16,39 @@ dnl Same as TEST_COMPILE_GOBJECT, except that the C++ compiler is used.
 m4_define([TEST_COMPILEXX_GOBJECT], [AT_CHECK([$HAVE_GOBJECT || exit 77
 $CXX $CPPFLAGS $CXXFLAGS $LIBGOBJECT_CFLAGS -c $1], m4_shift($@))])
 
+dnl TEST_CLASSNAME_REPLACE_SEP(Class:Name, separator)
+dnl
+dnl Convert the components of Class:Name to lower case, and join them
+dnl together with the given separator.  The result is a quoted string.
+m4_define([TEST_CLASSNAME_REPLACE_SEP],
+  [m4_join([$2], m4_unquote(m4_split(m4_tolower([$1]), [:])))])
+
+dnl TEST_TYPE_MODULE(Class:Name)
+dnl Create a GTypeModule (Class:Name:Mod) which registers the dynamic
+dnl type indiciated by Class:Name.
+m4_define([TEST_TYPE_MODULE],
+[TEST_TYPE_MODULE_([$1],
+  TEST_CLASSNAME_REPLACE_SEP([$1], [_]),
+  TEST_CLASSNAME_REPLACE_SEP([$1], [-]))])
+
+m4_define([TEST_TYPE_MODULE_],
+[AT_KEYWORDS([dynamic])dnl
+
+AT_DATA([$3-mod.gob], [[%{
+#include "$3.h"
+%}
+class $1:Mod from G:Type:Module
+{
+  override (G:Type:Module) gboolean load(G:Type:Module *m)
+  {
+    $2_register_type(m);
+    return TRUE;
+  }
+}
+]])
+AT_CHECK([gob2 $3-mod.gob])
+TEST_COMPILE_GOBJECT([$3-mod.c], [0], [], [ignore])])
+
 AT_INIT
 AT_COLOR_TESTS