15 Commits

Author SHA1 Message Date
na-trium-144
aee88e2363 Enable test case common/230 on msys2
Implemented 'windows' and '!windows' as platform value in test
configuration for this.
In MSVC environment this test is ignored anyway since make command is
not available.
2026-03-04 14:48:50 +01:00
Jussi Pakkanen
47fd13aefc tests: Clean up leftover files from source dirs. 2024-07-10 21:32:35 +03:00
Christoph Reiter
0762b86e59 tests: rename skip_on_jobname to expect_skip_on_jobname and skip_on_os to expect_skip_on_os
The test.json format currently has three keys related to skipping tests:

* `skip_on_jobname`
* `skip_on_os`
* `skip_on_env`

While `skip_on_env` marks the test itself as skipped, i.e. they don't get run when the
conditions are met, the other two skip options are just marking the test as "expected to be skipped"
if the conditions apply, i.e. they want to see `MESON_SKIP_TEST` in the output and things will
fail if that doesn't happen. They don't actually skip the tests as the names imply.

To make this clearer rename the keys:

* `skip_on_jobname` -> `expect_skip_on_jobname`
* `skip_on_os` -> `expect_skip_on_os`

`skip_on_env` stays the same, since that actually skips.

The docs were also confused about this, so adjust that too.
2024-03-17 04:46:26 -04:00
Arsen Arsenović
56ef698426 run_project_tests: support checking for symlinks 2023-09-13 21:44:40 -04:00
Xavier Claessens
b2654b2d43 Fix crash when installing a vala library and python sources
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-07 10:56:37 -04:00
Andrew McNulty
c730807696 Python: Add 'limited_api' kwarg to extension_module
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-08-14 20:02:09 -04:00
Eli Schwartz
44e123dd90 test runner: add the ability to configure test.json for python paths
Adds new installed file types with @VAR@ substitution.
2021-08-18 17:58:30 -04:00
Jon Turney
c78e6cac80 Allow skip_* test.json keys at top-level or in matrix: 2021-07-07 20:08:12 +02:00
Jon Turney
a2e44296c9 Add skip_on_os to test.json 2021-07-07 20:08:12 +02:00
Jon Turney
7126fbaf81 Add skip_on_jobname to test.json
Plan to replace the hard-coded list of 'may be skipped' framework tests in
skippable() with annotations in test.json which record 'will be skipped
in these specific CI jobs'.

If the value of the MESON_CI_JOBNAME env var (an arbitrary string
expected to be unique for each CI configuration) contains any of the
strings in the `skip_on_jobname` key in test.json, the test is expected
to output MESON_SKIP_TEST.

Unexpected skips or runs are treated as an error.

Future work: Maybe we should add additional count categories 'unexpected
skip' and 'unexpected not skipped', rather than counting those as 'skipped'
and 'failed', respectively.
2021-07-07 20:08:12 +02:00
Jon Turney
5da3557331 Fix test.json schema for 'matrix'
I'm not sure what the current schema is describing, but it's not doing
anything useful to validate 'matrix' entries, as I discover when I come
to add something to that.

'matrix' is a dict with possible keys 'options' and 'exclude'.
'options' is a dict with arbitrary keys, whose's values are arrays

Once we describe those dicts correctly, also fix that 'val' keys may be
string, boolean or null, and the corresponding 'exclude' keys may be
string or boolean.

v2:
Also allow 'val' and 'exclude' to be an array of strings.
2021-06-24 17:07:45 +01:00
Jon Turney
81d2d559f1 Enforce all dicts with a fixed set of keys in test.json schema
Improve test.json schema to disallow arbitrary keys in all dicts which
have a defined set of keys (the 'installed', matrix 'options' and
'stdout' dicts).

Add 'count' and 'comment' keys to 'stdout' dict.
2021-06-23 13:09:17 +01:00
Daniel Mensinger
17439fa3e8 test: Add 'dir' support for installed files in test.json
This is useful for automatically generated docs (doxygen, hotdoc)
with a lot of generated files that may differ with different
versions of the generator.
2020-08-27 00:08:57 +00:00
Jon Turney
1dee6c618d Update test.json schema to add stdout
Update the test.json schema, adding the 'stdout' property.

Also amend the test.json schema so the presence of an unexpected
property on the root object causes a validation error.

v2:
Also add 'tools' property to json schema.
Amend the documentation not to use the word 'list' to describe a dict.
2020-04-30 20:49:43 +01:00
Dylan Baker
e0c9259e79 Add a json schema for the test.json used in tests
This does a couple of nice things, one is that editors like vscode can
be configured to use this schema to provide auto completion and error
highlighting if invalid values are added or required values are missing.
It also allows us test that the format of the test matrix work in a unit
test, which I've added. It does require that the python jsonschema
package is installed.
2020-04-17 10:49:09 -07:00