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.
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: