Make run_cross_test.py just a wrapper around run_project_tests.py
This makes the platform_fix_name() machinery for toolchains which don't
have gcc-like filename conventions available to cross testing.
# limitations under the License.
'''Runs the basic test suite through a cross compiler.
-Not part of the main test suite because of two reasons:
-1) setup of the cross build is platform specific
-2) it can be slow (e.g. when invoking test apps via wine)
+This is now just a wrapper around run_project_tests.py with specific arguments
+'''
-Eventually migrate to something fancier.'''
-
-import sys
-import os
-from pathlib import Path
import argparse
-
-from run_project_tests import gather_tests, run_tests, StopException, setup_commands
-from run_project_tests import failing_logs
+import subprocess
+import sys
+from mesonbuild import mesonlib
def runtests(cross_file, failfast):
- commontests = [('common', gather_tests(Path('test cases', 'common')), False)]
- try:
- (passing_tests, failing_tests, skipped_tests) = \
- run_tests(commontests, 'meson-cross-test-run', failfast, ['--cross-file', cross_file])
- except StopException:
- pass
- print('\nTotal passed cross tests:', passing_tests)
- print('Total failed cross tests:', failing_tests)
- print('Total skipped cross tests:', skipped_tests)
- if failing_tests > 0 and ('CI' in os.environ):
- print('\nMesonlogs of failing tests\n')
- for log in failing_logs:
- print(log, '\n')
- return failing_tests
+ tests = ['--only', 'common']
+ cmd = mesonlib.python_command + ['run_project_tests.py', '--backend', 'ninja'] + (['--failfast'] if failfast else []) + tests + ['--cross-file', cross_file]
+ return subprocess.call(cmd)
def main():
parser = argparse.ArgumentParser()
parser.add_argument('--failfast', action='store_true')
parser.add_argument('cross_file')
options = parser.parse_args()
- setup_commands('ninja')
return runtests(options.cross_file, options.failfast)
if __name__ == '__main__':
