diff options
Diffstat (limited to 'unittests/allplatformstests.py')
-rw-r--r-- | unittests/allplatformstests.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/unittests/allplatformstests.py b/unittests/allplatformstests.py index 8a7fcd7..25d6305 100644 --- a/unittests/allplatformstests.py +++ b/unittests/allplatformstests.py @@ -1546,6 +1546,43 @@ 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() + expected_uscore = cc._symbols_have_underscore_prefix_searchbin(env) + list_uscore = cc._symbols_have_underscore_prefix_list(env) + if list_uscore is not None: + self.assertEqual(list_uscore, expected_uscore) + else: + raise SkipTest('No match in underscore prefix list for this platform.') + + def test_underscore_prefix_detection_define(self) -> None: + ''' + 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() + expected_uscore = cc._symbols_have_underscore_prefix_searchbin(env) + define_uscore = cc._symbols_have_underscore_prefix_define(env) + if define_uscore is not None: + self.assertEqual(define_uscore, expected_uscore) + else: + raise SkipTest('Did not find the underscore prefix define __USER_LABEL_PREFIX__') + @skipIfNoPkgconfig def test_pkgconfig_static(self): ''' |