From patchwork Tue Mar 15 09:58:32 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [1,of,5] tests: explicitly flush output streams From: Jun Wu X-Patchwork-Id: 13892 Message-Id: <7d543ffcd496456bb8c1.1458035912@x1c> To: Date: Tue, 15 Mar 2016 09:58:32 +0000 # HG changeset patch # User Jun Wu # Date 1458035502 0 # Tue Mar 15 09:51:42 2016 +0000 # Node ID 7d543ffcd496456bb8c12b3755155250e969d688 # Parent a51d7eb2e998920b2f4c4f7114cb8450df05ec44 tests: explicitly flush output streams Some tests fail while running with chg because they do not flush their output streams. chgserver will make sure ui.flush is called after dispatch, but not after {ui,repo}setup. For other non-ui streams, it should be explicitly flushed since the request handler will use os._exit. This patch adds explicit flushes in test-bundle2-format.t, test-extension.t and test-obsolete.t. It will fix most test cases of them when running with chg. diff --git a/tests/test-bundle2-format.t b/tests/test-bundle2-format.t --- a/tests/test-bundle2-format.t +++ b/tests/test-bundle2-format.t @@ -166,6 +166,8 @@ > file.write(chunk) > except RuntimeError, exc: > raise error.Abort(exc) + > finally: + > file.flush() > > @command('unbundle2', [], '') > def cmdunbundle2(ui, repo, replypath=None): @@ -197,6 +199,7 @@ > file = open(replypath, 'wb') > for chunk in op.reply.getchunks(): > file.write(chunk) + > file.flush() > > @command('statbundle2', [], '') > def cmdstatbundle2(ui, repo): diff --git a/tests/test-extension.t b/tests/test-extension.t --- a/tests/test-extension.t +++ b/tests/test-extension.t @@ -7,9 +7,11 @@ > command = cmdutil.command(cmdtable) > def uisetup(ui): > ui.write("uisetup called\\n") + > ui.flush() > def reposetup(ui, repo): > ui.write("reposetup called for %s\\n" % os.path.basename(repo.root)) > ui.write("ui %s= repo.ui\\n" % (ui == repo.ui and "=" or "!")) + > ui.flush() > @command('foo', [], 'hg foo') > def foo(ui, *args, **kwargs): > ui.write("Foo\\n") @@ -183,6 +185,7 @@ > import foo > def extsetup(ui): > ui.write('(extroot) ', foo.func(), '\n') + > ui.flush() > EOF $ cat > $TESTTMP/extroot/foo.py < from mercurial import extensions > def reposetup(ui, repo): > ui.write('reposetup() for %s\n' % (repo.root)) + > ui.flush() > EOF $ hg init src $ echo a > src/a diff --git a/tests/test-obsolete.t b/tests/test-obsolete.t --- a/tests/test-obsolete.t +++ b/tests/test-obsolete.t @@ -923,6 +923,7 @@ Test heads computation on pending index changes with obsolescence markers $ cd .. $ cat >$TESTTMP/test_extension.py << EOF + > import sys > from mercurial import cmdutil > from mercurial.i18n import _ > @@ -936,6 +937,7 @@ > opts['logfile'] = None > cmdutil.amend(ui, repo, commitfunc, repo['.'], {}, pats, opts) > print repo.changelog.headrevs() + > sys.stdout.flush() > EOF $ cat >> $HGRCPATH << EOF > [extensions]