From: Gerhard Sittig Date: Wed, 25 Jan 2017 20:09:20 +0000 (+0100) Subject: pdtest: Make exit code communicate the termination cause not counts X-Git-Url: https://sigrok.org/gitweb/?p=sigrok-test.git;a=commitdiff_plain;h=1a5417590cebb5f168079993778b608a131088a3;ds=sidebyside pdtest: Make exit code communicate the termination cause not counts On one hand the exit(3) API might limit the range of values that can get communicated to callers (a single byte is used in some implementations). On the other hand wait(2) might interpret specific meaning into some of the returned values (abnormal cause of termination, like unhandled signals). So the use of error counts as exit codes for processes can be severely constrained. For specific non-zero values of error counts, an exit code of zero might be seen at the caller's side (modulo calculation or truncation). Don't pass error or difference counts to exit(3). Instead communicate the kind of termination (error or difference or success) in exit codes which reliably can get evaluated by callers. --- diff --git a/decoder/pdtest b/decoder/pdtest index 591ad1d..58b6eee 100755 --- a/decoder/pdtest +++ b/decoder/pdtest @@ -571,8 +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 = 0 errs, diffs = get_run_tests_error_diff_counts(results) - ret = errs or diffs or 0 + if errs: + ret = 1 + elif diffs: + ret = 2 elif opt_show: show_tests(testlist) elif opt_list: