checks: check for enum types not class_ref'ed in gst_init() in 'make check'
authorTim-Philipp Müller <tim.muller@collabora.co.uk>
Tue, 12 May 2009 20:00:15 +0000 (21:00 +0100)
committerTim-Philipp Müller <tim.muller@collabora.co.uk>
Tue, 12 May 2009 20:00:15 +0000 (21:00 +0100)
Makefile.am

index 58ee3ed..20527a5 100644 (file)
@@ -101,7 +101,25 @@ win32-update:
        cp $(top_builddir)/win32/common/config.h-new \
                $(top_srcdir)/win32/common/config.h
 
+check-enum-gettypes: $(top_builddir)/gst/gstenumtypes.h
+       echo 'Checking if all enum and flag _get_type() funcs are inited in gst_init()';                         \
+       FUNCS=`grep '_get_type (' gst/gstenumtypes.h | sed -e 's/^.*gst_/gst_/' -e 's/_get_type.*$$/_get_type/'`;\
+       MISSING_FUNCS='';                                                                                        \
+       for f in $$FUNCS; do                                                                                     \
+         INIT_LINE=`grep $$f gst/*.c | grep g_type_class_ref`;                                                  \
+         if test "x$$INIT_LINE" = "x"; then                                                                     \
+           MISSING_FUNCS="$$MISSING_FUNCS $$f";                                                                 \
+         fi;                                                                                                    \
+       done;                                                                                                    \
+       if test "x$$MISSING_FUNCS" != "x"; then                                                                  \
+         echo "FIXME: please add to the following to gst/gst.c init_post():";                                   \
+         for f in $$MISSING_FUNCS; do                                                                           \
+           echo "  g_type_class_ref ($$f ());";                                                                 \
+         done;                                                                                                  \
+         exit 1;                                                                                                \
+       fi
+
 include $(top_srcdir)/common/coverage/lcov.mak
 
-check: check-exports
+check: check-exports check-enum-gettypes