Commit Graph

1728 Commits

Author SHA1 Message Date
Matthias Clasen
4989cb4dde Improve GOptionContext test coverage 2014-01-01 17:59:22 -05:00
Matthias Clasen
d6bd36c699 Improve GBookmarkFile test coverage 2014-01-01 17:59:22 -05:00
Matthias Clasen
0f746070d8 Make a bookmark testfile roundtrippable
This will be used in new tests in the following commit.
2014-01-01 17:59:22 -05:00
Matthias Clasen
d264d32d3b Improve glib-unix test coverage 2014-01-01 17:59:21 -05:00
Matthias Clasen
6814f7ebd9 Improve GHashTable test coverage 2014-01-01 17:59:21 -05:00
Matthias Clasen
95d4856760 Add a test for g_markup_parse_context_get_element_stack 2014-01-01 17:59:21 -05:00
Matthias Clasen
cc8c1541c9 Improve mainloop test coverage 2014-01-01 17:59:21 -05:00
Matthias Clasen
24d992f8a1 Add tests for GTimer and GTimeVal 2014-01-01 17:59:21 -05:00
Matthias Clasen
2ded47e955 Improve GTree test coverage 2014-01-01 17:59:21 -05:00
Matthias Clasen
6e23e6c641 Improve logging test coverage 2014-01-01 17:59:21 -05:00
Matthias Clasen
cdb14a194e Improve testing test coverage
In particular, test the just-fixed g_test_trap_reached_timeout.
2014-01-01 17:59:21 -05:00
Matthias Clasen
e013cf9cad Improve GSlice test coverage 2014-01-01 17:59:21 -05:00
Matthias Clasen
19ad8dbfa6 Improve GNode test coverage 2014-01-01 17:59:21 -05:00
Matthias Clasen
6fe85aee8d Improve fileutils test coverage
Add some tests for g_file_read_link.
2014-01-01 17:59:21 -05:00
Dan Winship
fab0805b81 Make g_test_run() return 77 if all tests are skipped
Change g_test_run() to return 1 on failure (rather than the number of
failed tests), and 77 if all tests are skipped (since automake and
some other test harnesses recognize that status code).

Previously g_test_run() returned the number of failed tests, but this
behavior was not documented, and at any rate, prior to 2.39,
g_test_run() would normally not return at all if an error occurred.

https://bugzilla.gnome.org/show_bug.cgi?id=720263
2013-12-18 10:09:46 -05:00
Dan Winship
8c188fc9e5 gtestutils: skipping a test should count as success, not failure
In particular, the test program as a whole should exit with status 0
if you skipped some tests but did not fail any.

https://bugzilla.gnome.org/show_bug.cgi?id=720263
2013-12-18 09:26:54 -05:00
Ryan Lortie
2731b01c73 tests: change test timezone to America/Toronto
America/Toronto is the canonical name for Canada/Eastern in the zoneinfo
database.
2013-12-16 14:55:12 -05:00
Matthias Clasen
c34cc2348c Simplify subprocesses in tests
Use the new way of running tests in a subprocess without
registering extra 'subprocess' test cases where appropriate.
2013-12-15 11:50:00 -05:00
Stef Walter
cd2204bb65 gtestutils: Allow clean simple use of g_test_trap_subprocess()
Allow g_test_trap_subprocess() to be used in a simple cases by
rerunning the same test case itself. This is accomplished by
passing %NULL as the test case name.

https://bugzilla.gnome.org/show_bug.cgi?id=720236
2013-12-15 11:03:17 -05:00
Matthias Clasen
162852d1b5 Add a testcase for g_ptr_array_insert 2013-12-14 23:54:18 -05:00
Ryan Lortie
05f36e7ffc clang fixes: tweak last commit
We need to actually ignore "-Wformat-nonliteral" to make clang happy
2013-12-08 16:38:47 -05:00
Ryan Lortie
ddf82a2576 [PATCH] Fix trivial non literal format uses
Based on a patch from Henrique Dante de Almeida <hdante@gmail.com>.

https://bugzilla.gnome.org/show_bug.cgi?id=691608
2013-12-08 14:22:51 -05:00
Matthias Clasen
d6af3c63c9 Add a test for g_atexit 2013-11-28 21:58:25 -05:00
Matthias Clasen
555d40eeed Improve search utils test coverage
This adds test cases for the Turkish i.
2013-11-28 16:01:23 -05:00
Matthias Clasen
ec393a3009 Improve GKeyFile test coverage 2013-11-28 16:01:23 -05:00
Matthias Clasen
804c4fe1d3 Improve test coverage for GHashTable 2013-11-28 16:01:23 -05:00
Chun-wei Fan
29b66e1458 glib/tests/enviroment.c: Fix running on Windows
Don't attempt to insert environmental variables in the hash table during
the test listenv that is an empty string, as GetEnvironmentStringsW() also
returns special enviroment variables which have empty strings as their
variable names, at least on Windows 7 and 8.

