aboutsummaryrefslogtreecommitdiff
path: root/run_tests.py
diff options
context:
space:
mode:
authorNiklas Claesson <nicke.claesson@gmail.com>2018-06-30 21:52:32 +0200
committerNiklas Claesson <nicke.claesson@gmail.com>2018-10-10 21:32:02 +0200
commitd964da79e76b2e75d6fdaa06f48098e54cba8024 (patch)
treec2103c9a437bb772d619f9e7686347b3cb8669db /run_tests.py
parentfb1f0b969462835a831aea881c59983770e4c6e7 (diff)
downloadmeson-d964da79e76b2e75d6fdaa06f48098e54cba8024.zip
meson-d964da79e76b2e75d6fdaa06f48098e54cba8024.tar.gz
meson-d964da79e76b2e75d6fdaa06f48098e54cba8024.tar.bz2
tests: Merge backend guessing into one function
Diffstat (limited to 'run_tests.py')
-rwxr-xr-xrun_tests.py40
1 files changed, 23 insertions, 17 deletions
diff --git a/run_tests.py b/run_tests.py
index 7bb601a..1e03fa7 100755
--- a/run_tests.py
+++ b/run_tests.py
@@ -34,6 +34,28 @@ from mesonbuild import mlog
from mesonbuild.environment import Environment, detect_ninja
from mesonbuild.coredata import backendlist
+def guess_backend(backend, msbuild_exe):
+ # Auto-detect backend if unspecified
+ backend_flags = []
+ if backend is None:
+ if msbuild_exe is not None:
+ backend = 'vs' # Meson will auto-detect VS version to use
+ else:
+ backend = 'ninja'
+ # Set backend arguments for Meson
+ if backend.startswith('vs'):
+ backend_flags = ['--backend=' + backend]
+ backend = Backend.vs
+ elif backend == 'xcode':
+ backend_flags = ['--backend=xcode']
+ backend = Backend.xcode
+ elif backend == 'ninja':
+ backend_flags = ['--backend=ninja']
+ backend = Backend.ninja
+ else:
+ raise RuntimeError('Unknown backend: {!r}'.format(backend))
+ return (backend, backend_flags)
+
# Fake classes and objects for mocking
class FakeBuild:
@@ -236,24 +258,8 @@ def main():
import coverage
coverage.process_startup()
returncode = 0
- backend = options.backend
cross = options.cross
- msbuild_exe = shutil.which('msbuild')
- # Auto-detect backend if unspecified
- if backend is None:
- if msbuild_exe is not None:
- backend = 'vs' # Meson will auto-detect VS version to use
- else:
- backend = 'ninja'
- # Set backend arguments for Meson
- if backend.startswith('vs'):
- backend = Backend.vs
- elif backend == 'xcode':
- backend = Backend.xcode
- elif backend == 'ninja':
- backend = Backend.ninja
- else:
- raise RuntimeError('Unknown backend: {!r}'.format(backend))
+ backend, _ = guess_backend(options.backend, shutil.which('msbuild'))
# Running on a developer machine? Be nice!
if not mesonlib.is_windows() and not mesonlib.is_haiku() and 'TRAVIS' not in os.environ:
os.nice(20)