20.05.2021 10:52, Emanuele Giuseppe Esposito wrote:
When using -valgrind on the script tests, it generates a log file
in $TEST_DIR that is either read (if valgrind finds problems) or
otherwise deleted. Provide the same exact behavior when using
-valgrind on the python tests.
Signed-off-by: Emanuele Giuseppe Esposito <eespo...@redhat.com>
---
tests/qemu-iotests/iotests.py | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
index 5d75094ba6..a06284acad 100644
--- a/tests/qemu-iotests/iotests.py
+++ b/tests/qemu-iotests/iotests.py
@@ -597,6 +597,22 @@ def __init__(self, path_suffix=''):
sock_dir=sock_dir, qmp_timer=timer)
self._num_drives = 0
+ def subprocess_check_valgrind(self, valgrind: List[str]) -> None:
For me just "check_valgrind" would be more intuitive.
I think, you also can use qemu_valgrind global variable directly.. What is the
reason for passing it as parameter?
+ if not valgrind or not self._popen:
+ return
+
+ valgrind_filename = f"{test_dir}/{self._popen.pid}.valgrind"
should we use os.path.join instead? I don't know.. And don't care, as I don't
use windows anyway. Still os.path.join is used everywhere in the file except
for has_working_luks() function.. So, you are going add another exception.
+
+ if self.exitcode() == 99:
+ with open(valgrind_filename) as f:
+ print(f.read())
+ else:
+ os.remove(valgrind_filename)
+
+ def _post_shutdown(self) -> None:
+ super()._post_shutdown()
+ self.subprocess_check_valgrind(qemu_valgrind)
+
def add_object(self, opts):
self._args.append('-object')
self._args.append(opts)
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com>
--
Best regards,
Vladimir