X-Git-Url: https://sigrok.org/gitweb/?p=sigrok-test.git;a=blobdiff_plain;f=decoder%2Fpdtest;h=4c15f3dc7cd1f65d4aa0d9c6b7864e2d58da550e;hp=897e3ef4f2d200e2c91f7ee0639db147fda58cf3;hb=2a21cca5b228875b89a2905f6bd7bff83cac4be9;hpb=121614a0acce94bab885c97718d610181fbfd43f diff --git a/decoder/pdtest b/decoder/pdtest index 897e3ef..4c15f3d 100755 --- a/decoder/pdtest +++ b/decoder/pdtest @@ -62,7 +62,7 @@ def usage(msg=None): -l List test(s) -s Show test(s) -r Run test(s) - -f Fix failed test(s) + -f Fix failed test(s) / create initial output for new test(s) -c Report decoder code coverage -R Save test reports to Protocol decoder name ("i2c") and optionally test name ("i2c/rtc")""") @@ -436,6 +436,17 @@ def run_tests(tests, fix=False): return results, errors +def get_run_tests_error_diff_counts(results): + """Get error and diff counters from run_tests() results.""" + errs = 0 + diffs = 0 + for result in results: + if 'error' in result: + errs += 1 + if 'diff' in result: + diffs += 1 + return errs, diffs + def gen_report(result): out = [] @@ -550,7 +561,7 @@ ret = 0 try: if args: testlist = get_tests(args) - elif opt_all: + elif opt_all or opt_list: testlist = get_tests(os.listdir(tests_dir)) else: usage("Specify either -a or tests.") @@ -560,7 +571,12 @@ try: ERR("Could not find sigrok-dumps repository at %s" % dumps_dir) sys.exit(1) results, errors = run_tests(testlist, fix=opt_fix) - ret = errors + ret = 0 + errs, diffs = get_run_tests_error_diff_counts(results) + if errs: + ret = 1 + elif diffs: + ret = 2 elif opt_show: show_tests(testlist) elif opt_list: @@ -575,4 +591,3 @@ except Exception as e: raise sys.exit(ret) -