tc-testing: better test case file error reporting

tdc.py reads a bunch of test cases in json files.  When a json file
cannot be parsed, tdc just exits and does not run any tests.

This patch will cause tdc to print a message with the file name and
line number, then that file will be ignored and the rest of the tests
will be processed.

Signed-off-by: Brenda J. Butler <bjb@mojatatu.com>
Acked-by: Lucas Bates <lucasb@mojatatu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Brenda J. Butler 2017-10-31 14:29:03 -04:00 коммит произвёл David S. Miller
Родитель 6c26c3fbc3
Коммит 170b8ffa71
1 изменённых файлов: 13 добавлений и 8 удалений

Просмотреть файл

@ -179,15 +179,20 @@ def has_blank_ids(idlist):
def load_from_file(filename):
"""
Open the JSON file containing the test cases and return them as an
ordered dictionary object.
Open the JSON file containing the test cases and return them
as list of ordered dictionary objects.
"""
with open(filename) as test_data:
testlist = json.load(test_data, object_pairs_hook=OrderedDict)
idlist = get_id_list(testlist)
if (has_blank_ids(idlist)):
for k in testlist:
k['filename'] = filename
try:
with open(filename) as test_data:
testlist = json.load(test_data, object_pairs_hook=OrderedDict)
except json.JSONDecodeError as jde:
print('IGNORING test case file {}\n\tBECAUSE: {}'.format(filename, jde))
testlist = list()
else:
idlist = get_id_list(testlist)
if (has_blank_ids(idlist)):
for k in testlist:
k['filename'] = filename
return testlist