tests/functional: stop output from zstd command when uncompressing

The zstd command will print incremental decompression progress to stderr
when running. Fortunately it is not on stdout as that would confuse the
TAP parsing, but we should still not have this printed. By switching
from 'check_call' to 'run' with the check=True and capture_output=True
we'll get the desired silence on success, and on failure the raised
exception will automatically include stdout/stderr data for diagnosis
purposes.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-ID: <20250228102738.3064045-8-berrange@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
Daniel P. Berrangé 2025-02-28 10:27:38 +00:00 committed by Thomas Huth
parent 5ad2c8f357
commit 9813958892

View file

@ -13,7 +13,7 @@ import os
import stat
import shutil
from urllib.parse import urlparse
from subprocess import check_call, CalledProcessError
from subprocess import run, CalledProcessError, DEVNULL
from .asset import Asset
@ -46,8 +46,8 @@ def zstd_uncompress(zstd_path, output_path):
return
try:
check_call(['zstd', "-f", "-d", zstd_path,
"-o", output_path])
run(['zstd', "-f", "-d", zstd_path,
"-o", output_path], capture_output=True, check=True)
except CalledProcessError as e:
os.remove(output_path)
raise Exception(