aboutsummaryrefslogtreecommitdiff
path: root/unittests
diff options
context:
space:
mode:
authorEli Schwartz <eschwartz@archlinux.org>2022-05-05 23:39:34 -0400
committerXavier Claessens <xclaesse@gmail.com>2023-02-24 20:45:00 -0500
commitcf07596cf6bc280dac0afff505147ca626c79453 (patch)
treeef7a4ab1e652bca9131f5b53eedcc056b86aa6e1 /unittests
parent9f05d45b7084866f0b306f4685a118e5fea138af (diff)
downloadmeson-cf07596cf6bc280dac0afff505147ca626c79453.zip
meson-cf07596cf6bc280dac0afff505147ca626c79453.tar.gz
meson-cf07596cf6bc280dac0afff505147ca626c79453.tar.bz2
test cases: use best practices method to find the python3 program
We do not need the python module's find_installation() for this, as this does various things to set up building and installing python modules (pure python and C-API). This functionality is already tested in the python tests. Elsewhere, when we just need an interpreter capable of running python scripts in order to guarantee a useful scripting language for custom commands, it suffices to use find_program(), which does not run an introspection script or do module imports, and is thus faster and a bit cleaner. Either way, both methods are guaranteed to find the python3 interpreter, deferring to mesonlib.python_command for that guarantee. test "71 summary" can sometimes return the python command with the ".exe" part all uppercased for mysterious Windows reasons. Smooth this over with ExternalProgram.
Diffstat (limited to 'unittests')
-rw-r--r--unittests/allplatformstests.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/unittests/allplatformstests.py b/unittests/allplatformstests.py
index a38b839..3dd8a32 100644
--- a/unittests/allplatformstests.py
+++ b/unittests/allplatformstests.py
@@ -44,6 +44,7 @@ from mesonbuild.mesonlib import (
MesonException, EnvironmentException, OptionKey, ExecutableSerialisation, EnvironmentVariables,
windows_proof_rm
)
+from mesonbuild.programs import ExternalProgram
from mesonbuild.compilers.mixins.clang import ClangCompiler
from mesonbuild.compilers.mixins.gnu import GnuCompiler
@@ -3371,7 +3372,7 @@ class AllPlatformTests(BasePlatformTests):
def test_summary(self):
testdir = os.path.join(self.unit_test_dir, '71 summary')
- out = self.init(testdir, extra_args=['-Denabled_opt=enabled'])
+ out = self.init(testdir, extra_args=['-Denabled_opt=enabled', f'-Dpython={sys.executable}'])
expected = textwrap.dedent(r'''
Some Subproject 2.0
@@ -3401,7 +3402,7 @@ class AllPlatformTests(BasePlatformTests):
Stuff
missing prog : NO
- existing prog : ''' + sys.executable + '''
+ existing prog : ''' + ExternalProgram('python3', [sys.executable], silent=True).path + '''
missing dep : NO
external dep : YES 1.2.3
internal dep : YES
@@ -3421,6 +3422,7 @@ class AllPlatformTests(BasePlatformTests):
libdir : lib
prefix : /usr
enabled_opt : enabled
+ python : ''' + sys.executable + '''
''')
expected_lines = expected.split('\n')[1:]
out_start = out.find(expected_lines[0])