Nirbheek Chauhan
a331bf1162
unit tests: Run on all backends, not just Ninja
8 years ago
Nirbheek Chauhan
7e4a67c790
run_project_tests: Clean on backends that can't install
...
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.
8 years ago
Nirbheek Chauhan
d755228afe
tests: Factor out common code to run_tests
...
And use generic build/clean/test/install commands in the unit tests,
just like project tests. This sets the groundwork for running the unit
tests with all backends.
8 years ago
Nirbheek Chauhan
4646958917
run_tests: Improve the backend detection
8 years ago
Nirbheek Chauhan
8df671b6f3
run_tests: Don't run unit tests when the VS backend is selected
8 years ago
Nirbheek Chauhan
2a64a2d00c
run_tests.py: Nice down when running on a dev machine
...
To avoid destroying productivity.
8 years ago
Nirbheek Chauhan
18bce47691
find_program: Correctly use scripts found in PATH
...
We also need to check whether the program found in PATH can be executed
directly by Windows or if we need to figure out what the interpreter is
and add it to the list.
Also add `msc` to the list of extensions that can be executed natively
Includes a project test and a unit test for this and all expected
behaviours on Windows.
8 years ago
Nirbheek Chauhan
82057ccd55
Add unit tests related to absolute prefixes
...
Also split the unit tests into those that are actually Linux-specific
and those that are not and can (and should) run on all platforms. This
will give us much better coverage since a lot of these test
platform-specific code in Meson that wraps features that we expose in
a platform-agnostic way.
Tests are for:
https://github.com/mesonbuild/meson/issues/1341
https://github.com/mesonbuild/meson/issues/1345
https://github.com/mesonbuild/meson/issues/1349
8 years ago
Nirbheek Chauhan
bbbc4e336b
Run some unit tests on all platforms
...
InternalTests can be run on all platforms since they have nothing
Linux-specific.
8 years ago
Jussi Pakkanen
92f8e0ab31
Do not run arm cross compilation tests on arm.
8 years ago
Jussi Pakkanen
7aa314368f
Some merge conflicts are logical. Such as this one was.
8 years ago
Jussi Pakkanen
2b65083463
Fix cross test and run them if a cross compiler is available.
8 years ago
Igor Gnatenko
8268eb4959
tree-wide: remove unused imports
...
./setup.py:17:1: F401 'os' imported but unused
import os
^
./setup.py:37:1: F401 'stat.ST_MODE' imported but unused
from stat import ST_MODE
^
./run_tests.py:17:1: F401 'os' imported but unused
import subprocess, sys, os
^
./run_tests.py:18:1: F401 'shutil' imported but unused
import shutil
^
./run_unittests.py:23:1: F401 'mesonbuild.dependencies.Qt5Dependency' imported but unused
from mesonbuild.dependencies import PkgConfigDependency, Qt5Dependency
^
./mesonbuild/build.py:15:1: F401 '.coredata' imported but unused
from . import coredata
^
./mesonbuild/interpreter.py:32:1: F401 'subprocess' imported but unused
import os, sys, subprocess, shutil, uuid, re
^
./mesonbuild/interpreter.py:32:1: F401 're' imported but unused
import os, sys, subprocess, shutil, uuid, re
^
./mesonbuild/dependencies.py:23:1: F401 'subprocess' imported but unused
import os, stat, glob, subprocess, shutil
^
./mesonbuild/mesonlib.py:17:1: F401 'sys' imported but unused
import platform, subprocess, operator, os, shutil, re, sys
^
./mesonbuild/modules/qt5.py:15:1: F401 'subprocess' imported but unused
import os, subprocess
^
./mesonbuild/modules/pkgconfig.py:15:1: F401 '..coredata' imported but unused
from .. import coredata, build
^
./mesonbuild/scripts/scanbuild.py:15:1: F401 'sys' imported but unused
import sys, os
^
./mesonbuild/scripts/meson_exe.py:20:1: F401 'subprocess' imported but unused
import subprocess
^
./mesonbuild/scripts/meson_exe.py:22:1: F401 '..mesonlib.MesonException' imported but unused
from ..mesonlib import MesonException, Popen_safe
^
./mesonbuild/scripts/symbolextractor.py:23:1: F401 'subprocess' imported but unused
import os, sys, subprocess
^
./mesonbuild/scripts/symbolextractor.py:25:1: F401 '..mesonlib.MesonException' imported but unused
from ..mesonlib import MesonException, Popen_safe
^
./mesonbuild/scripts/meson_install.py:19:1: F401 '..mesonlib.MesonException' imported but unused
from ..mesonlib import MesonException, Popen_safe
^
./mesonbuild/scripts/yelphelper.py:15:1: F401 'sys' imported but unused
import sys, os
^
./mesonbuild/scripts/yelphelper.py:20:1: F401 '..mesonlib.MesonException' imported but unused
from ..mesonlib import MesonException
^
./mesonbuild/backend/vs2010backend.py:17:1: F401 're' imported but unused
import re
^
./test cases/vala/8 generated sources/src/copy_file.py:3:1: F401 'os' imported but unused
import os
^
./test cases/common/107 postconf/postconf.py:3:1: F401 'sys' imported but unused
import sys, os
^
./test cases/common/129 object only target/obj_generator.py:5:1: F401 'shutil' imported but unused
import sys, shutil, subprocess
^
./test cases/common/57 custom target chain/usetarget/subcomp.py:3:1: F401 'os' imported but unused
import sys, os
^
./test cases/common/95 dep fallback/subprojects/boblib/genbob.py:3:1: F401 'os' imported but unused
import os
^
./test cases/common/98 gen extra/srcgen.py:4:1: F401 'os' imported but unused
import os
^
./test cases/common/113 generatorcustom/gen.py:3:1: F401 'os' imported but unused
import sys, os
^
./test cases/common/113 generatorcustom/catter.py:3:1: F401 'os' imported but unused
import sys, os
^
./test cases/common/59 object generator/obj_generator.py:5:1: F401 'shutil' imported but unused
import sys, shutil, subprocess
^
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
8 years ago
Jussi Pakkanen
afe00697fa
Run unittests only with default compiler.
8 years ago
Jussi Pakkanen
8faf0414ce
Some fixes to unittest running.
8 years ago
Jussi Pakkanen
f90bfa5245
Review fixes.
8 years ago
Jussi Pakkanen
3a002709f4
Pass cmd line args onwards.
8 years ago
Jussi Pakkanen
b11a5b93cb
Store all invocation output. Not shown to users yet.
8 years ago
Jussi Pakkanen
c7936f6819
Run unittests.
8 years ago
Nirbheek Chauhan
81423270f5
run_tests: Print stdo and stde in failing test logs
...
This is a superset of the mlog output, and also contains the ninja
output and the test output.
8 years ago
Nirbheek Chauhan
91c5f07a8e
run_tests.py: Ignore .pdb files while validating install
...
Their presence depends on build options and compiler, and we don't
currently have the test infrastructure to deal with this.
8 years ago
Elliott Sales de Andrade
aec1e88c21
Use context manager in test cases.
8 years ago
Matthias Klumpp
56823272ab
Implement D support
...
This patch adds support for the D programming language[1] to Meson.
The following compilers are supported:
* LDC
* GDC
* DMD
[1]: http://dlang.org/
8 years ago
Jussi Pakkanen
f3c793b9c1
Added test for a prebuilt static library and a declare_dependency that uses it.
8 years ago
Nirbheek Chauhan
88aafd363e
Normalize the path of a configured file to avoid dupes ( #640 )
8 years ago
Nirbheek Chauhan
cc4826b85f
run_tests.py: Make 'no-installed-files' stricter
...
When the file 'no-installed-files' is installed, require that the test
not install any other files. A test for this is pending.
8 years ago
Nirbheek Chauhan
45c8557dc6
Fix tests for the new library/executable naming scheme
...
Also add new tests for the platform-specific and compiler-specific
versioning scheme.
A rough summary is:
1. A bug in how run_tests.py:validate_install checked for files has been
fixed. Earlier it wasn't checking the install directory properly.
2. Shared libraries are no longer installed in common tests, and the
library name/path testing is now done in platform-specific tests.
3. Executables are now always called something?exe in the
installed_files.txt file, and the suffix automatically corrected
depending on the platform.
4. If a test installs a file called 'no-installed-files', the installed
files for that test are not validated. This is required to implement
compiler-specific tests for library names/paths such as MSVC vs MinGW
5. The platform-specific file renaming in run_tests.py has been mostly
removed since it is broken for shared libraries and isn't needed for
static libraries.
6. run_tests.py now reports all missing and extra files. The logic for
finding these has been reworked.
9 years ago
Nirbheek Chauhan
d61656d43c
Fix typo argument order to TestRunner ( #615 )
9 years ago
Jussi Pakkanen
436eab9b85
Print full mesonlog on failed tests when run under CI.
9 years ago
Jussi Pakkanen
15ab984d8e
Finish appveyor integration by moving static library in a subdir to avoid clashes.
9 years ago
Jussi Pakkanen
1e9e91f25a
Print full log when failures happen under Appveyor.
9 years ago
Nicolas Schneider
3bedca0257
add vs2015 backend
9 years ago
Jussi Pakkanen
37c5d45d07
Print all of the things when CI fails.
9 years ago
Nicolas Schneider
4a102fd445
cancel all pending test cases when interrupted by signals
9 years ago
Nicolas Schneider
1d2b4ed8e9
simplify unit test output ( #506 )
...
Print status on single line
only print a single line for succeeded tests and two lines for failed
tests. This makes it easier to scan the output for failed tests.
9 years ago
Nicolas Schneider
435700aeb0
add exponential backoff for deleting temp directories
9 years ago
Nicolas Schneider
5decddf09f
fix off by one, since range() does not include the end of the range
9 years ago
Nicolas Schneider
32e0973ef1
fix randomly failing test execution on Windows
...
shutil.rmtree, which is used by tempfile.TemporaryDirectory, randomly fails
on Windows, because the directory is not empty although it should be,
because all files were deleted by shutil.rmtree internals before trying to
remove the directory.
A simple retry approach fixes the issue.
9 years ago
Nicolas Schneider
42e6b78351
do not print anything during tests
...
Otherwise, output from parallel tests might interleave. Let the main loop
handle printing of additional info.
9 years ago
Nicolas Schneider
ff9d879eea
properly fix Windows parallel tests by not using global variables
...
The _run_test method uses several global variables (unity_flags,
backend_flags, compile_commands, install_commands) which are
not set when the method is run by the executor (at least on Windows).
To resolve this, pass the variables as method parameters.
9 years ago
Nicolas Schneider
eb69b268d4
Revert "Fix Windows. Again."
...
This reverts commit e522a9f268
.
9 years ago
Jussi Pakkanen
e522a9f268
Fix Windows. Again.
9 years ago
Jussi Pakkanen
a7e9301215
Output is all pretty again.
9 years ago
Jussi Pakkanen
81e37e1220
Run tests in parallel.
9 years ago
Jussi Pakkanen
9587715585
Fix Windows.
9 years ago
Jussi Pakkanen
ea092fefc2
Use individual tempdirs for building and installing in unit tests.
9 years ago
Jussi Pakkanen
5b3c9e262b
Check option files too.
9 years ago
Nicolas Schneider
5482a23936
enhance test framework to read meson arguments from a file per test
...
A 'test_args.txt' file in the same directory as the test case will be
parsed by the test framework and the content will be passed as arguments
to meson during configuration. The arguments are put before any
'extra_args' to make them overwritable from the command line.
9 years ago
Jussi Pakkanen
455e55f8e5
Back to .py suffix in files. Closes #394 .
9 years ago
Nicolas Schneider
681a14a695
use sys.stdout.encoding when parsing subprocess output
9 years ago