https://bugzilla.gnome.org/show_bug.cgi?id=711047
2013-11-27 08:01:46 +08:00
Dan Winship
f4c30feb95 gtestutils: fix g_test_set_nonfatal_assertions()
g_test_set_nonfatal_assertions() was a no-op, because
g_assertion_message() wasn't actually checking the
test_nonfatal_assertions flag. Fix that and add a test.

Also, g_test_set_nonfatal_assertions() has to set test_mode_fatal to
FALSE as well, or else a failed assertion will cause the test program
to abort at the end of the failed test.

Also, belatedly add this and the new g_assert_* methods to the docs.

https://bugzilla.gnome.org/show_bug.cgi?id=711800
2013-11-24 14:59:51 -05:00
Matthias Clasen
910191597a Add boolean returns to some hash functions
The functions g_hash_table_insert, g_hash_table_replace
and g_hash_table_add now return TRUE if they inserted a
new key/value pair.

https://bugzilla.gnome.org/show_bug.cgi?id=697828
2013-11-24 01:22:44 -05:00
Dan Winship
41eacde630 gtestutils: add "options" to g_test_init(), make option-argv0 use gtester
Declare that the previously-unused "..." argument to g_test_init() is
actually a NULL-terminated list of strings indicating testing options,
and add an option "no_g_set_prgname", which keeps g_test_init() from
calling g_set_prgname(). Then we can port glib/tests/option-argv0 to
use gtester, by passing that option.

https://bugzilla.gnome.org/show_bug.cgi?id=711796
2013-11-23 00:43:45 -05:00
Dan Winship
f733075cd1 glib/tests/include: port to gtester
https://bugzilla.gnome.org/show_bug.cgi?id=711796
2013-11-23 00:39:07 -05:00
Dan Winship
158dde0507 Replace #ifdef HAVE_UNISTD_H checks with #ifdef G_OS_UNIX
In Windows development environments that have it, <unistd.h> is mostly
just a wrapper around several other native headers (in particular,
<io.h>, which contains read(), close(), etc, and <process.h>, which
contains getpid()). But given that some Windows dev environments don't
have <unistd.h>, everything that uses those functions on Windows
already needed to include the correct Windows header as well, and so
there is never any point to including <unistd.h> on Windows.

Also, remove some <unistd.h> includes (and a few others) that were
unnecessary even on unix.

https://bugzilla.gnome.org/show_bug.cgi?id=710519
2013-11-20 09:25:39 -05:00
Dan Winship
6e4a7fca43 Require C90 compliance
Assume all supported platforms implement C90, and therefore they
(correctly) implement atexit(), memmove(), setlocale(), strerror(),
and vprintf(), and have <float.h> and <limits.h>.

