aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/mtest.py
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/mtest.py')
-rw-r--r--mesonbuild/mtest.py20
1 files changed, 10 insertions, 10 deletions
diff --git a/mesonbuild/mtest.py b/mesonbuild/mtest.py
index dc5c9d1..e11c8e4 100644
--- a/mesonbuild/mtest.py
+++ b/mesonbuild/mtest.py
@@ -41,7 +41,7 @@ from . import build
from . import environment
from . import mlog
from .dependencies import ExternalProgram
-from .mesonlib import substring_is_in_list, MesonException
+from .mesonlib import MesonException, get_wine_shortpath
if typing.TYPE_CHECKING:
from .backend.backends import TestSerialisation
@@ -488,15 +488,15 @@ class SingleTestRunner:
if len(self.test.extra_paths) > 0:
self.env['PATH'] = os.pathsep.join(self.test.extra_paths + ['']) + self.env['PATH']
- if substring_is_in_list('wine', cmd):
- wine_paths = ['Z:' + p for p in self.test.extra_paths]
- wine_path = ';'.join(wine_paths)
- # Don't accidentally end with an `;` because that will add the
- # current directory and might cause unexpected behaviour
- if 'WINEPATH' in self.env:
- self.env['WINEPATH'] = wine_path + ';' + self.env['WINEPATH']
- else:
- self.env['WINEPATH'] = wine_path
+ winecmd = []
+ for c in cmd:
+ winecmd.append(c)
+ if os.path.basename(c).startswith('wine'):
+ self.env['WINEPATH'] = get_wine_shortpath(
+ winecmd,
+ ['Z:' + p for p in self.test.extra_paths] + self.env.get('WINEPATH', '').split(';')
+ )
+ break
# If MALLOC_PERTURB_ is not set, or if it is set to an empty value,
# (i.e., the test or the environment don't explicitly set it), set