49 Commits

Author SHA1 Message Date
Matthias Clasen
3d3659c1b6 Documentation additions
Add Since tags to recently introduced test function typedefs.
https://bugzilla.gnome.org/show_bug.cgi?id=649506
2011-05-06 07:14:48 -04:00
Matthias Clasen
ba5c9bd39f Remove extraneous decorations
Since in a doc comment takes no leading '@'.
2011-05-03 19:15:46 -04:00
Benjamin Otte
d5dc79c0b0 API: testutils: Add g_test_fail()
This allows tests to fail in a nonfatal way and the test runner can
continue if invoked with -k.

https://bugzilla.gnome.org/show_bug.cgi?id=647826
2011-04-18 14:52:29 +02:00
Benjamin Otte
9a12103259 testutils: Sprinkle code with newlines
Readable code ftw!
2011-04-18 14:49:51 +02:00
Benjamin Otte
d259d50afd testutils: Return number of bad tests from g_test_run_suite_internal()
In particular do not return a boolean disguised as an int.
2011-04-18 14:49:51 +02:00
Benjamin Otte
62e68ceec8 testutils: Remove unused variable 2011-04-18 14:49:51 +02:00
Benjamin Otte
19fdb18ef8 testutils: Return a boolean from g_test_case_run()
Return value is intened to be TRUE for success, FALSE for failure.
Currently we return TRUE all the time.
Previously the test returned 0 all the time.
2011-04-18 14:49:51 +02:00
Ryan Lortie
7791fce38a Fix some glib docs warnings
Remove some symbols from glib-sections.txt that gtk-doc has no idea
about.

Add proper callback typedefs for GTester (gtk-doc dislikes inline
function types).

Fix some other minor issues.
2010-07-12 16:56:52 -04:00
Ryan Lortie
2e53e50244 glib/: fully remove galias hacks 2010-07-07 19:34:35 -04:00
Milan Bouchet-Valat
b116838da3 Improve documentation for g_strcmp0()
Be more explicit about the handling of two NULL pointers.

https://bugzilla.gnome.org/show_bug.cgi?id=622480
2010-06-23 14:35:42 +02:00
Sven Herzberg
6c02c99df0 don't treat debug/info/message as fatal messages by default
* glib/gtestutils.c: don't treat non-fatal messages as errors
* glib/tests/.gitignore: silence
* glib/tests/Makefile.am: updated
* glib/tests/protocol.c: add a test for the message treatment
2010-06-21 12:34:44 +02:00
Matthias Clasen
a0c044b5c6 Make g_assertion_message_error take a const GError*
This was requested in bug 620265.
2010-06-06 16:42:06 -04:00
Javier Jardón
21302a741c Clean Glib header #include issues: gtestutils 2010-05-06 17:42:09 +02:00
Ryan Lortie
1d55cfb51e don't #include <glib.h> from other public headers
fix up some problems that were hidden by that
2010-01-30 00:01:26 -05:00
Martin Pitt
3658727cfa always use our own internal assertion message symbol
Re-using glibc's __abort_msg symbol causes linking problems, since the symbol
is declared private. Always use our own__glib_abort_msg symbol to store
assertion messages, to avoid compatibility and linking problems.

