indygreg created this revision. Herald added subscribers: mercurial-devel, mjpieters. Herald added a reviewer: hg-reviewers.
REVISION SUMMARY We need b'' because perf.py isn't run through the source transformer. We need to cast the exception to bytes using pycompat.bytestr() because ValueError can't be %s formatted due to built-in exceptions lacking __bytes__. We need to pycompat.sysstr() before the float() and int() cast so the ValueError message doesn't have b'' in it. Even with that, it looks like the error message for the ValueError for float casts added quotes, so we need to account for that in test output. REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D6200 AFFECTED FILES contrib/perf.py tests/test-contrib-perf.t CHANGE DETAILS diff --git a/tests/test-contrib-perf.t b/tests/test-contrib-perf.t --- a/tests/test-contrib-perf.t +++ b/tests/test-contrib-perf.t @@ -260,7 +260,8 @@ malformatted run limit entry, missing "-": 500 ! wall * comb * user * sys * (best of 5) (glob) $ hg perfparents --config perf.stub=no --config perf.run-limits='aaa-12, 0.000000001-5' - malformatted run limit entry, could not convert string to float: aaa: aaa-12 + malformatted run limit entry, could not convert string to float: aaa: aaa-12 (no-py3 !) + malformatted run limit entry, could not convert string to float: 'aaa': aaa-12 (py3 !) ! wall * comb * user * sys * (best of 5) (glob) $ hg perfparents --config perf.stub=no --config perf.run-limits='12-aaaaaa, 0.000000001-5' malformatted run limit entry, invalid literal for int() with base 10: 'aaaaaa': 12-aaaaaa diff --git a/contrib/perf.py b/contrib/perf.py --- a/contrib/perf.py +++ b/contrib/perf.py @@ -316,22 +316,22 @@ limitspec = ui.configlist(b"perf", b"run-limits", []) limits = [] for item in limitspec: - parts = item.split('-', 1) + parts = item.split(b'-', 1) if len(parts) < 2: - ui.warn(('malformatted run limit entry, missing "-": %s\n' + ui.warn((b'malformatted run limit entry, missing "-": %s\n' % item)) continue try: - time_limit = float(parts[0]) + time_limit = float(pycompat.sysstr(parts[0])) except ValueError as e: - ui.warn(('malformatted run limit entry, %s: %s\n' - % (e, item))) + ui.warn((b'malformatted run limit entry, %s: %s\n' + % (pycompat.bytestr(e), item))) continue try: - run_limit = int(parts[1]) + run_limit = int(pycompat.sysstr(parts[1])) except ValueError as e: - ui.warn(('malformatted run limit entry, %s: %s\n' - % (e, item))) + ui.warn((b'malformatted run limit entry, %s: %s\n' + % (pycompat.bytestr(e), item))) continue limits.append((time_limit, run_limit)) if not limits: To: indygreg, #hg-reviewers Cc: mjpieters, mercurial-devel _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel