Commit Graph

270 Commits

Author SHA1 Message Date
Daniel Mensinger b2112bc4f6 tests: Always enable the traceback in run_project_tests.py 2021-06-18 23:48:33 +02:00
Daniel Mensinger 10afec575b tests: Add visual seperator to the test logs in run_project_tests.py 2021-06-18 23:48:33 +02:00
Jon Turney 636bf91586 CI: Split out file format test as a separate GitHub workflow
Split out checking of file format as a separate GitHub workflow, rather
than running it as part of the project tests for every platform and
toolchain combination in CI, so that this test is not effected by the
changed paths constraints which are applied to the project tests.
2021-06-11 15:28:07 +02:00
Daniel Mensinger e987a88c19 tests: Force colorize CI output 2021-06-09 13:25:36 +02:00
Daniel Mensinger 7fac515acf tests: Don't even start running skipped tests 2021-06-09 13:25:36 +02:00
Daniel Mensinger 30ff36dc91 tests: Fix global state issue 2021-06-09 13:25:36 +02:00
Daniel Mensinger 0aa8843fb2 tests: Add option to limit the number of workers
Also, increase the minimum ammount of workers from 1 to
2 when the core count can not be determined.
2021-06-09 13:25:36 +02:00
Daniel Mensinger 098e3f9994 tests: Optional progress bar with tqdm 2021-06-09 13:25:36 +02:00
Daniel Mensinger 25df6e7d16 tests: Refactored test runner 2021-06-09 13:25:36 +02:00
Daniel Mensinger e1708d3de9 tests: Reduce complexity of the run_tests signature 2021-06-09 13:25:36 +02:00
Daniel Mensinger 99d3897caf tests: reduce global variables 2021-06-09 13:25:36 +02:00
Daniel Mensinger 7fc755b334 typing: Fully annotate run_project_tests.py 2021-06-09 13:25:36 +02:00
Dylan Baker 74ed27f776 cython: add 1 basic test 2021-06-07 09:17:40 -07:00
Jussi Pakkanen 0b2a7300c0 Set up VS environment automatically when run. 2021-05-13 11:03:10 +03:00
Ralf Gommers 9bbf2dd07c Add validation for --only in `run_project_tests.py`
This now gives a clear error rather than silently passes for
unrecognized categories, like:

    python run_project_tests.py --only nonexisting

or

    python run_project_tests.py --only objc  # should be 'objective c'
2021-05-02 22:27:40 +03:00
Jussi Pakkanen 54767ab482
Merge pull request #8568 from dcbaker/submit/qt-dependency-factory
QT: use a proper dependency factory
2021-03-24 22:52:15 +02:00
Dylan Baker 1767c57492 run_project_tests: add annotations 2021-03-23 15:28:08 -07:00
Dylan Baker 54c55f77a9 run_project_tests.py: Allow qt tests to skip on !macOS
We don't always have qmake installed (and it's good to test failure
paths too!) so we can't expect this to succeed in all cases. With the
following commit we'll use a test.json to test both pkg-config and
qmake, so we need to be able to skip.
2021-03-23 15:28:08 -07:00
Xavier Claessens 66d62a224e test.json: Add support for not matching stdout lines
By default expected line must be matched in order. When an expected line
is matched it does not matter if it's matched again later or not.

When defining "count", it means that line must be matched exactly that
many times before matching the next expected line. Once all occurences
have been matched for an expected line, it not must appear any more in
all next lines.
2021-03-23 18:07:18 -04:00
Xavier Claessens d0d81ab84e run_project_tests.py: Allow "--only common/240" syntax 2021-03-23 18:07:18 -04:00
Jussi Pakkanen ecd8c7e4af Update VS module version check. 2021-03-16 21:06:51 +02:00
Jussi Pakkanen 3ac3e125e4 Delete leftover files from some tests. 2021-03-16 16:37:02 +02:00
Eli Schwartz 6a0fabc647
mass rewrite of string formatting to use f-strings everywhere
performed by running "pyupgrade --py36-plus" and committing the results
2021-03-04 17:16:11 -05:00
Eli Schwartz 4340bf34fa
various python neatness cleanups
All changes were created by running

"pyupgrade --py3-only --keep-percent-format"

and committing the results. I have not touched string formatting for
now.

