1728 Commits

Author SHA1 Message Date
Philip Withnall
7b004d4052 tests: Fix a memory leak in spawn-multithreaded
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-03-12 01:46:07 +00:00
Philip Withnall
8cb44235df tests: Remove sources when done in spawn-multithreaded
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-03-12 01:46:07 +00:00
Philip Withnall
d6f99e5093 tests: Remove global variables from spawn-multithreaded
They make everything a lot harder to reason about, and easily allow for
state to leak between tests.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-03-12 01:46:07 +00:00
Philip Withnall
fd43391583 tests: Use g_assert_*() rather than g_assert() in spawn-multithreaded
It won’t get compiled out with `G_DISABLE_ASSERT`.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-03-12 01:12:19 +00:00
Philip Withnall
d6ad10404f tests: Add some tests for g_string_append_vprintf()
This adds coverage of one previously uncovered branch in `gstring.c`.
Real progress!

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-03-09 14:09:57 +00:00
Philip Withnall
27e1509cd6 tests: Add some tests for g_vasprintf() invalid format strings
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-03-09 14:08:49 +00:00
Philip Withnall
80d3018c1d tests: Make the 642026 test take 100× less time
It’s a tradeoff of time against reproducibility of the failure conditions
this test is testing for. If this test is run 100× on CI (which it will
be every few weeks), that should be often enough to catch a regression
here.

A regression in this code is unlikely, though.

This change is motivated by the fact that periodically this test times
out, and even when it doesn’t, it takes on average 240s of CI runner
time during each CI run. That’s a lot of resources.

See: https://gitlab.gnome.org/GNOME/glib/-/jobs/1862013

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-03-04 19:21:40 +00:00
Philip Withnall
9469922d5c tests: Allow g_mkdir_with_parents() to fail with EPERM
As well as with `EACCES`. This can happen if the filesystem as a whole
is read-only, and has been spotted in the wild on macOS:
```
Bail out! GLib:ERROR:../glib/tests/fileutils.c:756:test_mkdir_with_parents: assertion failed (errno == EACCES): (1 == 13)
stderr:
**
GLib:ERROR:../glib/tests/fileutils.c:756:test_mkdir_with_parents: assertion failed (errno == EACCES): (1 == 13)
```

See: https://stackoverflow.com/q/68766316/2931197
See: https://gitlab.gnome.org/GNOME/glib/-/jobs/1866500

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-03-04 18:59:22 +00:00
Philip Withnall
d497bdebc0 Merge branch 'remove_type-test' into 'main'
Move tests/type-test.c to glib/tests/types.c

See merge request GNOME/glib!2527
2022-03-04 18:39:40 +00:00
Emmanuel Fleury
208dfe9ddc Move tests/type-test.c to glib/tests/types.c
Helps issue #1434
2022-03-04 16:24:20 +00:00
Philip Withnall
f08324e014 Merge branch 'w32-tests-spawn' into 'main'
Various spawn-related test fixes on win32

See merge request GNOME/glib!2485
2022-03-04 16:16:39 +00:00
Sebastian Dröge
8091727b27 Merge branch 'wip/pwithnall/macos-tests' into 'main'
tests: Stop ignoring test failures on macOS

See merge request GNOME/glib!2505
2022-03-03 14:53:38 +00:00
Marc-André Lureau
2583a66ee7 tests: skip spawn-path-search tests on win32
Manipulating PATH the way the test does, it breaks DLL lookups and fails
to run helper programs.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2022-02-22 23:55:57 +04:00
Marc-André Lureau
2ebe30e170 tests: fix spawn-multithreaded on win32
Add test-spawn-sleep helper program to sleep on Windows (child-test
removed in commit 241b9f41b, probably breaking the test)

