X-Git-Url: http://git.draconx.ca/gitweb/gob-dx.git/blobdiff_plain/154af5b3783df5a53759b700db95b88a1e9365ab..ee1d01180583f7a4940bce0d1bda85c8379b6b4b:/testsuite.at diff --git a/testsuite.at b/testsuite.at index 52dbd98..b28fd93 100644 --- a/testsuite.at +++ b/testsuite.at @@ -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