From 34ea8fdf981b5e10c702e9adfcab7f9e316a129b Mon Sep 17 00:00:00 2001 From: Marvin Scholz Date: Wed, 30 Mar 2022 23:30:39 +0200 Subject: [PATCH] unittests: move get_convincing_fake_env_and_cc to run_tests.py --- run_tests.py | 13 ++++++++++++- unittests/allplatformstests.py | 17 +++-------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/run_tests.py b/run_tests.py index dc7a8f9ec..fcd933789 100755 --- a/run_tests.py +++ b/run_tests.py @@ -40,7 +40,7 @@ from mesonbuild import mesonlib from mesonbuild import mesonmain from mesonbuild import mtest from mesonbuild import mlog -from mesonbuild.environment import Environment, detect_ninja +from mesonbuild.environment import Environment, detect_ninja, detect_machine_info from mesonbuild.coredata import backendlist, version as meson_version from mesonbuild.mesonlib import OptionKey, setup_vsenv @@ -153,6 +153,17 @@ def get_fake_env(sdir='', bdir=None, prefix='', opts=None): env.machines.host.cpu_family = 'x86_64' # Used on macOS inside find_library return env +def get_convincing_fake_env_and_cc(bdir, prefix): + ''' + Return a fake env and C compiler with the fake env + machine info properly detected using that compiler. + Useful for running compiler checks in the unit tests. + ''' + env = get_fake_env('', bdir, prefix) + cc = compilers.detect_c_compiler(env, mesonlib.MachineChoice.HOST) + # Detect machine info + env.machines.host = detect_machine_info({'c':cc}) + return (env, cc) Backend = Enum('Backend', 'ninja vs xcode') diff --git a/unittests/allplatformstests.py b/unittests/allplatformstests.py index 25d630514..67c50e76d 100644 --- a/unittests/allplatformstests.py +++ b/unittests/allplatformstests.py @@ -60,7 +60,7 @@ from mesonbuild.scripts import destdir_join from mesonbuild.wrap.wrap import PackageDefinition, WrapException from run_tests import ( - Backend, exe_suffix, get_fake_env + Backend, exe_suffix, get_fake_env, get_convincing_fake_env_and_cc ) from .baseplatformtests import BasePlatformTests @@ -1546,23 +1546,12 @@ class AllPlatformTests(BasePlatformTests): self.build() self.run_tests() - def get_convincing_fake_env_and_cc(self) -> None: - ''' - Return a fake env and C compiler with the fake env - machine info properly detected using that compiler. - ''' - env = get_fake_env('', self.builddir, self.prefix) - cc = detect_c_compiler(env, MachineChoice.HOST) - # Detect machine info - env.machines.host = mesonbuild.environment.detect_machine_info({'c':cc}) - return (env, cc) - def test_underscore_prefix_detection_list(self) -> None: ''' Test the underscore detection hardcoded lookup list against what was detected in the binary. ''' - env, cc = self.get_convincing_fake_env_and_cc() + env, cc = get_convincing_fake_env_and_cc(self.builddir, self.prefix) expected_uscore = cc._symbols_have_underscore_prefix_searchbin(env) list_uscore = cc._symbols_have_underscore_prefix_list(env) if list_uscore is not None: @@ -1575,7 +1564,7 @@ class AllPlatformTests(BasePlatformTests): Test the underscore detection based on compiler-defined preprocessor macro against what was detected in the binary. ''' - env, cc = self.get_convincing_fake_env_and_cc() + env, cc = get_convincing_fake_env_and_cc(self.builddir, self.prefix) expected_uscore = cc._symbols_have_underscore_prefix_searchbin(env) define_uscore = cc._symbols_have_underscore_prefix_define(env) if define_uscore is not None: