Tried to write errors to stderr consistently in scripts

This commit is contained in:
Christopher Haster
2023-11-04 20:54:00 -05:00
parent d0a6ef0c89
commit 1e4d4cfdcf
19 changed files with 82 additions and 52 deletions
+2 -1
View File
@@ -100,7 +100,8 @@ def main(csv_paths, output, *,
fields = [k for k, _ in fields]
if by is None and fields is None:
print("error: needs --by or --fields to figure out fields")
print("error: needs --by or --fields to figure out fields",
file=sys.stderr)
sys.exit(-1)
# collect results from csv files
+2 -1
View File
@@ -118,7 +118,8 @@ def main(csv_paths, output, *,
fields = [k for k, _ in fields]
if by is None and fields is None:
print("error: needs --by or --fields to figure out fields")
print("error: needs --by or --fields to figure out fields",
file=sys.stderr)
sys.exit(-1)
# collect results from csv files
+10 -7
View File
@@ -293,7 +293,8 @@ def compile(bench_paths, **args):
print('%serror:%s cycle detected in suite ordering: {%s}' % (
'\x1b[01;31m' if args['color'] else '',
'\x1b[m' if args['color'] else '',
', '.join(suite.name for suite in pending.values())))
', '.join(suite.name for suite in pending.values())),
file=sys.stderr)
sys.exit(-1)
pending = pending_
@@ -332,7 +333,8 @@ def compile(bench_paths, **args):
print('%serror:%s compiling more than one bench suite? (%r)' % (
'\x1b[01;31m' if args['color'] else '',
'\x1b[m' if args['color'] else '',
bench_paths))
bench_paths),
file=sys.stderr)
sys.exit(-1)
suite = suites[0]
@@ -708,7 +710,7 @@ def find_perms(runner, bench_ids=[], **args):
if proc.returncode != 0:
if not args.get('verbose'):
for line in proc.stderr:
sys.stdout.write(line)
sys.stderr.write(line)
sys.exit(-1)
# get which suite each case belongs to via paths
@@ -738,7 +740,7 @@ def find_perms(runner, bench_ids=[], **args):
if proc.returncode != 0:
if not args.get('verbose'):
for line in proc.stderr:
sys.stdout.write(line)
sys.stderr.write(line)
sys.exit(-1)
# figure out expected suite perms
@@ -782,7 +784,7 @@ def find_path(runner, id, **args):
if proc.returncode != 0:
if not args.get('verbose'):
for line in proc.stderr:
sys.stdout.write(line)
sys.stderr.write(line)
sys.exit(-1)
return path
@@ -811,7 +813,7 @@ def find_defines(runner, id, **args):
if proc.returncode != 0:
if not args.get('verbose'):
for line in proc.stderr:
sys.stdout.write(line)
sys.stderr.write(line)
sys.exit(-1)
return defines
@@ -863,7 +865,8 @@ def find_ids(runner, bench_ids=[], **args):
print('%serror:%s no benches match id %r?' % (
'\x1b[01;31m' if args['color'] else '',
'\x1b[m' if args['color'] else '',
id))
id),
file=sys.stderr)
sys.exit(-1)
bench_ids_.extend(bench_ids__)
+5 -4
View File
@@ -187,7 +187,7 @@ def collect(obj_paths, *,
if proc.returncode != 0:
if not args.get('verbose'):
for line in proc.stderr:
sys.stdout.write(line)
sys.stderr.write(line)
sys.exit(-1)
@@ -226,7 +226,7 @@ def collect(obj_paths, *,
if proc.returncode != 0:
if not args.get('verbose'):
for line in proc.stderr:
sys.stdout.write(line)
sys.stderr.write(line)
# do nothing on error, we don't need objdump to work, source files
# may just be inaccurate
pass
@@ -268,7 +268,7 @@ def collect(obj_paths, *,
if proc.returncode != 0:
if not args.get('verbose'):
for line in proc.stderr:
sys.stdout.write(line)
sys.stderr.write(line)
# do nothing on error, we don't need objdump to work, source files
# may just be inaccurate
pass
@@ -321,7 +321,8 @@ def fold(Result, results, by=None, defines=[]):
for k in it.chain(by or [], (k for k, _ in defines)):
if k not in Result._by and k not in Result._fields:
print("error: could not find field %r?" % k)
print("error: could not find field %r?" % k,
file=sys.stderr)
sys.exit(-1)
# filter by matching defines
+3 -2
View File
@@ -233,7 +233,7 @@ def collect(gcda_paths, *,
if proc.returncode != 0:
if not args.get('verbose'):
for line in proc.stderr:
sys.stdout.write(line)
sys.stderr.write(line)
sys.exit(-1)
# collect line/branch coverage
@@ -303,7 +303,8 @@ def fold(Result, results, by=None, defines=[]):
for k in it.chain(by or [], (k for k, _ in defines)):
if k not in Result._by and k not in Result._fields:
print("error: could not find field %r?" % k)
print("error: could not find field %r?" % k,
file=sys.stderr)
sys.exit(-1)
# filter by matching defines
+5 -4
View File
@@ -187,7 +187,7 @@ def collect(obj_paths, *,
if proc.returncode != 0:
if not args.get('verbose'):
for line in proc.stderr:
sys.stdout.write(line)
sys.stderr.write(line)
sys.exit(-1)
@@ -226,7 +226,7 @@ def collect(obj_paths, *,
if proc.returncode != 0:
if not args.get('verbose'):
for line in proc.stderr:
sys.stdout.write(line)
sys.stderr.write(line)
# do nothing on error, we don't need objdump to work, source files
# may just be inaccurate
pass
@@ -268,7 +268,7 @@ def collect(obj_paths, *,
if proc.returncode != 0:
if not args.get('verbose'):
for line in proc.stderr:
sys.stdout.write(line)
sys.stderr.write(line)
# do nothing on error, we don't need objdump to work, source files
# may just be inaccurate
pass
@@ -321,7 +321,8 @@ def fold(Result, results, by=None, defines=[]):
for k in it.chain(by or [], (k for k, _ in defines)):
if k not in Result._by and k not in Result._fields:
print("error: could not find field %r?" % k)
print("error: could not find field %r?" % k,
file=sys.stderr)
sys.exit(-1)
# filter by matching defines
+2 -1
View File
@@ -89,7 +89,8 @@ def main(disk, block=None, *,
block = [0]
if len(block) > 1:
print("error: More than one block address?")
print("error: more than one block address?",
file=sys.stderr)
sys.exit(-1)
block = block[0]
+2 -1
View File
@@ -1363,7 +1363,8 @@ def main(disk, mroots=None, *,
size = None
if any(isinstance(b, list) and len(b) > 1 for b in block):
print("error: More than one block address?")
print("error: more than one block address?",
file=sys.stderr)
sys.exit(-1)
if isinstance(block[0], list):
block = (block[0][0], *block[1:])
+9 -6
View File
@@ -291,7 +291,7 @@ def collect_syms_and_lines(obj_path, *,
if proc.returncode != 0:
if not args.get('verbose'):
for line in proc.stderr:
sys.stdout.write(line)
sys.stderr.write(line)
# assume no debug-info on failure
pass
@@ -361,7 +361,7 @@ def collect_syms_and_lines(obj_path, *,
if proc.returncode != 0:
if not args.get('verbose'):
for line in proc.stderr:
sys.stdout.write(line)
sys.stderr.write(line)
# assume no debug-info on failure
pass
@@ -567,7 +567,7 @@ def collect_decompressed(path, *,
if proc.returncode != 0:
if not args.get('verbose'):
for line in proc.stderr:
sys.stdout.write(line)
sys.stderr.write(line)
sys.exit(-1)
# rearrange results into result type
@@ -633,7 +633,8 @@ def fold(Result, results, by=None, defines=[]):
for k in it.chain(by or [], (k for k, _ in defines)):
if k not in Result._by and k not in Result._fields:
print("error: could not find field %r?" % k)
print("error: could not find field %r?" % k,
file=sys.stderr)
sys.exit(-1)
# filter by matching defines
@@ -1361,10 +1362,12 @@ if __name__ == "__main__":
args.command = args.perf_paths
if args.record:
if not args.command:
print('error: no command specified?')
print('error: no command specified?',
file=sys.stderr)
sys.exit(-1)
if not args.output:
print('error: no output file specified?')
print('error: no output file specified?',
file=sys.stderr)
sys.exit(-1)
sys.exit(main(**{k: v
+4 -3
View File
@@ -199,7 +199,7 @@ def collect_syms_and_lines(obj_path, *,
if proc.returncode != 0:
if not args.get('verbose'):
for line in proc.stderr:
sys.stdout.write(line)
sys.stderr.write(line)
# assume no debug-info on failure
pass
@@ -269,7 +269,7 @@ def collect_syms_and_lines(obj_path, *,
if proc.returncode != 0:
if not args.get('verbose'):
for line in proc.stderr:
sys.stdout.write(line)
sys.stderr.write(line)
# assume no debug-info on failure
pass
@@ -599,7 +599,8 @@ def fold(Result, results, by=None, defines=[]):
for k in it.chain(by or [], (k for k, _ in defines)):
if k not in Result._by and k not in Result._fields:
print("error: could not find field %r?" % k)
print("error: could not find field %r?" % k,
file=sys.stderr)
sys.exit(-1)
# filter by matching defines
+2 -1
View File
@@ -903,7 +903,8 @@ def main(csv_paths, *,
all_y = [k for k, _ in all_y]
if not all_by and not all_y:
print("error: needs --by or -y to figure out fields")
print("error: needs --by or -y to figure out fields",
file=sys.stderr)
sys.exit(-1)
# create a grid of subplots
+2 -1
View File
@@ -745,7 +745,8 @@ def main(csv_paths, output, *,
all_y = [k for k, _ in all_y]
if not all_by and not all_y:
print("error: needs --by or -y to figure out fields")
print("error: needs --by or -y to figure out fields",
file=sys.stderr)
sys.exit(-1)
# first collect results from CSV files
+2 -1
View File
@@ -279,7 +279,8 @@ def fold(Result, results, by=None, defines=[]):
for k in it.chain(by or [], (k for k, _ in defines)):
if k not in Result._by and k not in Result._fields:
print("error: could not find field %r?" % k)
print("error: could not find field %r?" % k,
file=sys.stderr)
sys.exit(-1)
# filter by matching defines
+4 -3
View File
@@ -183,7 +183,7 @@ def collect(obj_paths, *,
if proc.returncode != 0:
if not args.get('verbose'):
for line in proc.stderr:
sys.stdout.write(line)
sys.stderr.write(line)
sys.exit(-1)
# collect structs as we parse dwarf info
@@ -230,7 +230,7 @@ def collect(obj_paths, *,
if proc.returncode != 0:
if not args.get('verbose'):
for line in proc.stderr:
sys.stdout.write(line)
sys.stderr.write(line)
sys.exit(-1)
for r in results_:
@@ -270,7 +270,8 @@ def fold(Result, results, by=None, defines=[]):
for k in it.chain(by or [], (k for k, _ in defines)):
if k not in Result._by and k not in Result._fields:
print("error: could not find field %r?" % k)
print("error: could not find field %r?" % k,
file=sys.stderr)
sys.exit(-1)
# filter by matching defines
+10 -5
View File
@@ -324,7 +324,8 @@ def infer(fields_, results,
types_[k] = t
break
else:
print("error: no type matches field %r?" % k)
print("error: no type matches field %r?" % k,
file=sys.stderr)
sys.exit(-1)
types = types_
@@ -376,7 +377,8 @@ def fold(Result, results, by=None, defines=[]):
for k in it.chain(by or [], (k for k, _ in defines)):
if k not in Result._by and k not in Result._fields:
print("error: could not find field %r?" % k)
print("error: could not find field %r?" % k,
file=sys.stderr)
sys.exit(-1)
# filter by matching defines
@@ -593,7 +595,8 @@ def main(csv_paths, *,
for t in TYPES.keys():
for k in args.get(t, []):
if k in types:
print("error: conflicting type for field %r?" % k)
print("error: conflicting type for field %r?" % k,
file=sys.stderr)
sys.exit(-1)
types[k] = TYPES[t]
# rename types?
@@ -609,7 +612,8 @@ def main(csv_paths, *,
for o in OPS.keys():
for k in args.get(o, []):
if k in ops:
print("error: conflicting op for field %r?" % k)
print("error: conflicting op for field %r?" % k,
file=sys.stderr)
sys.exit(-1)
ops[k] = OPS[o]
# rename ops?
@@ -621,7 +625,8 @@ def main(csv_paths, *,
ops.update(ops_)
if by is None and fields is None:
print("error: needs --by or --fields to figure out fields")
print("error: needs --by or --fields to figure out fields",
file=sys.stderr)
sys.exit(-1)
# find CSV files
+2 -1
View File
@@ -131,7 +131,8 @@ def main(path='-', *, lines=5, cat=False, sleep=None, keep_open=False):
# don't just flood open calls
time.sleep(sleep or 0.1)
except FileNotFoundError as e:
print("error: file not found %r" % path)
print("error: file not found %r" % path,
file=sys.stderr)
sys.exit(-1)
except KeyboardInterrupt:
pass
+2 -1
View File
@@ -44,7 +44,8 @@ def main(in_path, out_paths, *, keep_open=False):
except BrokenPipeError:
pass
except FileNotFoundError as e:
print("error: file not found %r" % in_path)
print("error: file not found %r" % in_path,
file=sys.stderr)
sys.exit(-1)
except KeyboardInterrupt:
pass
+10 -7
View File
@@ -298,7 +298,8 @@ def compile(test_paths, **args):
print('%serror:%s cycle detected in suite ordering: {%s}' % (
'\x1b[01;31m' if args['color'] else '',
'\x1b[m' if args['color'] else '',
', '.join(suite.name for suite in pending.values())))
', '.join(suite.name for suite in pending.values())),
file=sys.stderr)
sys.exit(-1)
pending = pending_
@@ -337,7 +338,8 @@ def compile(test_paths, **args):
print('%serror:%s compiling more than one test suite? (%r)' % (
'\x1b[01;31m' if args['color'] else '',
'\x1b[m' if args['color'] else '',
test_paths))
test_paths),
file=sys.stderr)
sys.exit(-1)
suite = suites[0]
@@ -717,7 +719,7 @@ def find_perms(runner, test_ids=[], **args):
if proc.returncode != 0:
if not args.get('verbose'):
for line in proc.stderr:
sys.stdout.write(line)
sys.stderr.write(line)
sys.exit(-1)
# get which suite each case belongs to via paths
@@ -747,7 +749,7 @@ def find_perms(runner, test_ids=[], **args):
if proc.returncode != 0:
if not args.get('verbose'):
for line in proc.stderr:
sys.stdout.write(line)
sys.stderr.write(line)
sys.exit(-1)
# figure out expected suite perms
@@ -791,7 +793,7 @@ def find_path(runner, id, **args):
if proc.returncode != 0:
if not args.get('verbose'):
for line in proc.stderr:
sys.stdout.write(line)
sys.stderr.write(line)
sys.exit(-1)
return path
@@ -820,7 +822,7 @@ def find_defines(runner, id, **args):
if proc.returncode != 0:
if not args.get('verbose'):
for line in proc.stderr:
sys.stdout.write(line)
sys.stderr.write(line)
sys.exit(-1)
return defines
@@ -872,7 +874,8 @@ def find_ids(runner, test_ids=[], **args):
print('%serror:%s no tests match id %r?' % (
'\x1b[01;31m' if args['color'] else '',
'\x1b[m' if args['color'] else '',
id))
id),
file=sys.stderr)
sys.exit(-1)
test_ids_.extend(test_ids__)
+4 -2
View File
@@ -717,7 +717,8 @@ def main(path='-', *,
size = None
if any(isinstance(b, list) and len(b) > 1 for b in block):
print("error: More than one block address?")
print("error: more than one block address?",
file=sys.stderr)
sys.exit(-1)
if isinstance(block[0], list):
block = (block[0][0], *block[1:])
@@ -1013,7 +1014,8 @@ def main(path='-', *,
# don't just flood open calls
time.sleep(sleep or 0.1)
except FileNotFoundError as e:
print("error: file not found %r" % path)
print("error: file not found %r" % path,
file=sys.stderr)
sys.exit(-1)
except KeyboardInterrupt:
pass