aboutsummaryrefslogtreecommitdiff
path: root/run_cross_test.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2020-10-13 23:38:51 +0300
committerGitHub <noreply@github.com>2020-10-13 23:38:51 +0300
commit3372c58ca633e2bc7d5b36bcd7e0d14d12e0f82a (patch)
treee0af9977e708170d136104e4eb056b6f9f31eda0 /run_cross_test.py
parent55cf399ff8b9c15300f26dd1a46045dda7d49f98 (diff)
parentf5c9bf96b370832fc1a6e50771e2c171de0cd79d (diff)
downloadmeson-3372c58ca633e2bc7d5b36bcd7e0d14d12e0f82a.zip
meson-3372c58ca633e2bc7d5b36bcd7e0d14d12e0f82a.tar.gz
meson-3372c58ca633e2bc7d5b36bcd7e0d14d12e0f82a.tar.bz2
Merge pull request #7816 from mensinda/cmCross
cmake: Cross compilation support
Diffstat (limited to 'run_cross_test.py')
-rwxr-xr-xrun_cross_test.py20
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')