(Also remove the configure check testing that "do ... while (0)" works
correctly; the non-do/while-based version of G_STMT_START and
G_STMT_END was removed years ago, but the check remained. Also, remove
some checks that configure.ac claimed were needed for libcharset, but
aren't actually used.)

Note that removing the g_memmove() function is not an ABI break even
on systems where g_memmove() was previously not a macro, because it
was never marked GLIB_AVAILABLE_IN_ALL or listed in glib.symbols, so
it would have been glib-internal since 2004.

https://bugzilla.gnome.org/show_bug.cgi?id=710519
2013-11-20 09:16:16 -05:00
Stef Walter
36f1a4ce7e gmessages: Add g_info macro for G_LOG_LEVEL_INFO
For completeness. Although less used than others, projects want
to use this, and end up having to define it awkwardly themselves.

https://bugzilla.gnome.org/show_bug.cgi?id=711103
2013-11-19 08:08:14 +01:00
Chun-wei Fan
f038c629a4 glib/tests/: Avoid GCCisms and fix tests for MSVC
Skip the tests on inf/nan strings for the gvariant and strfuncs tests, and
skip the hex strings for the strtod tests in strfuncs as they are C99
features that are not yet supported by Visual C++ (even 2013).  Use a
definition for NAN and INFINITY (that is also used in PyGObject) as
atof("NaN") and atof("Infinity") simply returns 0.0 (which is not a NAN)
in Visual C++ to fix the tests running there.

Also adapt to the format of g_ascii_formatd() when dealing with 1e99.

https://bugzilla.gnome.org/show_bug.cgi?id=711047
2013-11-11 22:52:00 +08:00
Chun-wei Fan
c58a7b8c74 tests: Fix for non-GCC
Remove uses of using empty arrays in initialization and structs, and build
tests that rely on GCCisms on GCC only.

https://bugzilla.gnome.org/show_bug.cgi?id=711047
2013-11-11 22:39:57 +08:00
Chun-wei Fan
a7707ec60b glib/tests/spawn-singlethread: Improve test for Windows
Use a Windows-style .bat script for the test_spawn_script() test, at least
when the code is built with Visual C++ (due to differences in how scripts
are written for shells and Windows cmd.exe), and account for Windows-style
line endings for that test too.

Let the MinGW builds (which are normally done in an MSYS BASH-style shell) continue to use the
*NIX-style script for that test.

https://bugzilla.gnome.org/show_bug.cgi?id=711047
2013-11-11 22:38:36 +08:00
Stef Walter
e34d74bdb3 private: Use threading primitives correctly in private test
We shouldn't be clearing statically allocated mutexes, and also
don't use deprecated heap-allocated GPrivate.

https://bugzilla.gnome.org/show_bug.cgi?id=711755
2013-11-11 08:20:13 +01:00
Stef Walter
fe8862dc1b utils: Don't free memory owned by glib in test
https://bugzilla.gnome.org/show_bug.cgi?id=711775
2013-11-10 22:52:47 +01:00
Stef Walter
e525586726 unix: Fix memory leak in unix test
https://bugzilla.gnome.org/show_bug.cgi?id=711751
2013-11-10 22:40:28 +01:00
Dan Winship
ab3c55435a gerror: Don't leak memory when overwrite warning
Even though we can't always make no-leak guarantees when g_warning()
in this case we're testing this behavior in tests, and it would be
good to be able to valgrind this.

https://bugzilla.gnome.org/show_bug.cgi?id=711751
2013-11-10 22:40:08 +01:00
Stef Walter
e74b4351a3 private: Fix memory leak in tests
Don't use g_private_new(), it's deprecated, and leaks by definition.

https://bugzilla.gnome.org/show_bug.cgi?id=711751
2013-11-10 22:39:25 +01:00
Ryan Lortie
92b71825fd tests: fix leak in mainloop test
Properly unref a pair of GSources in the unix-fd mainloop test.

valgrind was reporting these as 'still reachable' before (possibly due
to some residual pointers somewhere in memory), but when running with
G_DEBUG=cleanup they were properly reported as leaked.
2013-11-06 10:12:50 +01:00
Chun-wei Fan
d262b6fe0c glib/tests: Clean up inclusion of unistd.h
Include unistd.h only when G_OS_UNIX is defined (or when G_OS_WIN32 is not
defined).  This will avoid including unistd.h unconditionally and/or
unecessarily, which may cause problems in certain scenarios, such as when
building the tests on Visual C++, which does not come with a unistd.h and
MinGW, where unistd.h is essentially a wrapper for io.h and process.h.

https://bugzilla.gnome.org/show_bug.cgi?id=711047
2013-11-04 22:52:02 +08:00
Chun-wei Fan
1079d30e1b glib/tests/fileutils.c: Include unistd.h on *NIX only
...and fix the test on non-English Windows, as gettext on Windows does
not honor LC_ALL = "C" (the default CRT behavior) but requires using
SetThreadLocale() to set the locale as it picks up the user's environment
and the thread's locale.  Without doing so the g_format_size_for_display()
et al will display the translated message if the gettext translations have
been installed before, causing the test_format_size_for_display tests to
fail.

https://bugzilla.gnome.org/show_bug.cgi?id=711047
2013-11-04 22:51:39 +08:00
Ryan Lortie
1bc98830c5 tests: add a ignore-qualified markup-collect case
Add a case to markup-collect that exercises the new IGNORE_QUALIFIED
flag.

https://bugzilla.gnome.org/show_bug.cgi?id=665634
2013-10-28 15:24:58 -07:00
Ryan Lortie
cbccbaeacf GMarkup: share some common code for closing tags
The code for dealing with </foo> and the second half of <foo/> was
largely duplicated.  We can share a lot of it by using a common
function.

This slightly changes the behaviour of the parser under error
circumstances: previously the parser would deal with '<foo/}' by first
issuing the end_element callback and then flagging the error due to the
unexpected character.  Now we will flag the unexpected character error
first, skipping the callback.

This behaviour change required modifying the testsuite.

https://bugzilla.gnome.org/show_bug.cgi?id=665634
2013-10-28 15:24:58 -07:00
Stef Walter
44f13124c9 test: g_debug messages shouldn't affect g_assert_expected_messages
Debug messages are meant to give insight into how a process is
proceeding, and are unpredictable in nature. They also often have
line numbers in them.

This patch ignores debug messages in g_test_assert_expected_messages().

https://bugzilla.gnome.org/show_bug.cgi?id=710991
2013-10-28 21:31:34 +01:00
Ryan Lortie
ba3103763d tests: test g_hash_table_get_keys_as_array()
https://bugzilla.gnome.org/show_bug.cgi?id=710964
2013-10-27 09:26:56 -07:00
Ryan Lortie
f7beb90193 tests: expect critical on failure to remove source
We've added a g_critical() on failure to remove sources, so make sure we
expect to see that (instead of failing the test due to the unexpected
message).

https://bugzilla.gnome.org/show_bug.cgi?id=710724
2013-10-23 12:00:44 -04:00