From cbf01be4126cbc0f6d80364a7e0b6ad777a7d8ae Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sat, 9 Oct 2021 13:44:31 -0400 Subject: Fix handling of deferred write errors that happen when closing --- test/test_deferred_write_error.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 test/test_deferred_write_error.py (limited to 'test/test_deferred_write_error.py') diff --git a/test/test_deferred_write_error.py b/test/test_deferred_write_error.py new file mode 100644 index 00000000..4005d570 --- /dev/null +++ b/test/test_deferred_write_error.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python3 + +"""Test errors that only really happen when the output file is closed.""" + +import argparse +import sys +import shlex +import subprocess +import os + +parser = argparse.ArgumentParser(description=__doc__) + +parser.add_argument("--tool", default="tools/serd-pipe", help="executable") +parser.add_argument("--wrapper", default="", help="executable wrapper") +parser.add_argument("input", help="valid input file") + +args = parser.parse_args(sys.argv[1:]) +command = shlex.split(args.wrapper) + [args.tool, '-b', '1024', args.input] + +if os.path.exists("/dev/full"): + + with open("/dev/full", "w") as out: + proc = subprocess.run( + command, check=False, stdout=out, stderr=subprocess.PIPE + ) + + assert proc.returncode != 0 + assert "error" in proc.stderr.decode("utf-8") + +else: + sys.stderr.write("warning: /dev/full not present, skipping test") -- cgit v1.2.1