aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/mtest.py
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2022-02-20 14:08:37 +0100
committerPaolo Bonzini <pbonzini@redhat.com>2022-02-20 14:09:48 +0100
commit02b739feae4ac31ebe83649da0e73296304cbb5c (patch)
tree2a459fdeffb36ae9c38b086497c0862d63d35dfe /mesonbuild/mtest.py
parentc3f145ca2b9f5a4cfac3ffe1de7d901a4e8aba10 (diff)
downloadmeson-02b739feae4ac31ebe83649da0e73296304cbb5c.zip
meson-02b739feae4ac31ebe83649da0e73296304cbb5c.tar.gz
meson-02b739feae4ac31ebe83649da0e73296304cbb5c.tar.bz2
mtest: refactor common condition into a property of TestRun
For a test to be displayed to stdout without buffering, it has to be 1) in verbose mode 2) not executed in parallel with others 3) not parsed, i.e. not TAP or Rust. Include these three conditions in a new property of stdout and use it in the three places where it matters: when printing the initial and final delimiters of the output, and when deciding the console mode to use. Suggested-by: Jussi Pakkanen <jpakkane@gmail.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'mesonbuild/mtest.py')
-rw-r--r--mesonbuild/mtest.py14
1 files changed, 8 insertions, 6 deletions
diff --git a/mesonbuild/mtest.py b/mesonbuild/mtest.py
index 8208132..c844645 100644
--- a/mesonbuild/mtest.py
+++ b/mesonbuild/mtest.py
@@ -606,11 +606,9 @@ class ConsoleLogger(TestLogger):
max_left_width=self.max_left_width,
right=test.res.get_text(mlog.colorize_console())))
print(test.res.get_command_marker() + test.cmdline)
- if test.needs_parsing:
- pass
- elif not test.is_parallel:
+ if test.direct_stdout:
print(self.output_start, flush=True)
- else:
+ elif not test.needs_parsing:
print(flush=True)
self.started_tests += 1
@@ -665,7 +663,7 @@ class ConsoleLogger(TestLogger):
if not harness.options.quiet or not result.res.is_ok():
self.flush()
- if result.verbose and not result.is_parallel and result.cmdline and not result.needs_parsing:
+ if result.cmdline and result.direct_stdout:
print(self.output_end)
print(harness.format(result, mlog.colorize_console(), max_left_width=self.max_left_width))
else:
@@ -899,6 +897,10 @@ class TestRun:
return self._num
@property
+ def direct_stdout(self) -> bool:
+ return self.verbose and not self.is_parallel and not self.needs_parsing
+
+ @property
def detail(self) -> str:
if self.res is TestResult.PENDING:
return ''
@@ -1340,7 +1342,7 @@ class SingleTestRunner:
if self.options.gdb:
self.console_mode = ConsoleUser.GDB
- elif self.runobj.verbose and not is_parallel and not self.runobj.needs_parsing:
+ elif self.runobj.direct_stdout:
self.console_mode = ConsoleUser.STDOUT
else:
self.console_mode = ConsoleUser.LOGGER