Tried to write errors to stderr consistently in scripts
This commit is contained in:
+2
-1
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user