← Back to team overview

ayatana-commits team mailing list archive

[Merge] lp:~lifeless/notify-osd/tests into lp:notify-osd

 

Robert Collins has proposed merging lp:~lifeless/notify-osd/tests into lp:notify-osd.

    Requested reviews:
    Notify OSD Developers (notify-osd-developers)


Skip interactive tests when UNATTENDED is set to a non-empty string.

Make tests all pass again.

Add xvfb support which gets us some way to headless testing.

The test suite appears to use the currently running notify daemon though, I'm not quite sure of the best way to approach this; will discuss that on the bug tracker.
-- 
https://code.launchpad.net/~lifeless/notify-osd/tests/+merge/15182
Your team ayatana-commits is subscribed to branch lp:notify-osd.
=== added file 'test-support.am'
--- test-support.am	1970-01-01 00:00:00 +0000
+++ test-support.am	2009-11-24 04:55:22 +0000
@@ -0,0 +1,84 @@
+# GTK+ - The GIMP Toolkit
+
+GTESTER        = gtester		# in $PATH for non-GLIB packages
+GTESTER_REPORT = gtester-report		# in $PATH for non-GLIB packages
+
+# initialize variables for unconditional += appending
+EXTRA_DIST =
+TEST_PROGS =
+
+### testing rules
+
+# Xvfb based test rules
+XVFB = Xvfb -ac -noreset -screen 0 800x600x16
+XIDS = 101 102 103 104 105 106 107 197 199 211 223 227 293 307 308 309 310 311 \
+   491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 \
+   991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 \
+  1008 1009 4703 4721 4723 4729 4733 4751 9973 9974 9975 9976 9977 9978 9979 \
+  9980 9981 9982 9983 9984 9985 9986 9987 9988 9989 9990 9991 9992 9993 9994 \
+  9995 9996 9997 9998 9999
+SKIP_GDKTARGET = \
+	test "$(gdktarget)" != "x11" \
+	&& echo "Gtk+Tests:INFO: Skipping GUI tests for non-X11 target."
+XVFB_START = \
+	${XVFB} -help 2>/dev/null 1>&2 \
+	&& XID=`for id in $(XIDS) ; do test -e /tmp/.X$$id-lock || { echo $$id; exit 0; }; done; exit 1` \
+	&& { ${XVFB} :$$XID -screen 0 800x600x16 -nolisten tcp -auth /dev/null >/dev/null 2>&1 & \
+	       trap "kill -15 $$! " 0 HUP INT QUIT TRAP USR1 PIPE TERM ; } \
+	|| { echo "Gtk+Tests:ERROR: Failed to start Xvfb environment for X11 target tests."; exit 1; } \
+	&& DISPLAY=:$$XID && export DISPLAY
+# call as: $(XVFB_START) && someprogram
+
+check-local: test
+
+# test: run all tests in cwd and subdirs
+test:	${TEST_PROGS}
+	@test -z "${TEST_PROGS}" || { \
+	  $(XVFB_START) && { set -e; ${GTESTER} --verbose ${TEST_PROGS}; }; \
+	}
+	@ for subdir in $(SUBDIRS) ; do \
+	    test "$$subdir" = "." -o "$$subdir" = "po" -o "$$subdir" = "po-properties" || \
+	    ( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \
+	  done
+# test-report: run tests in subdirs and generate report
+# perf-report: run tests in subdirs with -m perf and generate report
+# full-report: like test-report: with -m perf and -m slow
+test-report perf-report full-report:	${TEST_PROGS}
+	@ ignore_logdir=true ; \
+	  if test -z "$$GTESTER_LOGDIR" ; then \
+	    GTESTER_LOGDIR=`mktemp -d "\`pwd\`/.testlogs-XXXXXX"`; export GTESTER_LOGDIR ; \
+	    ignore_logdir=false ; \
+	  fi ; \
+	  for subdir in $(SUBDIRS) ; do \
+	    test "$$subdir" = "." -o "$$subdir" = "po" -o "$$subdir" = "po-properties" || \
+	    ( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \
+	  done ; \
+	  $(SKIP_GDKTARGET) || test -z "${TEST_PROGS}" || { \
+	    case $@ in \
+	    test-report) test_options="-k";; \
+	    perf-report) test_options="-k -m=perf";; \
+	    full-report) test_options="-k -m=perf -m=slow";; \
+	    esac ; \
+	    $(XVFB_START) && { \
+	      set -e; \
+	      if test -z "$$GTESTER_LOGDIR" ; then \
+	        ${GTESTER} --verbose $$test_options -o test-report.xml ${TEST_PROGS} ; \
+	      elif test -n "${TEST_PROGS}" ; then \
+	        ${GTESTER} --verbose $$test_options -o `mktemp "$$GTESTER_LOGDIR/log-XXXXXX"` ${TEST_PROGS} ; \
+	      fi ; \
+	    }; \
+	  }; \
+	  $$ignore_logdir || { \
+	    echo '<?xml version="1.0"?>' > $@.xml ; \
+	    echo '<report-collection>'  >> $@.xml ; \
+	    for lf in `ls -L "$$GTESTER_LOGDIR"/.` ; do \
+	      sed '1,1s/^<?xml\b[^>?]*?>//' <"$$GTESTER_LOGDIR"/"$$lf" >> $@.xml ; \
+	    done ; \
+	    echo >> $@.xml ; \
+	    echo '</report-collection>' >> $@.xml ; \
+	    rm -rf "$$GTESTER_LOGDIR"/ ; \
+	    ${GTESTER_REPORT} --version 2>/dev/null 1>&2 ; test "$$?" != 0 || ${GTESTER_REPORT} $@.xml >$@.html ; \
+	  }
+.PHONY: test test-report perf-report full-report
+# run make test as part of make check
+check-local: test