(fwiw, Windows has a timeout command nowadays, but it conflicts with
msys2 timeout which has different usage)

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2022-02-22 23:55:55 +04:00
Marc-André Lureau
8bb73c2a74 tests: replace ipconfig call in spawn-multithread on win32
Use a silent command instead (tbh, I don't understand the need for this)

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2022-02-22 23:54:55 +04:00
Marc-André Lureau
6e6d8000a4 tests: remove old libtool workarounds
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2022-02-22 23:54:55 +04:00
Emmanuel Fleury
16f0438bc6 Remove old test file tests/testglib.c 2022-02-22 18:48:01 +00:00
Loic Le Page
d15e6f7c9c Fix global variable name hidden by local variables in glib/tests/dataset.c 2022-02-21 12:42:23 +01:00
Loic Le Page
becce7742c Fix global variable name hidden by local variables in glib/tests/hash.c 2022-02-21 12:42:23 +01:00
Loic Le Page
479fcb40c0 Fix redefinition of local variable in glib/tests/logging.c 2022-02-21 12:42:23 +01:00
Loic Le Page
c53f24ba53 Fix global variable name hidden by local variables in glib/tests/mainloop.c 2022-02-21 12:42:22 +01:00
Loic Le Page
64760f1028 Refactor glib/tests/node.c
Replace C2P and P2C macros with standard GINT_TO_POINTER and
GPOINTER_TO_INT macros.
2022-02-21 12:42:22 +01:00
Loic Le Page
2885cbd737 Fix global variable name hidden by local variables in glib/tests/option-context.c 2022-02-21 12:42:22 +01:00
Loic Le Page
fb939a0029 Fix redefinition of local variable in glib/tests/sequence.c 2022-02-21 12:42:22 +01:00
Loic Le Page
5804fa1680 Fix global variable name hidden by local variables in glib/tests/spawn-multithreaded.c 2022-02-21 12:42:22 +01:00
Loic Le Page
22b7182d2a Fix redefinition of local variable in glib/tests/strfuncs.c 2022-02-21 12:42:15 +01:00
Loïc Le Page
cbc3d65f6d Fix global variable name hidden by local variables in glib/tests/utf8-validate.c 2022-02-21 12:38:11 +01:00
Philip Withnall
36112f9b83 tests: Stop ignoring test failures on macOS
Test failures were previously ignored on macOS because there are 12
tests which consistently fail (and have not yet been fixed, because
there are no regularly active macOS maintainers for GLib; you could help
here!).

However, this means that new test failures can’t be spotted.

So, explicitly mark those 12 tests as `should_fail` on macOS, and then
make other test failures cause failure of the CI run.

We can track the process of fixing those 12 tests on #1392 and #1251.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Helps: #1392
2022-02-20 15:01:59 +00:00
Philip Withnall
ae903744ee Merge branch 'environment-test-fixes' into 'main'
tests: Fix various small memory leaks

See merge request GNOME/glib!2509
2022-02-20 12:09:00 +00:00
Philip Withnall
2bc1036f80 tests: Fix a memory leak in the mainloop test
The source needs to be removed from the `GMainContext` before being
unreffed, otherwise the main context and main loop will be kept around.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-02-20 10:43:26 +00:00
Philip Withnall
ba556e6d34 tests: Fix a memory leak in the keyfile test
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-02-20 10:43:26 +00:00
Philip Withnall
a389227fb9 tests: Fix a memory leak in the fileutils test
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-02-20 10:43:26 +00:00
Philip Withnall
12a4fcdbed tests: Fix a leak in environment.c with undefined behaviour tests on
`g_environ_setenv()` and `g_environ_unsetenv()` were correctly returning
`NULL` when their preconditions failed (as the test is supposed to be
exercising). That overwrote the value of `env` without freeing it,
resulting in a leak.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-02-20 10:43:26 +00:00
Philip Withnall
cb18e6b969 Merge branch 'empty-argv' into 'main'
Various minor fixes for empty argv handling

See merge request GNOME/glib!2466
2022-02-20 09:36:41 +00:00
Philip Withnall
2249da981a tests: Use g_assert_*() rather than g_assert() in environment.c
`g_assert()` is compiled out with `G_DISABLE_ASSERT`.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-02-18 10:18:40 +00:00
Philip Withnall
5b7383c544 tests: Merge iochannel-test into io-channel tests in glib directory
We’re trying to eliminate the legacy `tests/` directory. This commit
moves the code from `tests/iochannel-test.c` into
`glib/tests/io-channel.c` and ports it to the latest GLib test coding
standards:
 * Change `g_assert()` to `g_assert_*()`
 * Print verbose messages with `g_test_message()`
 * Rename some variables to conform to modern conventions
 * Use `GTest`

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Helps: #1434
2022-02-17 21:42:35 +00:00
Marc-André Lureau
4549a97a75 glib/tests: ucrt locale date output is a bit different
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2022-02-15 23:21:49 +00:00
Marc-André Lureau
f7c66423a4 glib/tests: set Polish ThreadLocale on win32 to fix a test
Fixes /date/month_substring
Bail out! GLib:ERROR:../glib/tests/date.c:1090:test_month_substring: 'g_date_valid (&date)' should be TRUE

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2022-02-15 23:21:49 +00:00
Marc-André Lureau
051d000acd glib/tests: fix checking two-digit years on Windows
Fixes:
ok 10 /date/parse_locale_change

(when locale th_TH available)

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2022-02-15 23:21:49 +00:00
Marc-André Lureau
acb46f8b36 glib/tests: add comment about %Z strftime on w32
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2022-02-16 03:00:06 +04:00
Philip Withnall
00ba3ceacc Merge branch 'wip/smcv/aligned-alloc-tests' into 'main'
Fix some problems with g_aligned_alloc() tests

See merge request GNOME/glib!2488
2022-02-15 11:52:46 +00:00
Philip Withnall
27798cda22 Merge branch 'fix_gdate_tests' into 'main'
Fix unit test on date format '%Z' which is too versatile to be trustable

See merge request GNOME/glib!2482
2022-02-15 11:46:59 +00:00
Simon McVittie
b0f686a00e tests: Don't test invalid aligned allocations if avoiding UB
We can't exercise precondition check failures if GLib was (inadvisably)
compiled with -Dglib_checks=false, and we shouldn't necessarily exercise
precondition check failures when using QA tools like valgrind, so skip
these tests if run with -m no-undefined.

Signed-off-by: Simon McVittie <smcv@collabora.com>
2022-02-15 11:03:00 +00:00
Simon McVittie
38cdfe3c02 tests: Make g_aligned_alloc tests fail if preconditions aren't checked
Previously, these tests would always pass. If the precondition check
failed (as we want it to), the subprocess would exit unsuccessfully;
but if the precondition check wrongly passed, the subprocess would
continue, allocate a nonzero amount of memory, and fail the
g_assert_null(), resulting in the subprocess exiting unsuccessfully
and the test still passing.

Signed-off-by: Simon McVittie <smcv@collabora.com>
2022-02-15 10:52:59 +00:00
Simon McVittie
d04f3491af tests: Don't assume that all platforms are 64-bit
On ILP32 platforms, 4 is a valid alignment for g_aligned_alloc(), so
use 2 as our invalid alignment instead.

Signed-off-by: Simon McVittie <smcv@collabora.com>
2022-02-15 10:49:51 +00:00
Emmanuel Fleury
81764b6508 Fix unit test on date format '%Z' which is too versatile to be trustable 2022-02-15 11:43:25 +01:00
Philip Withnall
f9c08308ea Merge branch 'ebassi/aligned-alloc' into 'main'
Add aligned memory allocators

Closes #2574

See merge request GNOME/glib!2421
2022-02-11 15:04:25 +00:00
Philip Withnall
a6311f81ee gtestutils: Handle empty argv array passed to g_test_init()
This can happen if a caller (ab)uses `execve()` to execute a gtest
process with an empty `argv` array. `g_test_init()` has to gracefully
handle such a situation.

Fix a few problem areas in the code, and add a simple test which checks
that `g_test_init()` doesn’t crash when called with an empty `argv`.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-02-11 14:47:19 +00:00
Emmanuele Bassi
b37c99c44e Add tests for g_aligned_alloc()
We want to test the API contract, by checking the return value for
zero-sized allocations, invalid alignments, and overflows.
2022-02-11 14:44:09 +00:00
Philip Withnall
1094bfc7d7 Merge branch 'wip/smcv/defer-test-cleanup' into 'main'
testutils: Defer global cleanup until we really exit

Closes #2563

See merge request GNOME/glib!2420
2022-02-11 14:21:43 +00:00