1072 Commits

Author SHA1 Message Date
Marco Trevisan (Treviño)
00ebf4e1eb tests/lib: Add a new unittest type to simplify launching test programs
We were reusing the same logic everywhere, while we can just reuse an
unique class to base our tests on that avoids having to copy-and-paste
code for no good reason
2025-02-11 18:51:15 +01:00
Marco Trevisan (Treviño)
4bcd99de43 tests: Avoid reusing and installing multiple files the taptestrunner
Add some basic support for having glib-tests-only python libraries that
can be shared across the various projects, so that we don't have to
maintain multiple copies of them.
2025-02-11 18:51:15 +01:00
Benjamin Gilbert
ca77a1625d tests: Run lint tests with detected bash
When we invoke a shell script directly, the system selects a bash binary
that might be different from the one detected by find_program('bash').
Explicitly use the one detected by Meson, matching the behavior of our
other test() invocations on shell scripts.

Fixes test failure on Windows in GitHub Actions CI:

    stdout: 1: UNKNOWN: Windows Subsystem for Linux has no installed distributions.
    stdout: 2: UNKNOWN: Distributions can be installed by visiting the Microsoft Store:
    stdout: 3: UNKNOWN: https://aka.ms/wslstore

Found-by: Benoit Pierre <benoit.pierre@gmail.com>
Fixes: d7601f7eed ("Incorporate some lint checks into `meson test`")
2024-08-27 11:40:18 -07:00
Philip Withnall
ba219db83b
tests: Update the reuse lint limits
More files now have their copyright and/or licensing tagged explicitly,
so let’s reduce the wiggle room for regressions.

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

See: #1415
2024-04-17 15:47:02 +01:00
Philip Withnall
e577f16d01
tests: Enable shellcheck for bash completion scripts
These were accidentally left off the list of files checked before,
because they don’t have `.sh` suffixes.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>
2024-04-16 14:16:30 +01:00
Simon McVittie
6da055b5ab tests: Provide G_TEST_SRCDIR, G_TEST_BUILDDIR to lint scripts
These scripts use $(readlink -f) to guess their own path if necessary,
but macOS readlink doesn't support the -f option, and POSIX doesn't
guarantee that readlink even exists.

Resolves: https://gitlab.gnome.org/GNOME/glib/-/issues/3289
Fixes: d7601f7e "Incorporate some lint checks into `meson test`"
Signed-off-by: Simon McVittie <smcv@collabora.com>
2024-03-15 15:15:21 +00:00
Philip Withnall
c69ddddcfc tests: Don’t run check-missing-install-tag.py test under valgrind
Like in commit 80e878005f38c5f30dd8cf073a06b995caf6eb30, running this
test under valgrind is not useful.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>
2024-02-26 18:10:06 +00:00
Philip Withnall
80e878005f tests: Don’t run lint tests under valgrind
That’s not useful, as the lint tests aren’t actually GLib code.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>
2024-02-13 08:41:59 +00:00
Philip Withnall
81700d9aa6 tests: Skip lint tests if bash is not available
They all require bash.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>
2024-02-12 14:15:51 +00:00
Simon McVittie
d7601f7eed Incorporate some lint checks into meson test
This will make it easier and more obvious for developers to run them
locally: I'm sure I'm not the only developer who had assumed that
`.gitlab-ci/` is private to the CI environment and inappropriate (or
perhaps even destructive) to run on a developer/user system.

The lint checks are automatically skipped (with TAP SKIP syntax) if we
are not in a git checkout, or if git or the lint tool is missing. They
can also be disabled explicitly with `meson test --no-suite=lint`,
which downstream distributions will probably want to do.

By default, most lint checks are reported as an "expected failure"
(with TAP TODO syntax) rather than a hard failure, because they do not
indicate a functional problem with GLib and there is a tendency for
lint tools to introduce additional checks or become more strict over
time. Developers can override this by configuring with `-Dwerror=true`
(which also makes compiler warnings into fatal errors), or by running
the test suite like `LINT_WARNINGS_ARE_ERRORS=1 meson test --suite=lint`.

