]> sigrok.org Git - sigrok-test.git/blobdiff - decoder/pdtest
pdtest: Make exit code communicate the termination cause not counts
[sigrok-test.git] / decoder / pdtest
index 897e3ef4f2d200e2c91f7ee0639db147fda58cf3..58b6eee19244353226938a35cf1c7cc27d24328e 100755 (executable)
@@ -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 = []
@@ -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: