aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--unittests/allplatformstests.py37
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):
'''