Page MenuHomePhabricator

tests: handle case in test-remotefilelog-clone.t where output is out of order

Authored by swhitaker on Nov 1 2017, 7:46 AM.



test-remotefilelog-clone.t is flaky, and fails sporadically as follows:

   $ hg clone --noupdate ssh://user@dummy/shallow full
   streaming all changes
+  abort: unexpected response from remote server: empty string
   remote: abort: Cannot clone from a shallow repo to a full repo.
-  abort: unexpected response from remote server: empty string

The issue happens because the line starting "abort" and the line starting
"remote: abort" come from different processes, and there's no way to
guarantee the order in which they are output.

This change attempts to address the issue by capturing the output of the
local process and examining it separately.

Test Plan

rt test-remotefilelog-clone.t

Diff Detail

rFBHGX Facebook Mercurial Extensions
Lint Skipped
Unit Tests Skipped

Event Timeline

swhitaker created this revision.Nov 1 2017, 7:46 AM
Herald added a reviewer: Restricted Project. · View Herald TranscriptNov 1 2017, 7:46 AM
swhitaker updated this revision to Diff 3190.Nov 1 2017, 7:49 AM
swhitaker updated this revision to Diff 3200.Nov 2 2017, 10:09 AM
ikostia accepted this revision.Nov 2 2017, 10:22 AM
This revision is now accepted and ready to land.Nov 2 2017, 10:22 AM
durham added a subscriber: durham.Nov 2 2017, 1:35 PM

This broke check code

+++ /data/sandcastle/boxes/trunk-hg-facebook-hg-rpms/facebook-hg-rpms/fb-hgext/tests/test-check-code-hg.t.err
@@ -100,6 +100,9 @@
    >   $ echo "rpmbin = /bin/rpm" >> .hg/hgrc
    don't use explicit paths for tools
   Skipping tests/test-remotefilelog-bad-configs.t it has no-che?k-code (glob)
+  tests/test-remotefilelog-clone.t:81:
+   > was failing sporadically. To avoid this, we capture STDERR to a file and 
+   trailing whitespace on non-output
durham added a comment.Nov 2 2017, 1:37 PM

I've pushed a fix for check code.

This revision was automatically updated to reflect the committed changes.