[gtk+] Add testcases for opening display
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] Add testcases for opening display
- Date: Tue, 18 Jan 2011 14:37:23 +0000 (UTC)
commit fe687e760e2e33911dfc16e640b4a112ba245bb2
Author: Matthias Clasen <mclasen redhat com>
Date: Tue Jan 18 09:36:24 2011 -0500
Add testcases for opening display
More precisely, test that we can successfully fail to open
a display...
gdk/tests/Makefile.am | 8 ++++-
gdk/tests/display.c | 74 +++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 80 insertions(+), 2 deletions(-)
---
diff --git a/gdk/tests/Makefile.am b/gdk/tests/Makefile.am
index 5930f4c..5cadc6d 100644
--- a/gdk/tests/Makefile.am
+++ b/gdk/tests/Makefile.am
@@ -24,8 +24,12 @@ gdk_color_SOURCES = gdk-color.c
gdk_color_LDADD = $(progs_ldadd)
TEST_PROGS += encoding
-encoding_SOURCES = encoding.c
-encoding_LDADD = $(progs_ldadd)
+encoding_SOURCES = encoding.c
+encoding_LDADD = $(progs_ldadd)
+
+TEST_PROGS += display
+display_SOURCES = display.c
+display_LDADD = $(progs_ldadd)
CLEANFILES = \
cairosurface.png \
diff --git a/gdk/tests/display.c b/gdk/tests/display.c
new file mode 100644
index 0000000..79fbcfd
--- /dev/null
+++ b/gdk/tests/display.c
@@ -0,0 +1,74 @@
+#include <stdlib.h>
+
+#include <gdk/gdk.h>
+
+static void
+test_unset_display (void)
+{
+ if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDOUT | G_TEST_TRAP_SILENCE_STDERR))
+ {
+ GdkDisplayManager *manager;
+
+ g_unsetenv ("DISPLAY");
+
+ g_assert (!gdk_init_check (NULL, NULL));
+ manager = gdk_display_manager_get ();
+ g_assert (manager != NULL);
+ g_assert (gdk_display_manager_get_default_display (manager) == NULL);
+
+ exit (0);
+ }
+ g_test_trap_assert_passed ();
+
+ if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDOUT | G_TEST_TRAP_SILENCE_STDERR))
+ {
+ g_unsetenv ("DISPLAY");
+
+ gdk_init (NULL, NULL);
+
+ exit (0);
+ }
+ g_test_trap_assert_failed ();
+ g_test_trap_assert_stderr ("*cannot open display*");
+}
+
+static void
+test_bad_display (void)
+{
+ if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDOUT | G_TEST_TRAP_SILENCE_STDERR))
+ {
+ GdkDisplayManager *manager;
+
+ g_setenv ("DISPLAY", "poo", TRUE);
+
+ g_assert (!gdk_init_check (NULL, NULL));
+ manager = gdk_display_manager_get ();
+ g_assert (manager != NULL);
+ g_assert (gdk_display_manager_get_default_display (manager) == NULL);
+
+ exit (0);
+ }
+ g_test_trap_assert_passed ();
+
+ if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDOUT | G_TEST_TRAP_SILENCE_STDERR))
+ {
+ g_setenv ("DISPLAY", "poo", TRUE);
+
+ gdk_init (NULL, NULL);
+
+ exit (0);
+ }
+ g_test_trap_assert_failed ();
+ g_test_trap_assert_stderr ("*cannot open display*");
+}
+
+int
+main (int argc, char *argv[])
+{
+ g_test_init (&argc, &argv, NULL);
+
+ g_test_add_func ("/display/unset-display", test_unset_display);
+ g_test_add_func ("/display/bad-display", test_bad_display);
+
+ return g_test_run ();
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]