aboutsummaryrefslogtreecommitdiff
path: root/run_tests.py
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek@centricular.com>2018-05-27 01:29:11 +0530
committerNirbheek Chauhan <nirbheek.chauhan@gmail.com>2018-06-05 10:50:22 +0000
commitbc4dd5e20163ef01f7fe3e518599f8bbd84c6f90 (patch)
treee3e731dd2d18730a437c23ae2f48bb5809d28a25 /run_tests.py
parenteb383ef4a2daad1766a8ace3164e6b083c388130 (diff)
downloadmeson-bc4dd5e20163ef01f7fe3e518599f8bbd84c6f90.zip
meson-bc4dd5e20163ef01f7fe3e518599f8bbd84c6f90.tar.gz
meson-bc4dd5e20163ef01f7fe3e518599f8bbd84c6f90.tar.bz2
.travis.yml: Add CI for armhf and mingw
Also split them out to their own jobs. Travis gives us 5 parallel jobs now, so we can parallelize it a bit more.
Diffstat (limited to 'run_tests.py')
-rwxr-xr-xrun_tests.py43
1 files changed, 23 insertions, 20 deletions
diff --git a/run_tests.py b/run_tests.py
index da02a9b..1fd72b2 100755
--- a/run_tests.py
+++ b/run_tests.py
@@ -158,9 +158,6 @@ def get_fake_options(prefix):
def should_run_linux_cross_tests():
return shutil.which('arm-linux-gnueabihf-gcc') and not platform.machine().lower().startswith('arm')
-def should_run_mingw_cross_tests():
- return shutil.which('x86_64-w64-mingw32-gcc')
-
def run_configure_inprocess(commandlist):
old_stdout = sys.stdout
sys.stdout = mystdout = StringIO()
@@ -204,13 +201,21 @@ if __name__ == '__main__':
returncode = 0
# Iterate over list in reverse order to find the last --backend arg
backend = Backend.ninja
+ cross = False
+ # FIXME: Convert to argparse
for arg in reversed(sys.argv[1:]):
if arg.startswith('--backend'):
if arg.startswith('--backend=vs'):
backend = Backend.vs
elif arg == '--backend=xcode':
backend = Backend.xcode
- break
+ if arg.startswith('--cross'):
+ if arg == '--cross=arm':
+ cross = 'arm'
+ elif arg == '--cross=mingw':
+ cross = 'mingw'
+ else:
+ raise RuntimeError('Unknown cross tests selected')
# 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)
@@ -242,20 +247,18 @@ if __name__ == '__main__':
'coverage.process_startup()\n')
env['COVERAGE_PROCESS_START'] = '.coveragerc'
env['PYTHONPATH'] = os.pathsep.join([td] + env.get('PYTHONPATH', []))
- # Meson command tests
- returncode += subprocess.call(mesonlib.python_command + ['run_meson_command_tests.py', '-v'], env=env)
- # Unit tests
- returncode += subprocess.call(mesonlib.python_command + ['run_unittests.py', '-v'], env=env)
- # Ubuntu packages do not have a binary without -6 suffix.
- cross_test_args = mesonlib.python_command + ['run_cross_test.py']
- if should_run_linux_cross_tests():
- print(mlog.bold('Running armhf cross tests.').get_text(mlog.colorize_console))
- print()
- returncode += subprocess.call(cross_test_args + ['cross/ubuntu-armhf.txt'], env=env)
- if should_run_mingw_cross_tests():
- print(mlog.bold('Running mingw-w64 64-bit cross tests.').get_text(mlog.colorize_console))
- print()
- returncode += subprocess.call(cross_test_args + ['cross/linux-mingw-w64-64bit.txt'], env=env)
- # Project tests
- returncode += subprocess.call(mesonlib.python_command + ['run_project_tests.py'] + sys.argv[1:], env=env)
+ if not cross:
+ returncode += subprocess.call(mesonlib.python_command + ['run_meson_command_tests.py', '-v'], env=env)
+ returncode += subprocess.call(mesonlib.python_command + ['run_unittests.py', '-v'], env=env)
+ returncode += subprocess.call(mesonlib.python_command + ['run_project_tests.py'] + sys.argv[1:], env=env)
+ else:
+ cross_test_args = mesonlib.python_command + ['run_cross_test.py']
+ if cross == 'arm':
+ print(mlog.bold('Running armhf cross tests.').get_text(mlog.colorize_console))
+ print()
+ returncode += subprocess.call(cross_test_args + ['cross/ubuntu-armhf.txt'], env=env)
+ elif cross == 'mingw':
+ print(mlog.bold('Running mingw-w64 64-bit cross tests.').get_text(mlog.colorize_console))
+ print()
+ returncode += subprocess.call(cross_test_args + ['cross/linux-mingw-w64-64bit.txt'], env=env)
sys.exit(returncode)