One exception to this is tests/check-missing-install-tag.py, which is
checking a functionally significant feature of our build system, and
seems like it is unlikely to have false positives: if that one fails,
it is reported as a hard failure.

run-style-check-diff.sh and run-check-todos.sh are not currently given
this treatment, because they require search-common-ancestor.sh, which
uses Gitlab-CI-specific information to find out which commits are in-scope
for checking.

Signed-off-by: Simon McVittie <smcv@collabora.com>
2024-02-08 00:18:23 +00:00
Emmanuel Fleury
207b8cb8a5 Convert tests/assert-msg-test* to glib/tests/assert-msg-test*
Closes issue #1434
2022-06-28 11:19:21 +01:00
Philip Withnall
1b377e6574 build: Drop MALLOC_PERTURB_ from test environments
It’s set already by Meson, to an actually random value.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-06-21 12:50:31 +01:00
Emmanuel Fleury
fcbdfb5be8 Remove tests/gobject empty directory
Helps issue #1434
2022-06-08 15:25:04 +02:00
Emmanuel Fleury
afc8a8fcfe Remove tests/gobject/timeloop-closure.c performance test
This test has been here for long but is no more useful and can be
removed safely.
2022-06-08 15:22:11 +02:00
Philip Withnall
d463de05b1 tests: Move GObject performance tests to gobject/tests/performance/
This doesn’t change the tests’ behaviour, but moves them to a slightly
more logical location.

They are still not installed or run by default.

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

Helps: #1434
2022-06-08 11:30:31 +01:00
Philip Withnall
5d498f4d1c Merge branch 'move_testgobject' into 'main'
Move tests/gobject/testgobject.c to gobject/tests/basics-gobject.c

See merge request GNOME/glib!2696
2022-06-08 09:52:55 +00:00
Philip Withnall
3ce923711b Merge branch 'drop-collate-files' into 'main'
tests: Drop redundant collate test data files

See merge request GNOME/glib!2692
2022-06-06 14:05:21 +00:00
Matthias Clasen
35d5f9488c Improve the GObject performance test
Make the 'complex construction' case more
realistic by adding a string property.

And mark the properties as G_PARAM_STATIC_STRINGS,
since this is commonly done, and doing so will
enable some optimizations.

Also, use g_object_class_install_properties,
to test optimizations that will be tied to using
that function.
2022-06-01 12:14:11 -04:00
Emmanuel Fleury
ee67ca43cd Move tests/gobject/testgobject.c to gobject/tests/basics-gobject.c
Helps issue #1434
2022-05-27 22:31:13 +02:00
Emmanuel Fleury
ccfabc0f99 Convert tests/gobject/testgobject.c to glib test framework 2022-05-27 22:19:42 +02:00
Philip Withnall
87646793e7 tests: Drop redundant collate test data files
These were made redundant in 5b08ef84e4132db8f3e873f52c4bc929949dff4d
and cddce179f56fdec2cb18c0837bad55e29c552ad1,
when the test data was moved into the test program as strings.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-05-26 19:50:05 +01:00
Philip Withnall
81fd75b4bb Merge branch 'move_gobject_tests' into 'main'
Moving gobject tests from tests/gobjects to gobjects/tests

See merge request GNOME/glib!2550
2022-05-26 18:37:19 +00:00
Emmanuel Fleury
4e02be948b Moving gobject tests from tests/gobjects to gobjects/tests
The test files concerned are:

- tests/gobjects/accumulator.c
- tests/gobjects/defaultiface.c
- tests/gobjects/deftype.c
- tests/gobjects/dynamictype.c
- tests/gobjects/override.c
- tests/gobjects/references.c
- tests/gobjects/signals.c
- tests/gobjects/singleton.c

