mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-23 19:04:45 +03:00
ZTS: avoid piping to special devices
As described in #11445, the kernel interface kernel_{read,write} no longer act on special devices. In the ZTS, zfs send and receive are tested by piping to these devices, leading to spurious failures (for positive tests) and may mask errors (for negative tests). Until a more permanent mechanism to address this deficiency is developed, clean up the output from the ZTS by avoiding directly piping to or from /dev/null and /dev/zero. For /dev/zero input, simply use a pipe: `cat </dev/zero |` . However, for /dev/null output, the shell semantics for pipe failures means that zfs send error codes will be masked by the successful `| cat >/dev/null` command execution. In that case, use a temporary file under $TEST_BASE_DIR for output in favor. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Attila Fülöp <attila@fueloep.org> Signed-off-by: Antonio Russo <aerusso@aerusso.net> Closes #11478
This commit is contained in:
committed by
Brian Behlendorf
parent
3790aa8176
commit
81f981cd82
@@ -154,8 +154,8 @@ def os_open(name, mode):
|
||||
|
||||
@contextlib.contextmanager
|
||||
def dev_null():
|
||||
with os_open('/dev/null', os.O_WRONLY) as fd:
|
||||
yield fd
|
||||
with tempfile.TemporaryFile(suffix='.zstream') as fd:
|
||||
yield fd.fileno()
|
||||
|
||||
|
||||
@contextlib.contextmanager
|
||||
|
||||
Reference in New Issue
Block a user