Also fix the test case to work with out of tree builds (such as "make
distcheck"), and re-enable it.

https://bugzilla.gnome.org/show_bug.cgi?id=594872
2010-01-26 11:22:31 +01:00
Martin Pitt
da66897950 Support storing assertion messages into core dump
Crash interception/debugging systems like Apport or ABRT capture core dumps for
later crash analysis. However, if a program exits with an assertion failure,
the core dump is not useful since the assertion message is only printed to
stderr.

glibc recently got a patch which stores the message of assert() into the
__abort_msg global variable.
(http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=48dcd0ba)
That works fine for programs which actually use the standard C assert() macro.

This patch adds the same functionality for glib's assertion tests. If we are
building against a glibc which already has __abort_msg (2.11 and later, or
backported above git commit), use that, otherwise put it into our own field
__glib_assert_msg.

Usage:

  $ cat test.c
  #include <glib.h>

  int main() {
      g_assert(1 < 0);
      return 0;
  }

  $ ./test
  **ERROR:test.c:5:main: assertion failed: (1 < 0)
  Aborted (Core dumped)

  $ gdb --batch --ex 'print (char*) __abort_msg' ./test core
  [...]
  $1 = 0x93bf028 "ERROR:test.c:5:main: assertion failed: (1 < 0)"

https://bugzilla.gnome.org/show_bug.cgi?id=594872
2009-12-23 15:51:11 +00:00
Christian Dywan
278ac0a45d Bug 579050 Allow making selected critical and warning messages non-fatal
Implement g_test_log_set_fatal_handler which is a function similar to
g_log_set_default_handler but for use in unit tests where certain
errors have to be ignored because it is not possible to fix or avoid
them otherwise. A unit test is added.
2009-09-10 16:45:49 +02:00
Matthias Clasen
cc1dc5ce20 Improve docs
svn path=/trunk/; revision=7805
2009-01-13 02:24:46 +00:00
Christian Dywan
215c04ce6c Bug 558513 – g_warn_if_fail FIXME in gtestutils
* glib/gtestutils.c (g_test_log_send):
Turn g_assert into g_warn_if_fail as advised

svn path=/trunk/; revision=7637
2008-10-31 09:56:19 +00:00
Dan Winship
5c53925ed0 Bug 553447 $(Q#|(B g_assert_no_error()
* glib/gtestutils.h (g_assert_no_error, g_assert_error): Macros to
	assert that a GError is not set, or else is set to a particular
	error.

	* glib/gtestutils.c (g_assertion_message_error): utility for
	those macros

	* glib/tests/keyfile.c:
	* tests/asyncqueue-test.c:
	* tests/bookmarkfile-test.c:
	* tests/convert-test.c:
	* tests/file-test.c: Use g_assert_error/g_assert_no_error

svn path=/trunk/; revision=7555
2008-09-27 01:43:29 +00:00
Matthias Clasen
8f85da0b5e Add required includes
svn path=/trunk/; revision=7452
2008-09-10 22:39:05 +00:00
Christian Dywan
2201cae29a Bug 550433 – g_test_init doesn't recognize --help
* glib/gtestutils.c (parse_args): Add detailed --help output

svn path=/trunk/; revision=7442
2008-09-08 08:25:29 +00:00
12:41:26 Tim Janik
6011a022d9 changed assertion messages, so older emacsen can also detect failing
2008-08-15 12:41:26  Tim Janik  <timj@imendio.com>

	* glib/gtestutils.c: changed assertion messages, so older emacsen
	can also detect failing source file and line, fixes:
	Bug 502498 – Test framework assertion failures should follow gcc error format


svn path=/trunk/; revision=7358
2008-08-15 10:44:57 +00:00
Matthias Clasen
b0c9ea5ca3 Move docs around
svn path=/trunk/; revision=7041
2008-06-15 00:49:30 +00:00
Matthias Clasen
52e1e9304a Documentation fixups
svn path=/trunk/; revision=7024
2008-06-12 06:18:14 +00:00
Matthias Clasen
8882576e90 hex, I mean it
svn path=/trunk/; revision=7019
2008-06-11 22:00:06 +00:00
Matthias Clasen
ce40942306 Bug 528667 – Typos in testing module documentation
* glib/gtestutils.c: Fix typos in the documentation.


svn path=/trunk/; revision=6899
2008-05-17 05:52:36 +00:00
Matthias Clasen
ba16f88961 Fix a doc typo. (#524742, Hiroyuki Ikezoe)
2008-03-30  Matthias Clasen  <mclasen@redhat.com>

        * glib/gtestutils.c: Fix a doc typo. (#524742, Hiroyuki Ikezoe)



svn path=/trunk/; revision=6771
2008-03-31 03:17:54 +00:00
Matthias Clasen
0d77163892 Add Since: markers to docs. (#518556, Jerry Yu)
2008-02-25  Matthias Clasen  <mclasen@redhat.com>

        * glib/gtestfuncs.c: Add Since: markers to docs.  (#518556,
        Jerry Yu)

svn path=/trunk/; revision=6592
2008-02-25 18:24:30 +00:00
Matthias Clasen
7c7cd785f5 Documentation updates
svn path=/trunk/; revision=6561
2008-02-23 05:06:18 +00:00
Tor Lillqvist
87d23f18ec Change the g_error() to g_message() to avoid stopping on warnings. At
2008-02-20  Tor Lillqvist  <tml@novell.com>

	* glib/gtestutils.c (g_test_trap_fork) [Win32]: Change the
	g_error() to g_message() to avoid stopping on warnings. At least
	now testglib runs to completion and the old tests in it get
	exercised even if the newfangled ones don't.
	(g_test_trap_assertions) [Win32]: Bypass on Windows.


svn path=/trunk/; revision=6542
2008-02-19 22:53:58 +00:00
Matthias Clasen
92aaf63ec0 Fix a typo
svn path=/trunk/; revision=6499
2008-02-11 17:35:44 +00:00
Wouter Bolsterlee
ca25b31ee3 Fixed gtk-doc warnings by updating the documentation of various functions.
2008-01-30  Wouter Bolsterlee  <wbolster@svn.gnome.org>

	* glib/gchecksum.c:
	* glib/gtestutils.c:
	* glib/gutils.c:

	Fixed gtk-doc warnings by updating the documentation of
	various functions.

svn path=/trunk/; revision=6429
2008-01-30 20:52:13 +00:00
Jens Granseuer
afc9506e9e Only declare variables at the beginning of a code block. Bug #511654.
2008-01-23  Jens Granseuer  <jensgr@gmx.net>

	* glib/gtestutils.c: (g_test_trap_fork):
	* glib/tests/testing.c: (test_assertions): Only declare variables at
	the beginning of a code block. Bug #511654.

svn path=/trunk/; revision=6361
2008-01-23 22:22:27 +00:00
Matthias Clasen
2cc67d528e hook up testutils docs
svn path=/trunk/; revision=6296
2008-01-11 16:44:15 +00:00
Matthias Clasen
b7a377a486 Include sys/time.h. (#505258)
2007-12-24  Matthias Clasen  <mclasen@redhat.com>

        * glib/gtestutils.c: Include sys/time.h.  (#505258)



svn path=/trunk/; revision=6201
2007-12-25 02:28:18 +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:45:23 Tim Janik
ac1723ea97 added g_test_trap_assert_stdout_unmatched() and
2007-12-18 13:45:23  Tim Janik  <timj@imendio.com>

        * glib/gtestutils.[hc]: added g_test_trap_assert_stdout_unmatched() and
        g_test_trap_assert_stderr_unmatched(), based on a suggestion by Mathias
        Hasselmann. reworked g_test_trap_assertions() to use flags to encode
        assertion semantics, fixes #504227.



svn path=/trunk/; revision=6151
2007-12-18 13:43:46 +00:00
15:08:59 Tim Janik
cc3de68e21 http://mail.gnome.org/archives/gtk-devel-list/2007-October/msg00089.html
2007-12-10 15:08:59  Tim Janik  <timj@imendio.com>

        * let g_warn_if_fail replace g_assert as discussed here:
          http://mail.gnome.org/archives/gtk-devel-list/2007-October/msg00089.html

        * fix bug #502498: Test framework assertion failures should follow
        gcc error format.

        * gmessages.h, gmessages.c: deprecated g_assert_warning() which is
        unused now. removed g_assert*() definitions whcih are provided by 
        gtestutils.h now. added g_warn_if_reached() and g_warn_if_fail()  
        which are recommended as g_assert/g_assert_not_reached replacements
        for non-test programs.
        added g_warn_message() to implement g_warn_*() macros.
        use emacs-next-error friendly formatting for file:line: for warnings.

        * gtestutils.h, gtestutils.c: use emacs-next-error friendly formatting.
        implement g_assert_not_reached() with g_assertion_message() and
        g_assert() in terms of g_assertion_message_expr() so we'll be able to
        provide assertion messages in test logs.

        * gkeyfile.c, gbookmarkfile.c: changed g_assert*() to g_warn_if_fail()
        or g_return_if_fail() where suitable.

        * gio/: changed g_assert to g_warn_if_fail.



svn path=/trunk/; revision=6086
2007-12-10 14:07:42 +00:00
13:02:08 Tim Janik
0dbfa89ba1 applied patch by Tommi Komulainen to fix int64 printouts, fixes #502511.
2007-12-10 13:02:08  Tim Janik  <timj@imendio.com>

        * glib/gtestutils.c (g_assertion_message_cmpnum): applied patch by Tommi
        Komulainen to fix int64 printouts, fixes #502511.



svn path=/trunk/; revision=6085
2007-12-10 12:02:48 +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
Hans Breuer
27cb515443 added glib_gettext (in use by gio) also try building gio
2007-12-03  Hans Breuer  <hans@breuer.org>

	* glib/glib.symbols : added glib_gettext (in use by gio)
	* makefile.msc : also try building gio
	
	* glib/gmarkup.c : use G_GUINT64_CONSTANT() to avoid 
	'bad suffix on number'
	* glib/gtestutils.c : declare cariable at the beginning of the block,
	include <io.h> for G_OS_WIN32
	* makefile.msc.in : add gurifuncs and gtestutils


svn path=/trunk/; revision=6028
2007-12-03 22:46:17 +00:00
Matthias Clasen
01f1f9ce56 Fix up some doc comments, avoid C99 comments
2007-11-28  Matthias Clasen  <mclasen@redhat.com>

        * glib/gtestutils.c: Fix up some doc comments, avoid C99 comments

        * glib/gconvert.c: De-doc-commentify static functions to
        shut up gtk-doc.

        * glib/gutils.c: Fix the glib_gettext doc comment.


svn path=/trunk/; revision=5982
2007-11-28 18:53:22 +00:00
Tor Lillqvist
6fdcc7ddb2 Add conditionals for non-Unix. Just g_error() unless G_OS_UNIX for now.
2007-11-25  Tor Lillqvist  <tml@novell.com>

	* glib/gtestutils.c: Add conditionals for non-Unix. Just g_error()
	unless G_OS_UNIX for now.


svn path=/trunk/; revision=5936
2007-11-25 22:47:39 +00:00
Matthias Clasen
d2f111fca7 Require gtk-doc 1.8.
2007-11-25  Matthias Clasen  <mclasen@redhat.com>

        * configure.in: Require gtk-doc 1.8.

        * glib/gasyncqueue.c:
        * glib/gdate.c:
        * glib/gfileutils.c:
        * glib/gmain.c:
        * glib/gmarkup.c:
        * glib/gregex.c:
        * glib/gtestutils.c:
        * glib/gutils.c: Use gtk-doc abbreviations for
        examples in doc comments.


svn path=/trunk/; revision=5933
2007-11-25 06:05:06 +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
a2bcee8f62 Fixed copyright for newly submitted files.
svn path=/trunk/; revision=5912
2007-11-20 17:35:26 +00:00
Tim Janik
6332518cc2 Renamed gtestframework to gtestutils.
* glib/glib.h:
* glib/Makefile.am: added gtestutils.h to public includes.

* glib/gtestutils.c: include gtestutils.h.

* glib/gtestutils.h:
* glib/glib.symbols:
* glib/tests/testing.c: renamed gtestframework to gtestutils.

* glib/gtestframework.h: renamed to gtestutils.h.

* glib/gtestframework.c: renamed to gtestutils.c.

svn path=/trunk/; revision=5910
2007-11-20 15:01:02 +00:00