decodetree: Add --output-null for meson testing
Using "-o /dev/null" fails on Windows. Rather that working
around this in meson, add a separate command-line option so
that we can use python's os.devnull.
Reported-by: Thomas Huth <thuth@redhat.com>
Fixes: 656666dc7d
("tests/decode: Convert tests to meson")
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20230531232510.66985-1-richard.henderson@linaro.org>
This commit is contained in:
parent
9824490ded
commit
c6a5fc2ac7
|
@ -42,6 +42,7 @@
|
||||||
input_file = ''
|
input_file = ''
|
||||||
output_file = None
|
output_file = None
|
||||||
output_fd = None
|
output_fd = None
|
||||||
|
output_null = False
|
||||||
insntype = 'uint32_t'
|
insntype = 'uint32_t'
|
||||||
decode_function = 'decode'
|
decode_function = 'decode'
|
||||||
|
|
||||||
|
@ -145,12 +146,7 @@ def error_with_file(file, lineno, *args):
|
||||||
|
|
||||||
if output_file and output_fd:
|
if output_file and output_fd:
|
||||||
output_fd.close()
|
output_fd.close()
|
||||||
# Do not try to remove e.g. -o /dev/null
|
os.remove(output_file)
|
||||||
if not output_file.startswith("/dev"):
|
|
||||||
try:
|
|
||||||
os.remove(output_file)
|
|
||||||
except PermissionError:
|
|
||||||
pass
|
|
||||||
exit(0 if testforerror else 1)
|
exit(0 if testforerror else 1)
|
||||||
# end error_with_file
|
# end error_with_file
|
||||||
|
|
||||||
|
@ -1501,6 +1497,7 @@ def main():
|
||||||
global translate_prefix
|
global translate_prefix
|
||||||
global output_fd
|
global output_fd
|
||||||
global output_file
|
global output_file
|
||||||
|
global output_null
|
||||||
global input_file
|
global input_file
|
||||||
global insnwidth
|
global insnwidth
|
||||||
global insntype
|
global insntype
|
||||||
|
@ -1514,7 +1511,8 @@ def main():
|
||||||
decode_scope = 'static '
|
decode_scope = 'static '
|
||||||
|
|
||||||
long_opts = ['decode=', 'translate=', 'output=', 'insnwidth=',
|
long_opts = ['decode=', 'translate=', 'output=', 'insnwidth=',
|
||||||
'static-decode=', 'varinsnwidth=', 'test-for-error']
|
'static-decode=', 'varinsnwidth=', 'test-for-error',
|
||||||
|
'output-null']
|
||||||
try:
|
try:
|
||||||
(opts, args) = getopt.gnu_getopt(sys.argv[1:], 'o:vw:', long_opts)
|
(opts, args) = getopt.gnu_getopt(sys.argv[1:], 'o:vw:', long_opts)
|
||||||
except getopt.GetoptError as err:
|
except getopt.GetoptError as err:
|
||||||
|
@ -1545,6 +1543,8 @@ def main():
|
||||||
error(0, 'cannot handle insns of width', insnwidth)
|
error(0, 'cannot handle insns of width', insnwidth)
|
||||||
elif o == '--test-for-error':
|
elif o == '--test-for-error':
|
||||||
testforerror = True
|
testforerror = True
|
||||||
|
elif o == '--output-null':
|
||||||
|
output_null = True
|
||||||
else:
|
else:
|
||||||
assert False, 'unhandled option'
|
assert False, 'unhandled option'
|
||||||
|
|
||||||
|
@ -1574,7 +1574,9 @@ def main():
|
||||||
stree = build_size_tree(toppat.pats, 8, 0, 0)
|
stree = build_size_tree(toppat.pats, 8, 0, 0)
|
||||||
prop_size(stree)
|
prop_size(stree)
|
||||||
|
|
||||||
if output_file:
|
if output_null:
|
||||||
|
output_fd = open(os.devnull, 'wt', encoding='utf-8', errors="ignore")
|
||||||
|
elif output_file:
|
||||||
output_fd = open(output_file, 'wt', encoding='utf-8')
|
output_fd = open(output_file, 'wt', encoding='utf-8')
|
||||||
else:
|
else:
|
||||||
output_fd = io.TextIOWrapper(sys.stdout.buffer,
|
output_fd = io.TextIOWrapper(sys.stdout.buffer,
|
||||||
|
|
|
@ -53,12 +53,12 @@ decodetree = find_program(meson.project_source_root() / 'scripts/decodetree.py')
|
||||||
|
|
||||||
foreach t: err_tests
|
foreach t: err_tests
|
||||||
test(fs.replace_suffix(t, ''),
|
test(fs.replace_suffix(t, ''),
|
||||||
decodetree, args: ['-o', '/dev/null', '--test-for-error', files(t)],
|
decodetree, args: ['--output-null', '--test-for-error', files(t)],
|
||||||
suite: suite)
|
suite: suite)
|
||||||
endforeach
|
endforeach
|
||||||
|
|
||||||
foreach t: succ_tests
|
foreach t: succ_tests
|
||||||
test(fs.replace_suffix(t, ''),
|
test(fs.replace_suffix(t, ''),
|
||||||
decodetree, args: ['-o', '/dev/null', files(t)],
|
decodetree, args: ['--output-null', files(t)],
|
||||||
suite: suite)
|
suite: suite)
|
||||||
endforeach
|
endforeach
|
||||||
|
|
Loading…
Reference in a new issue