X-Git-Url: https://sigrok.org/gitweb/?p=sigrok-test.git;a=blobdiff_plain;f=decoder%2Fpdtest;h=1c24e6c21af9d65080bb6495843dac67e1e5542d;hp=f9dd140729201305d7048fd2f2f4d490ab21e70f;hb=6688fad431faf47bcfd310af65a8c753204ad883;hpb=afd2f3f77c31556f5f39f79766a7287c6cb587f2 diff --git a/decoder/pdtest b/decoder/pdtest index f9dd140..1c24e6c 100755 --- a/decoder/pdtest +++ b/decoder/pdtest @@ -55,17 +55,17 @@ def ERR(msg): def usage(msg=None): if msg: print(msg.strip() + '\n') - print("""Usage: testpd [-dvarslR] [test, ...] + print("""Usage: testpd [-dvalsrfcR] [ ...] -d Turn on debugging -v Verbose -a All tests - -l List all tests + -l List test(s) -s Show test(s) -r Run test(s) -f Fix failed test(s) -c Report decoder code coverage -R Save test reports to - Protocol decoder name ("i2c") and optionally test name ("i2c/icc")""") + Protocol decoder name ("i2c") and optionally test name ("i2c/rtc")""") sys.exit() @@ -327,7 +327,7 @@ def run_tests(tests, fix=False): opargs[-1] += ":%s" % op['class'] name += "/%s" % op['class'] if VERBOSE: - dots = '.' * (60 - len(name) - 2) + dots = '.' * (77 - len(name) - 2) INFO("%s %s " % (name, dots), end='') results.append({ 'testcase': name, @@ -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 = [] @@ -513,7 +524,10 @@ if len(sys.argv) == 1: opt_all = opt_run = opt_show = opt_list = opt_fix = opt_coverage = False report_dir = None -opts, args = getopt(sys.argv[1:], "dvarslfcR:S:") +try: + opts, args = getopt(sys.argv[1:], "dvarslfcR:S:") +except Exception as e: + usage('error while parsing command line arguments: {}'.format(e)) for opt, arg in opts: if opt == '-d': DEBUG += 1 @@ -557,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: @@ -572,4 +591,3 @@ except Exception as e: raise sys.exit(ret) -