Index: tests/everything/everything.c
===================================================================
--- tests/everything/everything.c	(revision 994)
+++ tests/everything/everything.c	(working copy)
@@ -684,3 +684,32 @@
 {
   return x;
 }
+
+/* test setting and calling callback functions */
+
+static TestCallbackHandler *handler = NULL;
+
+void
+test_set_callback_function (TestCallbackFn callback, gpointer user_data)
+{
+  g_return_if_fail (callback != NULL);
+
+  handler = g_new0 (TestCallbackHandler, 1);
+  handler->callback  = callback;
+  handler->user_data = user_data;
+}
+
+void
+test_clear_callback_function (void)
+{
+  g_free (handler);
+  handler = NULL;
+}
+
+void
+test_call_callback_function (void)
+{
+  g_return_if_fail (handler != NULL);
+
+  (*handler->callback) (handler->user_data);
+}
Index: tests/everything/everything.h
===================================================================
--- tests/everything/everything.h	(revision 994)
+++ tests/everything/everything.h	(working copy)
@@ -183,4 +183,16 @@
 TestObj*   test_obj_new_from_file (const char *x, GError **error);
 double     test_obj_static_method (int x);
 
+typedef void (*TestCallbackFn) (gpointer user_data);
+typedef struct _TestCallbackHandler TestCallbackHandler;
+struct _TestCallbackHandler
+{
+  TestCallbackFn callback;
+  gpointer       user_data;
+};  
+void test_set_callback_function   (TestCallbackFn callback,
+                                   gpointer data);
+void test_clear_callback_function (void);
+void test_call_callback_function  (void);
+
 #endif /* __GITESTTYPES_H__ */
