diff options
author | Eli Schwartz <eschwartz@archlinux.org> | 2022-05-05 23:39:34 -0400 |
---|---|---|
committer | Xavier Claessens <xclaesse@gmail.com> | 2023-02-24 20:45:00 -0500 |
commit | cf07596cf6bc280dac0afff505147ca626c79453 (patch) | |
tree | ef7a4ab1e652bca9131f5b53eedcc056b86aa6e1 /unittests | |
parent | 9f05d45b7084866f0b306f4685a118e5fea138af (diff) | |
download | meson-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.py | 6 |
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]) |