Skip to content

Commit

Permalink
pdtest: add support for input format specs in test.conf files
Browse files Browse the repository at this point in the history
The pdtest(1) utility interprets test.conf files. Extend the syntax of
'input' lines. These used to accept one filename only. Add support for
'format' and 'option' keywords. These translate to runtc(1) -I options.
  • Loading branch information
gsigh committed Apr 23, 2022
1 parent 80cc8a4 commit 12f978c
Showing 1 changed file with 28 additions and 3 deletions.
31 changes: 28 additions & 3 deletions decoder/pdtest
Original file line number Diff line number Diff line change
Expand Up @@ -146,9 +146,26 @@ def parse_testfile(path, pd, tc, op_type, op_class):
raise E_syntax
tclist[-1]['stack'] = f
elif key == 'input':
if len(f) != 1:
if len(f) < 1:
raise E_syntax
tclist[-1]['input'] = f[0]
input_spec = {
'name': f.pop(0),
'format': None,
'options': [],
}
while len(f):
if len(f) < 2:
# Always needs <key> <value>
raise E_syntax
a, b = f[:2]
f = f[2:]
if a == 'format':
input_spec['format'] = b
elif a == 'option':
input_spec['options'].append(b)
else:
raise E_syntax
tclist[-1]['input'] = input_spec
elif key == 'output':
op_spec = {
'pd': f.pop(0),
Expand Down Expand Up @@ -325,7 +342,15 @@ def run_tests(tests, fix=False):
args.extend(['-o', "%s=%s" % (option, value)])
for label, initial_pin in spd['initial_pins']:
args.extend(['-N', "%s=%d" % (label, initial_pin)])
args.extend(['-i', os.path.join(dumps_dir, tc['input'])])
# Setup input spec for this test (optional format spec).
in_spec = tc['input']
infile = os.path.join(dumps_dir, in_spec['name'])
args.extend(['-i', infile])
if in_spec['format']:
args.extend(['-I', in_spec['format']])
for opt in in_spec['options']:
args.extend(['-I', opt])
# Setup output spec for this test.
for op in tc['output']:
name = "%s/%s/%s" % (pd, tc['name'], op['type'])
opargs = ['-O', "%s:%s" % (op['pd'], op['type'])]
Expand Down

0 comments on commit 12f978c

Please sign in to comment.