diff options
author | Daniel Mensinger <daniel@mensinger-ka.de> | 2020-10-05 20:45:21 +0200 |
---|---|---|
committer | Daniel Mensinger <daniel@mensinger-ka.de> | 2020-10-13 17:04:20 +0200 |
commit | b27af7e4654c3b2fe8c68a560c99fbffbd22789b (patch) | |
tree | 68e823c96c64cc3489db7c999a27db129e7a90df /run_cross_test.py | |
parent | 7e58f33376119b53e01616139ad9354ce9cfe003 (diff) | |
download | meson-b27af7e4654c3b2fe8c68a560c99fbffbd22789b.zip meson-b27af7e4654c3b2fe8c68a560c99fbffbd22789b.tar.gz meson-b27af7e4654c3b2fe8c68a560c99fbffbd22789b.tar.bz2 |
cmake: Add cross tests
Diffstat (limited to 'run_cross_test.py')
-rwxr-xr-x | run_cross_test.py | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/run_cross_test.py b/run_cross_test.py index 836cf31..5ce3e55 100755 --- a/run_cross_test.py +++ b/run_cross_test.py @@ -23,10 +23,13 @@ import argparse import subprocess from mesonbuild import mesonlib from mesonbuild.coredata import version as meson_version +from pathlib import Path +import json +import os -def runtests(cross_file, failfast, cross_only): - tests = ['--only', 'common'] +def runtests(cross_file, failfast, cross_only, test_list, env=None): + tests = ['--only'] + test_list if not cross_only: tests.append('native') cmd = mesonlib.python_command + ['run_project_tests.py', '--backend', 'ninja'] @@ -36,7 +39,7 @@ def runtests(cross_file, failfast, cross_only): cmd += ['--cross-file', cross_file] if cross_only: cmd += ['--native-file', 'cross/none.txt'] - return subprocess.call(cmd) + return subprocess.call(cmd, env=env) def main(): parser = argparse.ArgumentParser() @@ -44,7 +47,16 @@ def main(): parser.add_argument('--cross-only', action='store_true') parser.add_argument('cross_file') options = parser.parse_args() - return runtests(options.cross_file, options.failfast, options.cross_only) + cf_path = Path(options.cross_file) + try: + data = json.loads(cf_path.read_text()) + real_cf = cf_path.resolve().parent / data['file'] + assert real_cf.exists() + env = os.environ.copy() + env.update(data['env']) + return runtests(real_cf.as_posix(), options.failfast, options.cross_only, data['tests'], env=env) + except Exception: + return runtests(options.cross_file, options.failfast, options.cross_only, ['common']) if __name__ == '__main__': print('Meson build system', meson_version, 'Cross Tests') |