[gobject-introspection] WarnLib: New library for testing API that emits warnings



commit 97b30ae5e77d5e36d127d02b247d6d41b8e1c8c3
Author: Colin Walters <walters verbum org>
Date:   Sun Dec 2 12:15:53 2012 -0500

    WarnLib: New library for testing API that emits warnings
    
    Both GIMarshallingTests and Regress right now use --warn-error; but
    in some cases (e.g. GErrors without a corresponding enum), we still
    want bindings to support the functionality.
    
    So add this new library where we can add C API that emits
    introspection warnings.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=689488

 tests/scanner/Makefile.am |   14 +++++++++++++-
 tests/scanner/regress.c   |   14 ++++++++++++++
 tests/scanner/warnlib.c   |   20 ++++++++++++++++++++
 tests/scanner/warnlib.h   |   13 +++++++++++++
 4 files changed, 60 insertions(+), 1 deletions(-)
---
diff --git a/tests/scanner/Makefile.am b/tests/scanner/Makefile.am
index 9692355..01c4ea5 100644
--- a/tests/scanner/Makefile.am
+++ b/tests/scanner/Makefile.am
@@ -14,6 +14,7 @@ check_LTLIBRARIES = \
 	libgtkfrob.la \
 	libgettype.la \
 	libregress.la \
+	libwarnlib.la \
 	$(NULL)
 
 AM_CPPFLAGS = -I$(top_srcdir)/girepository
@@ -36,10 +37,14 @@ libutility_la_SOURCES = $(srcdir)/utility.c $(srcdir)/utility.h
 libgtkfrob_la_SOURCES = $(srcdir)/gtkfrob.c $(srcdir)/gtkfrob.h
 libregress_la_SOURCES = $(srcdir)/regress.c $(srcdir)/regress.h
 libregress_la_LIBADD = $(GIO_LIBS) $(CAIRO_LIBS)
+libwarnlib_la_CFLAGS = $(AM_CFLAGS)
+libwarnlib_la_SOURCES = $(srcdir)/warnlib.c $(srcdir)/warnlib.h
+libwarnlib_la_LIBADD = $(GIO_LIBS)
+libwarnlib_la_LDFLAGS = -export-symbols-regex '^warnlib_' -no-undefined
 libgettype_la_SOURCES = $(srcdir)/gettype.c $(srcdir)/gettype.h
 
 testsdir = $(datadir)/gobject-introspection-1.0/tests
-tests_DATA = $(libregress_la_SOURCES)
+tests_DATA = $(libregress_la_SOURCES) $(libwarnlib_la_SOURCES)
 
 libregress_la_CFLAGS = $(AM_CFLAGS) $(CAIRO_CFLAGS)
 libregress_la_LDFLAGS = $(AM_LDFLAGS)
@@ -72,6 +77,13 @@ Regress_1_0_gir_FILES = $(libregress_la_SOURCES)
 Regress_1_0_gir_SCANNERFLAGS = --c-include="regress.h" --warn-error
 GIRS += Regress-1.0.gir
 
+WarnLib-1.0.gir: $(top_builddir)/Gio-2.0.gir libwarnlib.la
+WarnLib_1_0_gir_LIBS = libwarnlib.la
+WarnLib_1_0_gir_INCLUDES = Gio-2.0
+WarnLib_1_0_gir_FILES = $(libwarnlib_la_SOURCES)
+WarnLib_1_0_gir_SCANNERFLAGS = --c-include="warnlib.h"
+GIRS += WarnLib-1.0.gir
+
 Annotation-1.0.gir: Utility-1.0.gir libannotation.la
 Annotation_1_0_gir_PACKAGES = gobject-2.0
 Annotation_1_0_gir_LIBS = libannotation.la
diff --git a/tests/scanner/regress.c b/tests/scanner/regress.c
index b7526bf..27791d7 100644
--- a/tests/scanner/regress.c
+++ b/tests/scanner/regress.c
@@ -1656,6 +1656,20 @@ regress_atest_error_quark (void)
   return g_quark_from_static_string ("regress-atest-error");
 }
 
+GQuark
+regress_unpaired_error_quark (void)
+{
+  return g_quark_from_static_string ("regress-unpaired-error");
+}
+
+gboolean
+regress_throw_unpaired (GError **error)
+{
+  g_set_error_literal (error, regress_unpaired_error_quark (), 0,
+                       "Unpaired error");
+  return FALSE;
+}
+
 /* structures */
 
 /**
diff --git a/tests/scanner/warnlib.c b/tests/scanner/warnlib.c
new file mode 100644
index 0000000..4fc8515
--- /dev/null
+++ b/tests/scanner/warnlib.c
@@ -0,0 +1,20 @@
+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
+
+#include "config.h"
+
+#include "warnlib.h"
+
+GQuark
+warnlib_unpaired_error_quark (void)
+{
+  return g_quark_from_static_string ("warnlib-unpaired-error");
+}
+
+gboolean
+warnlib_throw_unpaired (GError **error)
+{
+  g_set_error_literal (error, warnlib_unpaired_error_quark (), 0,
+                       "Unpaired error");
+  return FALSE;
+}
+
diff --git a/tests/scanner/warnlib.h b/tests/scanner/warnlib.h
new file mode 100644
index 0000000..8aca901
--- /dev/null
+++ b/tests/scanner/warnlib.h
@@ -0,0 +1,13 @@
+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
+
+#ifndef __WARNLIB_H__
+#define __WARNLIB_H__
+
+#include <gio/gio.h>
+
+#define WARNLIB_UNPAIRED_ERROR (warnlib_unpaired_error_quark ())
+GQuark warnlib_unpaired_error_quark (void);
+
+gboolean warnlib_throw_unpaired (GError **error);
+
+#endif



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]