aboutsummaryrefslogtreecommitdiff
path: root/run_project_tests.py
AgeCommit message (Collapse)AuthorFilesLines
2023-09-13run_project_tests: support checking for symlinksArsen Arsenović1-1/+6
2023-09-07Fix include_directories test for relative pathCharles Brunet1-0/+2
- On Windows, it was not detected if include directory was an absolute path to source directory, because of the mis of path separators. - In the edgecase the include directory begins with the exact same string as the source directory, but is a different directory, it was falsely reported as an error. Fixes #12217.
2023-09-07Fix crash when installing a vala library and python sourcesXavier Claessens1-1/+4
Installing python sources causes the python module to call create_install_data() before Ninja backends adds extra outputs to Vala targets. Target objects are supposed to be immutable, adding outputs that late is totally wrong. Add extra vala outputs immediately, but be careful because the main output is only added later in post_init(). Luckily the base class already puts a placeholder item in self.outputs for the main filename so we can just replace self.outputs[0] instead of replacing the whole list which would contain vala outputs at that stage. This is surprisingly what SharedLibrary was already doing.
2023-09-01tests: repeat the failure reason in the detailed logsEli Schwartz1-0/+3
2023-09-01tests: move a couple log files into collapsed github groups where possibleEli Schwartz1-8/+7
2023-09-01tests: move the newline to the right place in ci includesEli Schwartz1-3/+3
Make sure this is generic enough to be properly usable
2023-09-01tests: sync ninja stdout/stderr instead of listing them separatelyEli Schwartz1-2/+2
It is fairly confusing for all the "ninja explain" to be the last thing you see, instead of the compile error.
2023-09-01tests: make summary section for project tests more like pytestEli Schwartz1-5/+6
Logs for failing tests come first, then the list of pass/fail.
2023-09-01tests: make run_project_tests finish off the verbose logs with a summaryEli Schwartz1-0/+5
List each testcase name that failed so we can see at a glance which ones they are.
2023-08-23machine file: Add @GLOBAL_SOURCE_ROOT@ and @DIRNAME@Xavier Claessens1-4/+4
2023-08-17tests: consolidate MESON_SKIP_TEST reporting and use it in unittestsEli Schwartz1-19/+7
Previously, we only reported the skip reason when running project tests.
2023-08-14Python: Add 'limited_api' kwarg to extension_moduleAndrew McNulty1-2/+12
This commit adds a new keyword arg to extension_module() that enables a user to target the Python Limited API, declaring the version of the limited API that they wish to target. Two new unittests have been added to test this functionality.
2023-06-26dependencies: defer importing a custom dependency until it is usedEli Schwartz1-1/+1
This lessens the amount of code imported at Meson startup by mapping each dependency to a dictionary entry and using a programmable import to dynamically return it. Minus 16 files and 6399 lines of code imported at startup.
2023-04-24Initial support for Metrowerks C/C++ compilerNomura1-1/+3
2023-04-11fix various spelling issuesJosh Soref1-1/+1
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2023-04-04tests: make it easier to read overall results in githubEli Schwartz1-1/+7
Use collapsible sections for cicmds.
2023-03-20project tests: add log of the setup command being runEli Schwartz1-3/+6
Followup to commit 2acb6ee79e24db047800da30f5f4ac52cb9c012d.
2023-02-22remove pointless, unused typing-only import in the test runnerEli Schwartz1-1/+0
In the commit that originally added this import, it wasn't even used. Now the implementation is being moved, so it will fail to work. I do not know why I originally added it, but it needs to go. :)
2023-02-13tests: do not run the deprecated python3 tests unless python is python3Eli Schwartz1-2/+2
It's broken in e.g. pypy, but that's okay because the module is utterly deprecated, and people should use the python module instead.
2023-01-12tests: track when an entire category is skipped and be quieterEli Schwartz1-8/+10
There is no need to state for every single test that "preconditions were not met". And logging the skip reason for a single test is easy to read, but making every second line alternate is less so.
2023-01-12tests: properly log the reason why a test got unexpectedly skippedEli Schwartz1-1/+2
2022-12-15Enable Java project tests on DarwimTristan Partin1-1/+1
2022-11-23python: Use correct extension filename suffix on Python < 3.8.7Daniele Nicolodi1-4/+10
On Windows, in Python version prior to 3.8.7, the `sysconfig` modules provides an extension filename suffix that disagrees the one returned by `distutils.sysconfig`. Get the more awesome suffix from the latter when building for a Python version known to present this issue. Simplify the extension module filename suffix lookup to use the same method used by `setuptools`. Adjust project tests accordingly. Fixes #10960.
2022-11-22test runner: fix excluding null optionsMarvin Scholz1-12/+12
It was impossible to specify null arguments in the exclude array, while they were passed properly in the code, they were stringified while the entries in the options array were just completely removed. To fix this, do not early stringify the argument name and option together as that would make it impossible to properly match it to None without introducing a new special case for the string "None". So instead they are now kept as tuples and only stringified when its actually needed.
2022-11-17fix deprecated use of meson builddir/ in testsuiteEli Schwartz1-1/+1
2022-10-24basic support for oneapi compilersRobert Cohn1-1/+2
2022-08-17run_project_tests: also change paths for DEPRECATION messagesDylan Baker1-1/+1
Not just WARNING and ERROR
2022-08-16deprecate running "meson builddir" without setup subcommandEli Schwartz1-1/+1
This is ambiguous, if the build directory has the same name as a subcommand then we end up running the subcommand. It also means we have a hard time adding *new* subcommands, because if it is a popular name of a build directory then suddenly scripts that try to set up a build directory end up running a subcommand instead. The fact that we support this at all is a legacy design. Back in the day, the "meson" program was for setting up a build directory and all other tools were their own entry points, e.g. `mesontest` or `mesonconf`. Then in commit fa278f351fe3d6924b4d1961f77b5b4a36e133f8 we migrated to the subcommand mechanism. So, for backwards compatibility, we made those tools print a warning and then invoke `meson <tool>`. We also made the `meson` tool default to setup. However, we only warned for the other tools whose entry points were eventually deleted. We never warned for setup itself, we just continued to silently default to setup if no tool was provided. `meson setup` has worked since 0.42, which is 5 years old this week. It's available essentially everywhere. No one needs to use the old backwards-compatible invocation method, but it continues to drag down our ability to innovate. Let's finally do what we should have done a long time ago, and sunset it.
2022-07-06run_project_tests: Don't try to use tqdm when stdout is not a ttyDylan Baker1-1/+1
Like when piped to something like less, where tqdm just makes a mess of the output instead of providing something helpful.
2022-05-10Require CMake 3.14 for all tests that use the cmake moduleSimon McVittie1-1/+5
Older versions are not supported by the cmake module since 0.62. This avoids having to hard-code the linux-bionic-gcc CI job as being unable to run these tests, which leaves other older environments like Debian 10 still trying to run them (and failing). Signed-off-by: Simon McVittie <smcv@collabora.com>
2022-05-06Limit parallelism to hopefully work on machines with 160 cores.Jussi Pakkanen1-1/+6
2022-05-01another day, another mypy update becomes stricter about typingEli Schwartz1-15/+15
Move GlobalState to a runtime T.NamedTuple, use it for constructing the tuple we are passing around rather than expecting mypy to detect that the one we already have matches.
2022-04-12python module: windows dll name for pypy needs special casingMatti Picus1-1/+2
2022-04-03project tests: log the reason why a test is skippedEli Schwartz1-1/+17
We expose a reason after the string 'MESON_SKIP_TEST', but it is actually ignored when running the test, so it is only useful as documentation and really might as well be a comment. Make it even more useful by actually printing that string after the '[SKIPPED]' message. Also, sometimes a test can be skipped for multiple reasons, and it would be useful to know which one occurred.
2022-04-03project tests: do not use tqdm progress bars for a single testEli Schwartz1-9/+11
This can happen for example with `--only fpga` as that category has exactly one test.
2022-03-29move typing-only definition to TYPE_CHECKINGEli Schwartz1-14/+15
2022-02-27modules/wayland: Add unstable_wayland moduleMark Bolhuis1-1/+9
2022-02-17project tests: fine-tune the check for whether we are in CIEli Schwartz1-1/+1
Follow-up on commit 4274e0f42a9673df981dd7a7a456f4d4fcfe5452. We want to allow tests to be skipped freely in third-party environments, so this should check the jobname, not whether $CI exists. We will anyways raise an error when trying to run the project tests, if $CI is set but no jobname is set.
2022-02-17tests: allow setting MESON_CI_JOBNAME=thirdpartyEli Schwartz1-3/+4
This is treated by the test harness as though unset, i.e. we do normal skipping and don't assume we are running in Meson's own project CI. However, it has one distinction which is that it isn't an error to set $CI without setting $MESON_CI_JOBNAME, if it is in fact set but to the ignored value. This lets automated workflows such as Linux distro testing, particularly alpine linux, set $CI or have it set for them by default, without messing things up. Also it has the advantage of $CI actually enabling useful benefits! We will still assume that this thirdparty environment wants to force verbose logging (printing testlogs, running ninja/samu with -v) and colorize the console.
2022-02-03cmake: ci: Skip tests on Ubuntu Bionic where CMake is stuck on 3.10Daniel Mensinger1-1/+1
2022-01-10pyupgrade --py37-plusEli Schwartz1-2/+1
2021-12-17Fix mypy errorsDaniel Mensinger1-1/+1
2021-10-10Add --vsenv command line option and active VS only when neededXavier Claessens1-2/+1
2021-10-04various python neatness cleanupsEli Schwartz1-4/+4
All changes were created by running "pyupgrade --py3-only" and committing the results. Although this has been performed in the past, newer versions of pyupgrade can automatically catch more opportunities, notably list comprehensions can use generators instead, in the following cases: - unpacking into function arguments as function(*generator) - unpacking into assignments of the form x, y = generator - as the argument to some builtin functions such as min/max/sorted Also catch a few creeping cases of new code added using older styles.
2021-09-30Fix typosChristian Clauss1-4/+4
2021-09-10Presence of nagfor signifies that Fortran tests can be run.Mat Cross1-0/+1
2021-08-22python: Workaround broken install pathXavier Claessens1-3/+2
2021-08-18test runner: add the ability to configure test.json for python pathsEli Schwartz1-1/+20
Adds new installed file types with @VAR@ substitution.
2021-08-17Revert "Disable Rust + clangcl."Nirbheek Chauhan1-8/+0
This reverts commit 6c55fc5cb0f6f363d5221c9bd0c1fd1fc6f90f4a
2021-08-18Revert "Disable vs2017 + 32bit Rust combo as it is broken."Nirbheek Chauhan1-4/+1
This reverts commit 75688240cfca7eed08c2754daa784c9bd1a70a73 Should've been fixed by c95bffb295dd8ae12dd37c9a6c33372a20cf9a68