=== modified file 'tests/Makefile.am'
--- tests/Makefile.am	2009-09-29 15:48:24 +0000
+++ tests/Makefile.am	2009-11-24 04:55:22 +0000
@@ -1,3 +1,5 @@
+include ../test-support.am
+
 noinst_PROGRAMS = test-modules			\
 		  test-timeline			\
 		  test-timeline-dup-frames	\
@@ -10,8 +12,7 @@
 		  test-grow-bubble		\
 		  test-scroll-text
 
-check_PROGRAMS = test-modules
-TESTS = test-modules
+TEST_PROGS += test-modules
 
 GCOV_CFLAGS = -fprofile-arcs -ftest-coverage
 
@@ -182,8 +183,6 @@
 
 check-valgrind:
 	$(MAKE) $(AM_MAKEFLAGS) check G_SLICE=always-malloc G_DEBUG=gc-friendly TESTS_ENVIRONMENT='$(OLD_ENVIRONMENT) $(top_builddir)/libtool --mode=execute valgrind $(VALGRIND_FLAGS)' 2>&1 | tee valgrind-log
-test: test-modules
-	gtester -o=test-modules.xml -k ./test-modules
 
 i18n: test-modules
 	gtester --verbose -p=/i18n -k ./test-modules

=== modified file 'tests/test-text-filtering.c'
--- tests/test-text-filtering.c	2009-10-01 08:43:26 +0000
+++ tests/test-text-filtering.c	2009-11-24 04:55:22 +0000
@@ -69,8 +69,8 @@
 		{ "<tt>Testing tag</tt>",                          "Testing tag"                             },
 		{ "<html>Surrounded by html</html>",               "Surrounded by html"                      },
 		{ "<qt>Surrounded by qt</qt>",                     "Surrounded by qt"                        },
-		{ "First line  <br dumb> \r \n Second line",       "First line Second line"                  },
-		{ "First line\n<br /> <br>\n2nd line\r\n3rd line", "First line 2nd line 3rd line"            },
+		{ "First line  <br dumb> \r \n Second line",       "First line\nSecond line"                  },
+		{ "First line\n<br /> <br>\n2nd line\r\n3rd line", "First line\n2nd line\n3rd line"            },
 		{ NULL, NULL }
 	};
 

=== modified file 'tests/test-withlib.c'
--- tests/test-withlib.c	2009-09-09 07:46:16 +0000
+++ tests/test-withlib.c	2009-11-24 04:55:22 +0000
@@ -204,6 +204,9 @@
 test_withlib_actions (void)
 {
 	NotifyNotification *n1;
+	const gchar *unattended = g_getenv("UNATTENDED");
+	if (unattended && unattended[0] != '\0')
+	  return;
 
 	n1 = notify_notification_new ("Notification with an action",
 				      "You should see that in a dialog box. Click the 'Action' button for the test to succeed.",


Follow ups