Related to issue #1434
2022-05-26 19:13:19 +01:00
Emmanuel Fleury
a8baa8d0d8 Convert tests/gobject/singleton.c to glib test framework 2022-05-26 19:13:19 +01:00
Emmanuel Fleury
d0577293a2 Convert tests/gobject/signals.c to glib test framework 2022-05-26 19:13:19 +01:00
Emmanuel Fleury
2767e1614d Convert tests/gobject/references.c to glib test framework 2022-05-26 19:13:19 +01:00
Emmanuel Fleury
662d8458f5 Convert tests/gobject/override.c to glib test framework 2022-05-26 19:13:19 +01:00
Emmanuel Fleury
17ddf79e1d Convert tests/gobject/dynamictype.c to glib test framework 2022-05-26 19:13:16 +01:00
Emmanuel Fleury
b61d3edc33 Convert tests/gobject/defaultiface.c to glib test framework 2022-05-26 19:12:15 +01:00
Emmanuel Fleury
d378108b10 Convert tests/gobject/accumulator.c to glib test framework 2022-05-26 18:51:57 +01:00
Emmanuel Fleury
70401ae8c3 Moving tests/refcount/ directory to gobject/tests/
Modified by Philip Withnall to omit the subdirectory and drop the
`refcount` suite as both seem like unnecessary over-categorisation.

Related to issue #1434
2022-05-26 18:37:35 +01:00
Emmanuel Fleury
b65260abe4 Convert tests/refcount/signals.c to glib test framework 2022-05-26 18:37:35 +01:00
Emmanuel Fleury
d97c1a148e Convert tests/refcount/properties4.c to glib test framework 2022-05-26 18:37:35 +01:00
Emmanuel Fleury
94ef5ae4c7 Convert tests/refcount/properties3.c to glib test framework 2022-05-26 18:37:35 +01:00
Emmanuel Fleury
ddadb89d7c Convert tests/refcount/properties2.c to glib test framework 2022-05-26 18:37:35 +01:00
Emmanuel Fleury
76fccc78c0 Convert tests/refcount/properties.c to glib test framework 2022-05-26 18:37:34 +01:00
Emmanuel Fleury
715ff4ea29 Convert tests/refcount/objects2.c to glib test framework 2022-05-26 18:37:34 +01:00
Emmanuel Fleury
62b5fe5991 Convert tests/refcount/objects.c to glib test framework 2022-05-26 18:37:34 +01:00
Philip Withnall
ce585ba4d2 Merge branch 'slice-test' into 'main'
Slice test

See merge request GNOME/glib!2579
2022-05-26 17:01:52 +00:00
Philip Withnall
0dca8bb6aa tests: Remove redundant meson commands
The `tests` array is now empty, so everything to do with it can be
removed from this file.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-05-26 17:27:03 +01:00
Emmanuel Fleury
c71d0c53b5 Move tests/module-test.c to gmodules/tests/
Helps issue #1434
2022-05-26 17:26:58 +01:00
Emmanuel Fleury
f62be5660d Convert tests/modules-test.c to glib test framework 2022-05-26 16:32:48 +01:00
Matthias Clasen
1c4f6da1f7 Add a finalization performance test 2022-05-23 08:49:04 -04:00
Emmanuel Fleury
8ad765a4c2 Convert test/slice-test.c to glib test framework and move it to glib/tests/ 2022-05-17 18:35:16 +02:00
Philip Withnall
848d7718b6 Merge branch 'test-slice-threadinit' into 'main'
Moving slice-threadinit.c test to glib/tests/

See merge request GNOME/glib!2580
2022-05-17 12:59:45 +00:00
Philip Withnall
5efbd51ea8 Merge branch 'cleanup-root' into 'main'
Various updates to documentation and misc files in the root directory

See merge request GNOME/glib!2649
2022-05-17 12:58:25 +00:00
Emmanuel Fleury
ddb0585e65 Moving slice-threadinit.c test to glib/tests/
Related to issue #1434
2022-05-16 15:21:02 +02:00
Emmanuel Fleury
a83ccbd251 Convert tests/slice-threadinit.c to glib test framework 2022-05-16 15:20:27 +02:00
Philip Withnall
5160b12740 Merge branch 'move_thread_test' into 'main'
Move tests/thread-test.c to glib/tests/thread-deprecated.c

See merge request GNOME/glib!2639
2022-05-16 12:41:25 +00:00
Philip Withnall
d1bec29217 Merge branch 'move_gio-test' into 'main'
Convert tests/gio-test.c to g_test framework

See merge request GNOME/glib!2539
2022-05-16 12:34:27 +00:00