If lxml is available, validate the meson-test-run.xml output of
run_project_tests against the JUnit XML Schema Definition.
Require that to happen in CI, to ensure that test gets run *somewhere*
to ensure such errors are noticed.
Future work: it doesn't seem possible to get anything other than the
*first* error out of the validator?
This partially reverts commit 3fad380c07.
(retain the correction to the expected installed files, because that's
right irrespective of whether the test is expected to run or not.)
Needed until the python-gi cygwin package is rebuilt for python3.12.
The MSYS2 MINGW32 env has recently removed those packages.
This makes CI green again.
(the ternary hack is there since GHA doesn't support "if" in expressions
nor nested expressions)
This boils down to three issues:
1. python3-gi was not installed
2. framework/7 gnome was missing an installed file for cygwin
3. Two tests were marked skip for cygwin that were running
This ports vc2022x64vs and vc2022arm64ninjacross to GHA.
GHA has some upsides:
* 4 instead of 2 cores, so about twice as fast with parallel tests
* easier to test in forks (no azure account required)
* one less CI system to handle
Downsides: GHA is limited to 20 parallel jobs, and meson has many,
so some queuing might occur, though it being twice as fast and many
of the other jobs being short should lead to faster times anyway.
The third job was not ported yet since that includes intel fortran
which requires caching since it takes 15 minutes to install, and I
lost motivation. Ideally it could be ported as well.
It is impossible to detect the source of default_library=both from within the
test, so add yet another knob... :(
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
The workaround in commit 2f146775e ("Work around the mising RECORD
file with homebrew pip.", 2025-05-04) is brittle and has broken
again. Do not bother updating setuptool and pip at all, they should be
relatively up to date on homebrew.
Suggested-by: Eli Schwartz <eschwartz93@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Due to some recent package splits llvm is no longer installed
when clang is installed and the meson test suite was depending
on the transitive dependency.
Instead explicitly install llvm in all cases.
Put cygwin filemode tests back under the sourcedir
Remove inheritable permissions from the sourcedir
For :reasons:, the unit tests which check file mode were built in the
tempdir.
Instead, remove inheritable permissions from the working directory
(which the GitHub VM image has set for some reaons), since they can
interfere with getting exactly the file mode you asked for.
Partially reverts 04ae1cfb79
At the moment it turns out this mostly means... me. But this was
discussed publicly, as requested by a third party, and as per the newly
added page this is open to anyone in the Project who wishes to let it be
known that they accept donations.
Closes: https://github.com/mesonbuild/meson/issues/14262
It rarely finds real issues that other scanners (pylint, flake8, mypy)
don't find, and gives lots of useless and annoying errors that clutter
discussions
Use a tagged version of cygwin-install-action, rather than whatever
happens to be master at the moment.
This should help isolate meson CI from random breakage there.
Using Homebrew Clang leads to failures when testing objfw. We probably
want to ensure we use Apple Clang here given the workflow job name, in
any case.
The D compiler and associated tools are installed under /root and the
setup script run during the actual testing expects that `~` will
expand to the same path. Because github overrides HOME the dmd
environment setup script will not be run which leads to all D related
tests being skipped, even though the whole test suite reports as
having finished successfully.
Signed-off-by: Andrei Horodniceanu <a.horodniceanu@proton.me>
Test '230 external project' uses make, but is too dumb to use the
platform conventions for shared library names in installed files
expected by shared_lib, so special case that.