28 Commits

Author SHA1 Message Date
Ryan Lortie
01cae84e47 Bug 578295 - gtester has a race condition
Deal with the race in GMainLoop by installing a do-nothing timeout.
2010-08-07 19:59:36 -04:00
Cody Russell
04d83e8e50 gtester should fail even if -k is passed 2009-11-23 07:48:14 -06:00
Matthias Clasen
a5aadf0914 Bug 526619 – make test-report crash
* glib/gtester.c: Allocate enough space for argv. Patch by
         Hiroyuki Ikezoe


svn path=/trunk/; revision=6832
2008-04-08 02:22:37 +00:00
Matthias Clasen
6bbef67ad6 Don't use ARG_MAX. (#522335, patch by Sebastian Dröge)
2008-03-30  Matthias Clasen  <mclasen@redhat.com>

        * glib/gtester.c: Don't use ARG_MAX.  (#522335, patch by
        Sebastian Dröge)



svn path=/trunk/; revision=6782
2008-03-31 04:22:55 +00:00
Matthias Clasen
da0e7e81c1 /bin/ksh can't handle a for-loop with no arguments, so add a "." for when
2008-02-09  Matthias Clasen <mclasen@redhat.com>

        * Makefile.decl: /bin/ksh can't handle a for-loop with no
        arguments, so add a "." for when $(SUBDIRS) is empty.

        * glib/tests/option-context.c:
        * glib/tests/testing.c:
        * gthread/gthread-posix.c:
        * tets/testingbase64.c:
        * glib/gtester.c:
        * glib/gsequence.c: Portability fixes.  (#515154)



svn path=/trunk/; revision=6487
2008-02-10 04:41:25 +00:00
Matthias Clasen
c53134b57c Bring up to GLib coding standards: remove C99 comments, trailing commas in
2007-12-21  Matthias Clasen  <mclasne@redhat.com>

        * glib/gtestutils.h: Bring up to GLib coding standards: remove
        C99 comments, trailing commas in enumerations and extra ; after
        G_BEGIN/END_DECLS. Among other things, this makes xulrunner build
        against GLib 2.15.

        * glib/gtester.c: More of the same


svn path=/trunk/; revision=6185
2007-12-21 13:58:42 +00:00
20:30:18 Tim Janik
aeeb80baf6 capture g_log() messages and send to gtester. also, send assertion
2007-12-19 20:30:18  Tim Janik  <timj@imendio.com>

        * glib/gtestutils.c: capture g_log() messages and send to gtester.
        also, send assertion messages to gtester.

        * glib/gtester.c: add error messages to output log file.
        force child poll loop to abort if waitpid() signaled child exit,
        eventhough the child's report file descriptor wasn't closed.



svn path=/trunk/; revision=6163
2007-12-19 19:28:55 +00:00
13:29:00 Tim Janik
8844df9101 detect non-blocking fd EOF by read()==0 following poll(), needed on MacOS.
2007-12-06 13:29:00  Tim Janik  <timj@imendio.com>

        * glib/gtester.c (child_report_cb): detect non-blocking fd EOF
        by read()==0 following poll(), needed on MacOS.



svn path=/trunk/; revision=6059
2007-12-06 12:28:25 +00:00
17:58:18 Tim Janik
ae2157fa45 added -m=thorough support to gtester.
2007-12-05 17:58:18  Tim Janik  <timj@imendio.com>

        * glib/gtester.c: added -m=thorough support to gtester.



svn path=/trunk/; revision=6053
2007-12-05 16:56:05 +00:00
17:21:05 Tim Janik
d4bfa601f7 print out random seed for verbose tests, also adapted test result
2007-12-05 17:21:05  Tim Janik  <timj@imendio.com>

        * glib/glib/gtestutils.c: print out random seed for verbose tests,
        also adapted test result reporting slightly in verbose mode to allow
        custom debugging output. support "thorough" as test mode alis for "slow".

        * glib/glib/gtestutils.h: added g_test_thorough().

        * glib/glib/gtester.c: print out the last random seed when tests fail.
        added result attribute to test case status logging to easily spot
        failing tests in log files. disabled debugging output when skipping tests.



svn path=/trunk/; revision=6052
2007-12-05 16:22:44 +00:00
11:43:22 Tim Janik
510d4ec634 added g_test_add_data_func() to pass data into tests. allow data arguments
2007-12-05 11:43:22  Tim Janik  <timj@imendio.com>

        * glib/gtestutils.[hc]: added g_test_add_data_func() to pass data
        into tests. allow data arguments for fixture tests.

        * glib/gtestutils.c: fixed fatal log flag setup, so tests really abort
        upon criticals/warnings/errors.

        * glib/tests/testing.c: test test_data arguments.

        * glib/gtester.c: some prototype fixups.



svn path=/trunk/; revision=6049
2007-12-05 10:42:09 +00:00
21:06:47 Tim Janik
1e55738f31 initialize automake variables EXTRA_DIST and TEST_PROGS for unconditional
2007-11-21 21:06:47  Tim Janik  <timj@imendio.com>

	* Makefile.decl: initialize automake variables EXTRA_DIST and
	TEST_PROGS for unconditional appending via += in other makefiles.
	define recursive test targets: test, test-report, perf-report,
	full-report, as described here:
      http://mail.gnome.org/archives/gtk-devel-list/2007-November/msg00000.html

	* Makefile.am:
	* build/win32/vs8/Makefile.am, build/win32/dirent/Makefile.am:
	* build/win32/Makefile.am, build/Makefile.am:
	* docs/Makefile.am, docs/reference/Makefile.am:
	* docs/reference/glib/Makefile.am, docs/reference/gobject/Makefile.am:
	* gmodule/Makefile.am, tests/Makefile.am:
	* tests/refcount/Makefile.am, tests/gobject/Makefile.am:
	* glib/update-pcre/Makefile.am, glib/libcharset/Makefile.am:
	* glib/tests/Makefile.am, glib/pcre/Makefile.am:
	* glib/gnulib/Makefile.am, gobject/Makefile.am, m4macros/Makefile.am:
	* gthread/Makefile.am, glib/Makefile.am:
	include $(top_srcdir)/Makefile.decl, adapted EXTRA_DIST assignments.

	* glib/tests/Makefile.am: removed example testing rules.

	* glib/tests/testing.c: conditionalized performance and slow tests.

	* glib/gtestutils.h:
	* glib/gtestutils.c: work around g_test_config_vars not changing its
	exported value after value assignments, aparently due to symbol aliases.

	* glib/gtester.c: fixed off-by-one error which produced junk in logs.

	* configure.in: check for python >= 2.4 and provide $PYTHON for scripts.


svn path=/trunk/; revision=5914
2007-11-21 20:09:46 +00:00
Tim Janik
515c53474a Added g_test_bug() and related API.
* gtester.c: handle G_TEST_LOG_MESSAGE and test test message API.

* gtestframework.h, gtestframework.c: added test message API and convenience
API to send test messages about bug URLs.

svn path=/trunk/; revision=5906
2007-11-20 15:00:56 +00:00
Tim Janik
a46a52941b gtester: implemented logic to handle failing tests, self tests, and validate XML reports.
* gtester.c: terminate when tests failed. keep XML valid when test cases fail.
restart test binaries when tests fail, resuming after the last processed test.
support --gtester-selftest to run gtester itself as test program.
support --test-arg=<arg> to pass args along to test programs. added
main_selftest() which does a simplistic fixture test. fail if exit
code of test programs is not 0.

* gtestframework.h: added G_TEST_LOG_SKIP_CASE test log message type.

* gtestframework.c: support --GTestSkipCount=<n> to skip a number of tests.

* tests/Makefile.am: added test-report: for demonstration purposes.
added gtester-xmllint-check: and hooked it up into check:, this rule calls
gtester as test program, running it's selftest, and then uses xmllint to
validate the generate XML test log file.

svn path=/trunk/; revision=5904
2007-11-20 15:00:53 +00:00
Tim Janik
f347900eaf gtester: implemented XML logging.
* glib/gtester.c: log test messages to XML output file. beautified normal test
result output.

* glib/gtestframework.c: fixed GTimer leak.

* glib/tests/Makefile.am: start gtester with --verbose.

svn path=/trunk/; revision=5903
2007-11-20 15:00:51 +00:00
Tim Janik
2b7dbd9aab glib/gtester.c: fixed debugging flag.
svn path=/trunk/; revision=5900
2007-11-20 15:00:47 +00:00
Tim Janik
bca1fe406e fixed bogus unistd.h include.
svn path=/trunk/; revision=5899
2007-11-20 15:00:46 +00:00
Tim Janik
22ac72234a Implemented test log IPC.
* gtester.c: read and decode log messages from test binary child processes.
fixed GIOChannel and child watch handling to process all messages and avoid
hangs. pass --verbose and --quiet on to children, default to --quiet.

* gtestframework.h: export g_test_log_type_name().

* gtestframework.c: send test log to --GTestLogFD=<fd> if given, removed
bogus -o-option.

svn path=/trunk/; revision=5898
2007-11-20 15:00:45 +00:00
Tim Janik
add119f8e1 gtester.c: support test case listing through gtester.
svn path=/trunk/; revision=5897
2007-11-20 15:00:44 +00:00
Tim Janik
d0709d04cb gtester.c: adapted to become a rudimentary test binary launcher.
* gtester.c: increased read buffer size to match common unix pipe buffer size.
added argument parsing and usage. changed io handling to capture and replicate
stdout. fixed io handlers to be cleaned up when the child process exits (catch
G_IO_ERR | G_IO_HUP). we now use pending/iteration instead of a main loop
structure, to keep running until the child process exits and all io has been
processed. launch the test binaries given on the command line. don't quit when
a child couldn't be launched but --keep-going was specified.

svn path=/trunk/; revision=5895
2007-11-20 15:00:41 +00:00
Tim Janik
39cf400cdf Integrated gtester program into build process.
* Makefile.am: build and install gtester binary.

* gtester.c: fixed up coding style and removed hard wired test coded.

svn path=/trunk/; revision=5894
2007-11-20 15:00:40 +00:00
Tim Janik
bf51c15b89 glib/gtester.c:Small -Wall fix
svn path=/trunk/; revision=5893
2007-11-20 15:00:39 +00:00
Tim Janik
26988f5776 glib/gtester.c:Implemented nonblocking reading properly now
svn path=/trunk/; revision=5892
2007-11-20 15:00:38 +00:00
Tim Janik
a09ee4dc20 glib/gtester.c:Quit the application when the output is parsed completely, not just the process finished
svn path=/trunk/; revision=5891
2007-11-20 15:00:37 +00:00
Tim Janik
dce1a63bf4 glib/gtester.c:Read the output of the child process
svn path=/trunk/; revision=5890
2007-11-20 15:00:36 +00:00
Tim Janik
e413112683 glib/gtester.c:Use g_spawn_async_with_pipes()
svn path=/trunk/; revision=5889
2007-11-20 15:00:35 +00:00
Tim Janik
0217653b80 glib/gtester.c:Spawn a process async and quit gtester after the child process exited
svn path=/trunk/; revision=5888
2007-11-20 15:00:34 +00:00
Tim Janik
66bef13e6f glib/gtester.c:Added a first revision of gtester
svn path=/trunk/; revision=5887
2007-11-20 15:00:33 +00:00