aboutsummaryrefslogtreecommitdiff
path: root/run_unittests.py
AgeCommit message (Collapse)AuthorFilesLines
2021-02-09mtest: TestSetup can have [] as an exe_wrapperPaolo Bonzini1-0/+2
Fix "meson test --wrapper foo --setup bar", it should work just fine if the setup does not define a wrapper. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2021-02-09Condense test directory names in preparation for rc1.Jussi Pakkanen1-3/+3
2021-02-08Fix exe wrapper detection for run targets.Jussi Pakkanen1-2/+1
2021-02-07Add Qt6 moduleLuca Weiss1-0/+20
2021-02-07Make installing non-existing subdirs a supported featurePeter Hutterer1-0/+1
install_subdir() with a non-existing subdir creates the directory in the target directory. This seems like an implementation detail but is quite useful to create new directories for e.g. configuration or plugins in the installed locations. git bisect says this started with 8fe816101467e66792251b4f57e0ddddb537764a. Let's add a test for it and document it to make this behavior official. Limitation: it can only create at the install_dir location, trying to create nested subdirectories does not work and indeed creates the wrong directory structure. That is a bug that should be fixed separately: install_subdir('blah', install_dir: get_option('prefix')) install_subdir('sub/foobar', install_dir: get_option('prefix')) install_subdir('foo/baz', install_dir: get_option('prefix')) $ tree ../_inst ../_inst ├── baz ├── blah └── foobar Fixes #2904
2021-02-07Merge pull request #8288 from bonzini/test-setup-exclude-suitesJussi Pakkanen1-0/+10
introduce add_test_setup(exclude suites: ...) keyword argument
2021-02-07Merge pull request #8305 from xclaesse/run-target-envJussi Pakkanen1-0/+1
run_target: Add env kwarg
2021-02-06interpreterbase: Add support for optional arguments to typed_pos_argsDylan Baker1-0/+60
This allows representing functions like assert(), which take optional positional arguments, which are not variadic. More importnatly you can represent a function like (* means optional, but possitional): ```txt func(str, *int, *str) ``` typed_pos_args will check that all of your types are correct, and if not provide None, which allow simplifying a number of implementation details
2021-02-06interpreterbase: Add support for variadic arguments to typed_pos_argsDylan Baker1-0/+96
This allows functions like `files()` to be decorated.
2021-02-06interpreterbase: Add a helper method for typing positional argumentsDylan Baker1-0/+34
We don't do a very good job of type checking in the interpreter, sometimes we leave it to the mid layers of backends to do that (layering violations) and sometimes we just don't check them at all. When we do check them it's a ton of boilerplate and complicates the code. This should help quite a bit.
2021-02-05run_unittests: fix misc lint errors due to whitespace or unused imports/argsEli Schwartz1-5/+3
2021-02-05run_unittests: fix undefined variable in error messageEli Schwartz1-1/+1
In commit fe973d9fc45581f20fefc41fc0b8eb0066c0129d, some uses of p got rewritten to compiler.language, but not all. We'd still raise an error message, but for the wrong thing. o_O
2021-02-05run_unittests: remove double definition of the same test caseEli Schwartz1-16/+0
In commit 591e6e94b9fccfc49ee7093cb21735a27fd64005 we somehow ended up with an identical extra copy.
2021-02-05unittests: fix error message stringDylan Baker1-3/+13
2021-02-05run_target: Add env kwargXavier Claessens1-0/+1
Re-implement it in backend using the same code path as for custom_target(). This for example handle setting PATH on Windows when command is an executable.
2021-02-04minstall: Add --dry-run optionXavier Claessens1-5/+14
Closes: #1281
2021-02-02Add support for LLVM's thinLTODylan Baker1-0/+25
This uses a separate option, b_lto_mode. It works in conjunction with b_lto_threads. Fixes #7493
2021-02-02compilers: Add support for using multiple threads with ltoDylan Baker1-0/+21
Both Clang and GCC support using multiple threads for preforming link time optimizaions, and they can now be configured using the `-Db_lto_threads` option. Fixes #7820
2021-02-02interpreter, mtest: introduce add_test_setup(exclude_suites: ...)Paolo Bonzini1-0/+10
This new keyword argument makes it possible to run specific test setups only on a subset of the tests. For example, to mark some tests as slow and avoid running them by default: add_test_setup('quick', exclude_suites: ['slow'], is_default: true) add_test_setup('slow') It will then be possible to run the slow tests with either `meson test --setup slow` or `meson test --suite slow`.
2021-01-30Merge pull request #8200 from bonzini/mtest-asyncio-logsJussi Pakkanen1-0/+1
mtest: improvements to logging
2021-01-29Can read project version from a file.Jussi Pakkanen1-0/+6
2021-01-26dist: Allow packaging subproject in same git repo as main projectXavier Claessens1-16/+44
2021-01-22unittests: use utf-8 encoding for child processesPaolo Bonzini1-0/+1
Ensure that unit tests will be able to parse UTF-8 output of "meson test".
2021-01-21interpreter: accept external programs and dependencies for summaryPaolo Bonzini1-0/+6
2021-01-20unittests: Remove double install for case 10Fini Jastrow1-5/+2
[why] In test case 10 the project is installed twice. This has been introduced with commit 55abe16 unit tests: Test that relative install_rpath works correctly where the cxx tests where added by copy and paste. [how] First test all build rpaths, then after install all install rpaths. [note] The aforementioned commit is a bit strange in that it adds a tests with a relative rpath with cxx files but not with c files. Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2021-01-20ninjabackend: Correct RPATH orderFini Jastrow1-0/+22
[why] If we build and test a library we need to make sure that we find the currently build library object first, before an older system installed one. This can be broken if the library in question is installed in a custom path, and another library we depend on also is installed there. [how] Just move the rpath to the current build artifacts to the front. Solves #8030. Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2021-01-19Keep buildtype the same even if user changes debug and/or optimization.Jussi Pakkanen1-41/+3
2021-01-18Fix cases where text leaks to stdout in unit tests.Jussi Pakkanen1-2/+2
2021-01-14coredata: Add missing nopromote wrap_mode choiceXavier Claessens1-0/+6
2021-01-13Fix misspellsAntonin Décimo1-2/+2
Signed-off-by: Antonin Décimo <antonin.decimo@gmail.com>
2021-01-12summary: align left, not align middleEli Schwartz1-12/+12
aligning along the left is, I think, what most projects want to do. Aligning along the middle looks subjectively ugly, and objectively prevents me from further indenting an element, e.g. Build information: prefix : /usr sysconfdir : /etc conf file : /etc/myprogram.conf
2021-01-12Allow '//' as project function id due to git bash path conversion.Luke Elliott1-2/+2
See https://stackoverflow.com/questions/54258996/git-bash-string-parameter-with-at-start-is-being-expanded-to-a-file-path
2021-01-11boost: default machine file properties to env var valuesDylan Baker1-1/+1
This both moves the env reading to configuration time, which is useful, and also simplifies the implementation of the boost dependency. The simplification comes from being able to delete basically duplicated code since the values will be in the Properties if they exist at all.
2021-01-11Move BinaryTable environment lookups to EnvironmentDylan Baker1-17/+16
This means that all the env lookups are done once, at initial configure time. This has all of the expected advantages.
2021-01-11pull env to program mappings out of BinaryType classDylan Baker1-4/+4
These really aren't pivotal to that class, and they're used outside of it. In a follow up patch they're not going to be used inside it at all.
2021-01-11rename cflags_mapping to CFLAGS_MAPPINGDylan Baker1-1/+1
This is PEP8 convention for a const variable. Also, make the type Mapping, which doesn't have mutation methods. This means mypy will warn us if someone tries to change this.
2021-01-11unittests: Clang on windows can use either ld or link.exeDylan Baker1-2/+4
it generally uses the ld style linkers with msys2 and link.exe style linkers otherwise, but anything's possible.
2021-01-10Merge pull request #8029 from bonzini/mtest-asyncio-nextJussi Pakkanen1-23/+23
mtest: asynchronous TAP parsing, improved progress report
2021-01-10Hotdoc: use template for Commands.md instead of generating the entire file ↵Eli Schwartz1-8/+4
(#8154) * doc: fix hotdoc misuse for dynamically generated content hotdoc has a native include feature for including files inline. Use this to generate one file for each dynamically generated code block, and include that file in Commands.md; see: https://hotdoc.github.io/syntax-extensions.html#smart-file-inclusion-syntax This permits us to move back to using the in-tree version of the hotdoc *.md sources, thus fixing the incorrect inclusion of "builddir/" in the "Edit on github" links which resulted from using copies as the source. Fixes #8061 * doc: call the dummy file a "stamp" as it is a better known term
2021-01-07mtest/TAPParser: use typing.NamedTuplePaolo Bonzini1-21/+21
It is cleaner than collections.namedtuple. It also catches that "count()" is a method on tuple, so rename the field to num_tests. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2021-01-06mtest: remove argument to the TAPParser constructorPaolo Bonzini1-2/+2
Pass the StringIO object to the parse method instead, because there will be no T.Iterator[str] to use in the asynchronous case. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2021-01-04Use a single coredata dictionary for optionsDylan Baker1-43/+44
This patches takes the options work to it's logical conclusion: A single flat dictionary of OptionKey: UserOptions. This allows us to simplify a large number of cases, as we don't need to check if an option is in this dict or that one (or any of 5 or 6, actually).
2021-01-04use OptionKey for builtin and base optionsDylan Baker1-35/+38
I would have prefered to do these seperatately, but they are combined in some cases, so it was much easier to convert them together. this eliminates the builtins_per_machine dict, as it's duplicated with the OptionKey's machine parameter.
2021-01-04move OptionKey to mesonlibDylan Baker1-2/+1
There's starting to be a lot of things including coredata that coredata needs to itself include. putting it in mesonlib makes more sense
2021-01-04use OptionKey for compiler_optionsDylan Baker1-23/+21
2021-01-04use OptionKey for coredata.user_optionsDylan Baker1-4/+5
2021-01-04use the OptionKey type for command line and machine filesDylan Baker1-1/+1
2021-01-04run_unittests: Add fatal-warnings to test_command_lineDylan Baker1-8/+9
Otherwise bugs like "option c_args is unknown" can slip through. that's bad.
2021-01-04run_unittests: make another test inprocess safeDylan Baker1-2/+6
2021-01-04run_unittests: Make test_command_line safe witn inprocessDylan Baker1-14/+27
This is pretty important to be able to debug the test, as it's huge and really should be a test split into subtests.