- use set literals
- simplify .format() parameter naming
- remove __future__
- remove default "r" mode for open()
- use OSError rather than compatibility aliases
- remove stray parentheses in function(generator) scopes
2021-03-04 17:11:26 -05:00
Dylan Baker 3e11da6db5 run_*_tests: Add some type annotations 2021-02-23 08:38:19 -08:00
Dylan Baker 8a12115741 run_project_tests: Delete a build directory if it already exists
This can happen if you abort a run before the cleanup finishes
2021-02-23 08:38:19 -08:00
Dylan Baker 44d5ea2a1f run_project_tests: split json parsing code from test gathering code 2021-02-23 08:38:19 -08:00
Dylan Baker 80ec157e5e ci: Add bindgen to CI images 2021-02-06 10:27:04 -08:00
Paolo Bonzini 9ba7b0ebd0 mlog: add __str__ method to AnsiDecorator
Automatically colorize the text when printing the AnsiDecorator, based
on the result of mlog.colorize_console().  This is how AnsiDecorator
is used most of the time anyway.
2021-01-21 08:54:35 -05:00
Daniel Mensinger 8f1d9bb7b0 cmake: add PATH logic to preliminary dep check (fixes #8133) 2021-01-10 21:48:23 +00:00
Christoph Reiter 58640bdff9 Remove AutoDeletedDir
Replace the only usage with a simple try/finally and remove the class.
2020-11-23 09:26:41 -08:00
Christoph Reiter edbcb2bfc8 Replace various calls to AutoDeletedDir with TemporaryDirectoryWinProof
AutoDeletedDir was a workaround to TemporaryDirectory not using
windows_proof_rmtree(). TemporaryDirectoryWinProof does now, so replace
it.
2020-11-23 09:26:41 -08:00
Jussi Pakkanen d27bad7d6d
Merge pull request #8011 from dcbaker/submit/post-python36-cleanups
Python 3.6 cleanups
2020-11-22 04:28:19 +02:00
Jason Ekstrand 9dab27f814 run_project_tests: Use the test environment for install and clean 2020-11-21 07:55:10 -08:00
Dylan Baker f6672c7a19 use real pathlib module
We added the _pathlib module to work around defeciencies in python 3.5's
implementation, since we now rely on 3.6 lets drop this
2020-11-20 15:08:40 -08:00
Sam Thursfield 21897a10ca gnome: Handle libraries that are not in the current build dir
The generate_gir() function previously assumed all library
inputs were in the current build dir. This would fail if they
weren't.
2020-11-13 17:39:47 +02:00
Jussi Pakkanen bca90722ec Bump minimum supported Python version to 3.6. Closes #6297. 2020-10-30 11:18:11 +02:00
Dylan Baker e8399c8c6e
depenencies/llvm: Handle llvm-config --shared-mode failing (#7379)
* depenencies/llvm: Handle llvm-config --shared-mode failing

Fixes: #7371
Fixes: #7878

* test cases/llvm: Refactor to use test.json

Instead of trying to cover everything internally
2020-10-22 17:21:14 +03:00
Daniel Mensinger b27af7e465
cmake: Add cross tests 2020-10-13 17:04:20 +02:00
Daniel Mensinger 1dfaccfd91 pathlib: Fix resolve() by overriding it in Python 3.5 2020-10-04 10:45:48 +02:00
Nirbheek Chauhan 946aeb6947 project tests: Also check whether introspect works 2020-09-17 22:25:37 +00:00
Nirbheek Chauhan 4c93da6531 project tests: Rename a variable for clarity 2020-09-17 22:25:37 +00:00
Jon Turney 6053da7a00 Add build machine compilers to project tests compiler report
When cross-compiling, also report build machine compilers in the
compiler report produced by run_project_tests.py
2020-09-11 20:45:09 +00:00
Jon Turney 88e13c5f7c Split tests out from 'common' which require a native compiler
Split out tests (and parts of tests) which require a native compiler
from the 'common' suite to a new suite called 'native', so we can
selectively avoid running those tests when only a cross-compiler is
available.

Also move test '211 cmake module' to 'cmake' suite, since it appears
that the way we use cmake requires a native compiler.
2020-09-10 07:20:41 +00:00
Daniel Mensinger e681235e5f
typing: fix code review 2020-09-08 20:15:58 +02: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
Jussi Pakkanen 587e159d6c
Merge pull request #7460 from mensinda/fixDeepcpy
deps: Do not deepcopy internal libraries (fixes #7457)
2020-07-23 12:45:49 +03:00
cmcneish a7a6a4833f
Add boost_root support to properties files (#7210)
* Add boost_root support to properties files

This commit implements `boost_root`, `boost_includedir`, and
`boost_librarydir` variable support to native and cross properties
files. The search order is currently environment variables, then
these variables, and finally a platform-dependent search.

* Add preliminary boost_root / boost_includedir tests

Each test contains a fake "version.hpp", as that's how boost detection is
currently being done. We look for this file relative to the root directory,
which probably shouldn't be allowed (it previously was for BOOST_LIBRARYDIR
but not for BOOST_ROOT). It also cannot help with breakage detection in
libraries, however it looks like this wasn't getting tested beforehand.

I've given the two unique version numbers that shouldn't be present in any
stock version of boost (001 and 002).

* Add return type to detect_split_root

* Return empty list when nothing found in BOOST_ROOT, rather than None

* Update boost_root tests

* Create nativefile.ini based on location of run_project_tests.py
* Add fake libraries to ensure boost_librarydir is being used

* Require all search paths for boost to be absolute

* Redo boost search ordering

To better match things like pkg-config, we now look through native/cross files,
then environment variables, then system locations for boost installations.

Path detection does not fall back from one method to the next for properties or
environment variables--if boost_root, boost_librarydir, or boost_includedir is
specified, they must be sufficient to find boost. Likewise for BOOST_ROOT and
friends. pkg-config detection is still optional falling back to system-wide
detection, for Conan.

(Also, fix a typo in test 33's nativefile)

* Correct return type for detect_roots

* Correct boost dependency search order in documentation

* Print debug information for boost library finding, to resolve CI issues

* Handle native/cross file templates in a more consistent way

All tests can now create a `nativefile.ini.in` if they need to use some
parameter that the testing framework knows about but they can't.

* Pass str--rather than PosixPath--to os.path.exists, for Python35

* Look for boost minor versions, rather than boost patch versions in test cases

* Drop fake dylib versions of boost_regex

* Prefer get_env_var to use of os.environ

* Correct error reporting for relative BOOST_ROOT paths

* Bump version this appears in. Also, change "properties file" to "machine file" as that appears to be the more common language.
2020-07-21 16:40:29 +02:00
Daniel Mensinger 62f3aa1dad
Make virtualenv inside the project work 2020-07-16 14:30:07 +02:00
Michael Hirsch 7851495064
remove redundant syntax 2020-07-12 09:13:00 -04:00