summaryrefslogtreecommitdiff
path: root/run_project_tests.py
Commit message (Collapse)AuthorAgeFilesLines
...
* If printing debug printing fails, try again in pure ASCII.Jussi Pakkanen2018-04-231-2/+10
|
* Explicitly open log files in utf-8.Jussi Pakkanen2018-04-221-2/+2
|
* Fix install checks when cross-compiling.Elliott Sales de Andrade2018-04-211-10/+9
| | | | | It checks the build machine for the correct extensions of resulting binaries, but it should be checking the host machine.
* Default run_project_tests backend to ninja instead of xcode on OS X.Jukka Laurila2018-03-091-2/+0
| | | | The xcode backend is still incomplete and fails many tests.
* Enable 'test cases/frameworks/10 gtk-doc' for gtkdoc >= 1.26Jon Turney2018-02-271-2/+2
| | | | | | | | Enable 'test cases/frameworks/10 gtk-doc' if gtkdoc version is 1.26 or later. Old versions of gtkdoc-scan also output the version to stdout rather than stderr, so be sure to handle that...
* Determining whether to run C# tests is so difficult it deserves its own ↵Jussi Pakkanen2018-02-251-1/+23
| | | | function.
* Add support for Visual Studio csc c# compilerThibault Saunier2018-02-251-1/+1
|
* Always run all framework tests on all platformsJon Turney2018-02-211-14/+31
| | | | | Always run all framework tests on all platforms, but allow them to be skipped when not running under CI for linux.
* Run FPGA tests.Jussi Pakkanen2018-02-201-0/+1
|
* Verify that failing tests are failing with an error, not a python exceptionJon Turney2018-02-151-2/+5
| | | | | | | | | | | | | | | PR #2527 suggests "making failing tests more strict about failing gracefully". To achive this, make meson exit with distinct exit statuses for meson errors and python exceptions, and check the exit status is as expected for failing tests. I can't see how to write a test for this, within the current framework. You can test this change by reverting the fix (but not the test) from commit 1a159db8 and verifying that 'test cases/failing/66 string as link target' fails.
* run_project_tests: Remove workaround for missing ↵Christoph Reiter2018-01-301-50/+2
| | | | | | | | | | | | | | concurrent.futures.ProcessPoolExecutor support This removes the workaround code added in https://github.com/mesonbuild/meson/commit/52e1b0a3c909 The bug in the MSYS2 Python3 build has been fixed for some time now, see https://github.com/Alexpux/MINGW-packages/pull/2619 The original commit noted that this might be helpful for OpenBSD, but that has sem_open support since version 5.5 released 4 years ago: https://www.openbsd.org/55.html
* Merge pull request #2803 from dcbaker/wip/freebsd-fixesJussi Pakkanen2018-01-091-4/+13
|\ | | | | various BSD fixes
| * tests: Split objc and objc++ testsDylan Baker2018-01-061-3/+12
| | | | | | | | | | This allows platforms that can compile one or the other (but not both) to run the tests that they can.
| * run_project_tests: correctly search for objcpp compilerDylan Baker2018-01-061-1/+1
| | | | | | | | | | | | | | | | Instead of looking for an objc compiler. Fixes objc++ tests on DragonFlyBSD (which has an objc but not an objc++ compiler) Really though, the objc and objc++ tests need to be untangled so that the objc tests can run even if an objc++ compiler is unavilable.
* | Only run Boost tests on osx if it is actually installed.Jussi Pakkanen2018-01-091-1/+5
| |
* | Fix installed files check for gobject-introspection tests on CygwinJon Turney2018-01-061-0/+1
|/ | | | | | | | g-ir-scanner --no-libtool needed some fixes similar to [1] for Cygwin, as well. Now that is done, it's possible to make these tests run and pass on Cygwin. [1] https://bugzilla.gnome.org/show_bug.cgi?id=781525
* CI: Run boost test for CygwinJon Turney2018-01-041-4/+1
| | | | | | | | | Also, use '^' to escape newlines in appveyor-install.bat to avoid an absurdly long line, remove some unnecessary quotation, and alphabetically sort packages Also, define the _XOPEN_SOURCE feature test macro in the boost test to avoid 'not declared in this scope' warnings for pthread_rwlock_init(), etc.
* Run the boost test on osx on travis.Benjamin Redelings2018-01-011-1/+5
|
* Use deterministic builddir so CCache works across invocations.Jussi Pakkanen2017-12-181-1/+10
|
* Make the full test suite runnable with an external command.Jussi Pakkanen2017-11-201-2/+19
|
* Replaced sys.executable use with the mesonlib equivalent.Jussi Pakkanen2017-11-201-1/+1
|
* Tests can be run with an external Meson command.Jussi Pakkanen2017-11-201-3/+3
|
* Moved prebuilt static library under unit tests.Jussi Pakkanen2017-09-301-53/+17
|
* Moved prebuilt object test under unittests.Jussi Pakkanen2017-09-301-5/+3
|
* tests: Only error for lines starting with tabsNirbheek Chauhan2017-09-201-1/+1
| | | | Otherwise we can't even use tabs for testing.
* Try to use 2x the number of cores.Jussi Pakkanen2017-08-311-0/+6
|
* Turned mesontest into on internal module.Jussi Pakkanen2017-08-021-3/+3
|
* Handle objc compiler missing more reliably.Jussi Pakkanen2017-08-021-2/+5
|
* Support implibs for executables on WindowsJon Turney2017-07-201-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | | Add a boolean 'implib' kwarg to executable(). If true, it is permitted to use the returned build target object in link_with: On platforms where this makes sense (e.g. Windows), an implib is generated for the executable and used when linking. Otherwise, it has no effect. (Rather than checking if it is a StaticLibrary or SharedLibary, BuildTarget subclasses gain the is_linkable_target method to test if they can appear in link_with:) Also install any executable implib in a similar way to a shared library implib, i.e. placing the implib in the appropriate place Add tests of: - a shared_module containing a reference to a symbol which is known (at link time) to be provided by the executable - trying to link with non-implib executables (should fail) - installing the implib (This last one needs a little enhancement of the installed file checking as this is the first install test we have which needs to work with either MSVC-style or GCC-style implib filenames)
* Close files reliably.Jussi Pakkanen2017-07-181-2/+7
|
* Split out languages from compilers.pyAlistair Thomas2017-06-231-1/+0
|
* Add some colour to test output.Elliott Sales de Andrade2017-06-221-7/+26
| | | | Bold the section names and colourize errors&skips.
* Merge pull request #1924 from mesonbuild/tingping/yelp-fixesJussi Pakkanen2017-06-211-1/+2
|\ | | | | Various yelp fixes
| * tests: Always consider symlink as valid installed filePatrick Griffis2017-06-171-1/+2
| | | | | | | | | | An installed symlink might point to a non-existing file (because DESTDIR is set) so just always accept them.
* | tests: Add Boost unit tests and project tests on WindowsNirbheek Chauhan2017-06-101-3/+10
| | | | | | | | | | | | Boost tests are disabled on Windows for now because the detection is actually completely broken. Once that's fixed (after the release) we can enable it again.
* | tests: Increase dependencies coverage a bit moreNirbheek Chauhan2017-06-101-1/+1
| |
* | unit tests: Add class to generate failing testsNirbheek Chauhan2017-06-091-13/+1
|/ | | | | | | | | It is not feasible to test all failure modes by creating projects in `test cases/failing` that would be an explosion of files, and that mechanism is too coarse anyway. We have no way to ensure that the expected error is being raised. See FailureTests.test_dependency for an example.
* Create helper function for a rmtree that works reliably on Windows.Jussi Pakkanen2017-05-211-18/+5
|
* Remove unused variables.Elliott Sales de Andrade2017-05-171-1/+0
|
* Remove unnecessary __init__ methods.Elliott Sales de Andrade2017-05-171-3/+0
|
* Skip ObjectiveC/C++ tests if ObjC compiler is not availableTim-Philipp Müller2017-05-131-1/+21
|
* project tests: Also regen before buildingNirbheek Chauhan2017-05-091-3/+7
| | | | | | | | | This actually caught a cached-dependency related bug for me that the test-time regen did not. I also increased the ninja wait time to 1 second because that's actually how long you need to sleep to be guaranteed that a change will be detected. Must poke upstream about https://github.com/ninja-build/ninja/issues/371
* Store and print test logs of executed projects.Jussi Pakkanen2017-05-051-2/+8
|
* Don't use len() to test emptiness vs not emptinessDylan Baker2017-05-021-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Meson has a common pattern of using 'if len(foo) == 0:' or 'if len(foo) != 0:', however, this is a common anti-pattern in python. Instead tests for emptiness/non-emptiness should be done with a simple 'if foo:' or 'if not foo:' Consider the following: >>> import timeit >>> timeit.timeit('if len([]) == 0: pass') 0.10730923599840025 >>> timeit.timeit('if not []: pass') 0.030033907998586074 >>> timeit.timeit('if len(['a', 'b', 'c', 'd']) == 0: pass') 0.1154778649979562 >>> timeit.timeit("if not ['a', 'b', 'c', 'd']: pass") 0.08259823200205574 >>> timeit.timeit('if len("") == 0: pass') 0.089759664999292 >>> timeit.timeit('if not "": pass') 0.02340641999762738 >>> timeit.timeit('if len("foo") == 0: pass') 0.08848102600313723 >>> timeit.timeit('if not "foo": pass') 0.04032287199879647 And for the one additional case of 'if len(foo.strip()) == 0', which can be replaced with 'if not foo.isspace()' >>> timeit.timeit('if len(" ".strip()) == 0: pass') 0.15294511600222904 >>> timeit.timeit('if " ".isspace(): pass') 0.09413968399894657 >>> timeit.timeit('if len(" abc".strip()) == 0: pass') 0.2023209120015963 >>> timeit.timeit('if " abc".isspace(): pass') 0.09571301700270851 In other words, it's always a win to not use len(), when you don't actually want to check the length.
* Warn when directory numbers are non-unique.Elliott Sales de Andrade2017-04-291-0/+7
|
* Shorten detect_tests_to_run.Elliott Sales de Andrade2017-04-291-21/+24
| | | | | Remove some duplication with a list comprehension, and invert conditions instead of long ternary statements.
* tests: Move appveyor platform workaround to run_tests.pyNirbheek Chauhan2017-04-091-15/+0
| | | | This is also needed for the unit tests
* unit tests: Fix running specific targets with MSBuildNirbheek Chauhan2017-04-091-10/+13
| | | | | | /t:targetname syntax doesn't work, but running the vcxproj does work Also use the Backend enum everywhere.
* run_project_tests: Clean on backends that can't installNirbheek Chauhan2017-04-091-46/+34
| | | | | | | | Also sets more groundwork for running unit tests with backends other that Ninja. Transferring global state to executors is totally broken in Python 3.4 so just serialize all the commands.
* project tests: Add a new BuildStep called validateNirbheek Chauhan2017-04-091-1/+2
|