aboutsummaryrefslogtreecommitdiff
path: root/unittests/baseplatformtests.py
diff options
context:
space:
mode:
Diffstat (limited to 'unittests/baseplatformtests.py')
-rw-r--r--unittests/baseplatformtests.py16
1 files changed, 11 insertions, 5 deletions
diff --git a/unittests/baseplatformtests.py b/unittests/baseplatformtests.py
index c1175b4..09bde6b 100644
--- a/unittests/baseplatformtests.py
+++ b/unittests/baseplatformtests.py
@@ -32,7 +32,7 @@ import mesonbuild.environment
import mesonbuild.coredata
import mesonbuild.modules.gnome
from mesonbuild.mesonlib import (
- is_cygwin, windows_proof_rmtree, python_command
+ is_cygwin, join_args, windows_proof_rmtree, python_command
)
import mesonbuild.modules.pkgconfig
@@ -143,7 +143,7 @@ class BasePlatformTests(TestCase):
os.environ.update(self.orig_env)
super().tearDown()
- def _run(self, command, *, workdir=None, override_envvars: T.Optional[T.Mapping[str, str]] = None):
+ def _run(self, command, *, workdir=None, override_envvars: T.Optional[T.Mapping[str, str]] = None, stderr=True):
'''
Run a command while printing the stdout and stderr to stdout,
and also return a copy of it
@@ -158,10 +158,16 @@ class BasePlatformTests(TestCase):
env.update(override_envvars)
p = subprocess.run(command, stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT, env=env,
+ stderr=subprocess.STDOUT if stderr else subprocess.PIPE,
+ env=env,
encoding='utf-8',
text=True, cwd=workdir, timeout=60 * 5)
+ print('$', join_args(command))
+ print('stdout:')
print(p.stdout)
+ if not stderr:
+ print('stderr:')
+ print(p.stderr)
if p.returncode != 0:
if 'MESON_SKIP_TEST' in p.stdout:
raise SkipTest('Project requested skipping.')
@@ -235,13 +241,13 @@ class BasePlatformTests(TestCase):
out = self._get_meson_log() # best we can do here
return out
- def build(self, target=None, *, extra_args=None, override_envvars=None):
+ def build(self, target=None, *, extra_args=None, override_envvars=None, stderr=True):
if extra_args is None:
extra_args = []
# Add arguments for building the target (if specified),
# and using the build dir (if required, with VS)
args = get_builddir_target_args(self.backend, self.builddir, target)
- return self._run(self.build_command + args + extra_args, workdir=self.builddir, override_envvars=override_envvars)
+ return self._run(self.build_command + args + extra_args, workdir=self.builddir, override_envvars=override_envvars, stderr=stderr)
def clean(self, *, override_envvars=None):
dir_args = get_builddir_target_args(self.backend, self.builddir, None)