changeset 40200:9cc411952ab9

py3: flush stdout This avoids buffering due to mixed print() and sys.stdout.write() by profiling code. And with this, test-profile.t passes on Python 3 \o/. Honestly, I'd be shocked if there weren't more Python 3 encoding issues lingering in the profiling code. That code isn't super high quality and doesn't seem to have thorough test coverage. Differential Revision: https://phab.mercurial-scm.org/D5018
author Gregory Szorc <gregory.szorc@gmail.com>
date Fri, 12 Oct 2018 19:17:22 +0200
parents b594db74dc13
children 7df42042636d
files tests/test-profile.t
diffstat 1 files changed, 3 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/tests/test-profile.t	Fri Oct 12 19:07:12 2018 +0200
+++ b/tests/test-profile.t	Fri Oct 12 19:17:22 2018 +0200
@@ -117,11 +117,14 @@
   $ cat > fooprof.py <<EOF
   > from __future__ import absolute_import
   > import contextlib
+  > import sys
   > @contextlib.contextmanager
   > def profile(ui, fp):
   >     print('fooprof: start profile')
+  >     sys.stdout.flush()
   >     yield
   >     print('fooprof: end profile')
+  >     sys.stdout.flush()
   > def extsetup(ui):
   >     ui.write(b'fooprof: loaded\n')
   > EOF