[PATCH] run-tests: introduce ' (cr)\n' markup of bare \r in test output

Mads Kiilerich mads at kiilerich.com
Tue Sep 25 19:09:51 CDT 2012


# HG changeset patch
# User Mads Kiilerich <mads at kiilerich.com>
# Date 1348613787 -7200
# Node ID bdc65acbd3d003f184bf0594ab406e20b2f36ca4
# Parent  d34ba4991188fdfa4f8322b9a32c4c08aaf6ff27
run-tests: introduce ' (cr)\n' markup of bare \r in test output

This replaces filtercr.py with a more stable built-in mechanism:
(esc) markup of \r is replaced with ' (cr)' and multiple lines.

Some fine occurences of (esc) markup is thus also replaced with (cr). That is
no win but also no significant loss.

diff --git a/tests/filtercr.py b/tests/filtercr.py
deleted file mode 100755
--- a/tests/filtercr.py
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/usr/bin/env python
-
-# Filter output by the progress extension to make it readable in tests
-
-import sys, re
-
-for line in sys.stdin:
-    line = re.sub(r'\r+[^\n]', lambda m: '\n' + m.group()[-1:], line)
-    sys.stdout.write(line)
-print
diff --git a/tests/run-tests.py b/tests/run-tests.py
--- a/tests/run-tests.py
+++ b/tests/run-tests.py
@@ -498,6 +498,20 @@
     vlog("# Running", cmd)
     return run(cmd, wd, options, replacements)
 
+needcrsplit = re.compile(r'([\x20-\x7e]*\r)+[\x20-\x7e]*\n$').match
+crsplit = re.compile(r'\r(?!\n)').split
+def crescape(ls):
+    """yield the lf terminated strings from ls, possibly split on bare cr and
+    with ' (cr)' markup"""
+    for l in ls:
+        if needcrsplit(l):
+            parts = crsplit(l)
+            for s in parts[:-1]:
+                yield s + ' (cr)\n'
+            yield parts[-1]
+        else:
+            yield l
+
 needescape = re.compile(r'[\x00-\x08\x0b-\x1f\x7f-\xff]').search
 escapesub = re.compile(r'[\x00-\x08\x0b-\x1f\\\x7f-\xff]').sub
 escapemap = dict((chr(i), r'\x%02x' % i) for i in range(256))
@@ -684,7 +698,7 @@
     pos = -1
     postout = []
     ret = 0
-    for n, l in enumerate(output):
+    for l in crescape(output):
         lout, lcmd = l, None
         if salt in l:
             lout, lcmd = l.split(salt, 1)
diff --git a/tests/test-archive.t b/tests/test-archive.t
--- a/tests/test-archive.t
+++ b/tests/test-archive.t
@@ -224,19 +224,19 @@
   > width = 60
   > EOF
 
-  $ hg archive ../with-progress 2>&1 | "$TESTDIR/filtercr.py"
-  
-  archiving [                                           ] 0/4
-  archiving [                                           ] 0/4
-  archiving [=========>                                 ] 1/4
-  archiving [=========>                                 ] 1/4
-  archiving [====================>                      ] 2/4
-  archiving [====================>                      ] 2/4
-  archiving [===============================>           ] 3/4
-  archiving [===============================>           ] 3/4
-  archiving [==========================================>] 4/4
-  archiving [==========================================>] 4/4
-                                                              \r (esc)
+  $ hg archive ../with-progress
+   (cr)
+  archiving [                                           ] 0/4 (cr)
+  archiving [                                           ] 0/4 (cr)
+  archiving [=========>                                 ] 1/4 (cr)
+  archiving [=========>                                 ] 1/4 (cr)
+  archiving [====================>                      ] 2/4 (cr)
+  archiving [====================>                      ] 2/4 (cr)
+  archiving [===============================>           ] 3/4 (cr)
+  archiving [===============================>           ] 3/4 (cr)
+  archiving [==========================================>] 4/4 (cr)
+  archiving [==========================================>] 4/4 (cr)
+                                                               (cr)
 
 cleanup after progress extension test:
 
diff --git a/tests/test-convert-svn-move.t b/tests/test-convert-svn-move.t
--- a/tests/test-convert-svn-move.t
+++ b/tests/test-convert-svn-move.t
@@ -165,68 +165,75 @@
   > width = 60
   > EOF
 
-  $ hg convert svn-repo hg-progress 2>&1 | "$TESTDIR/filtercr.py"
-  
-  scanning [ <=>                                          ] 1
-  scanning [  <=>                                         ] 2
-  scanning [   <=>                                        ] 3
-  scanning [    <=>                                       ] 4
-  scanning [     <=>                                      ] 5
-  scanning [      <=>                                     ] 6
-  scanning [       <=>                                    ] 7
-                                                              
-  converting [                                          ] 0/7
-  getting files [=====>                                 ] 1/6
-  getting files [============>                          ] 2/6
-  getting files [==================>                    ] 3/6
-  getting files [=========================>             ] 4/6
-  getting files [===============================>       ] 5/6
-  getting files [======================================>] 6/6
-                                                              
-  converting [=====>                                    ] 1/7
-  scanning paths [                                      ] 0/1
-  getting files [======================================>] 1/1
-                                                              
-  converting [===========>                              ] 2/7
-  scanning paths [                                      ] 0/2
-  scanning paths [==================>                   ] 1/2
-  getting files [========>                              ] 1/4
-  getting files [==================>                    ] 2/4
-  getting files [============================>          ] 3/4
-  getting files [======================================>] 4/4
-                                                              
-  converting [=================>                        ] 3/7
-  scanning paths [                                      ] 0/1
-  getting files [======================================>] 1/1
-                                                              
-  converting [=======================>                  ] 4/7
-  scanning paths [                                      ] 0/1
-  getting files [======================================>] 1/1
-                                                              
-  converting [=============================>            ] 5/7
-  scanning paths [                                      ] 0/3
-  scanning paths [===========>                          ] 1/3
-  scanning paths [========================>             ] 2/3
-  getting files [===>                                   ] 1/8
-  getting files [========>                              ] 2/8
-  getting files [=============>                         ] 3/8
-  getting files [==================>                    ] 4/8
-  getting files [=======================>               ] 5/8
-  getting files [============================>          ] 6/8
-  getting files [=================================>     ] 7/8
-  getting files [======================================>] 8/8
-                                                              
-  converting [===================================>      ] 6/7
-  scanning paths [                                      ] 0/1
-  getting files [===>                                   ] 1/8
-  getting files [========>                              ] 2/8
-  getting files [=============>                         ] 3/8
-  getting files [==================>                    ] 4/8
-  getting files [=======================>               ] 5/8
-  getting files [============================>          ] 6/8
-  getting files [=================================>     ] 7/8
-  getting files [======================================>] 8/8
-                                                              
+  $ hg convert svn-repo hg-progress
+   (cr)
+  scanning [ <=>                                          ] 1 (cr)
+  scanning [  <=>                                         ] 2 (cr)
+  scanning [   <=>                                        ] 3 (cr)
+  scanning [    <=>                                       ] 4 (cr)
+  scanning [     <=>                                      ] 5 (cr)
+  scanning [      <=>                                     ] 6 (cr)
+  scanning [       <=>                                    ] 7 (cr)
+                                                               (cr)
+   (cr)
+  converting [                                          ] 0/7 (cr)
+  getting files [=====>                                 ] 1/6 (cr)
+  getting files [============>                          ] 2/6 (cr)
+  getting files [==================>                    ] 3/6 (cr)
+  getting files [=========================>             ] 4/6 (cr)
+  getting files [===============================>       ] 5/6 (cr)
+  getting files [======================================>] 6/6 (cr)
+                                                               (cr)
+   (cr)
+  converting [=====>                                    ] 1/7 (cr)
+  scanning paths [                                      ] 0/1 (cr)
+  getting files [======================================>] 1/1 (cr)
+                                                               (cr)
+   (cr)
+  converting [===========>                              ] 2/7 (cr)
+  scanning paths [                                      ] 0/2 (cr)
+  scanning paths [==================>                   ] 1/2 (cr)
+  getting files [========>                              ] 1/4 (cr)
+  getting files [==================>                    ] 2/4 (cr)
+  getting files [============================>          ] 3/4 (cr)
+  getting files [======================================>] 4/4 (cr)
+                                                               (cr)
+   (cr)
+  converting [=================>                        ] 3/7 (cr)
+  scanning paths [                                      ] 0/1 (cr)
+  getting files [======================================>] 1/1 (cr)
+                                                               (cr)
+   (cr)
+  converting [=======================>                  ] 4/7 (cr)
+  scanning paths [                                      ] 0/1 (cr)
+  getting files [======================================>] 1/1 (cr)
+                                                               (cr)
+   (cr)
+  converting [=============================>            ] 5/7 (cr)
+  scanning paths [                                      ] 0/3 (cr)
+  scanning paths [===========>                          ] 1/3 (cr)
+  scanning paths [========================>             ] 2/3 (cr)
+  getting files [===>                                   ] 1/8 (cr)
+  getting files [========>                              ] 2/8 (cr)
+  getting files [=============>                         ] 3/8 (cr)
+  getting files [==================>                    ] 4/8 (cr)
+  getting files [=======================>               ] 5/8 (cr)
+  getting files [============================>          ] 6/8 (cr)
+  getting files [=================================>     ] 7/8 (cr)
+  getting files [======================================>] 8/8 (cr)
+                                                               (cr)
+   (cr)
+  converting [===================================>      ] 6/7 (cr)
+  scanning paths [                                      ] 0/1 (cr)
+  getting files [===>                                   ] 1/8 (cr)
+  getting files [========>                              ] 2/8 (cr)
+  getting files [=============>                         ] 3/8 (cr)
+  getting files [==================>                    ] 4/8 (cr)
+  getting files [=======================>               ] 5/8 (cr)
+  getting files [============================>          ] 6/8 (cr)
+  getting files [=================================>     ] 7/8 (cr)
+  getting files [======================================>] 8/8 (cr)
+                                                               (cr)
   initializing destination hg-progress repository
   scanning source...
   sorting...
@@ -238,6 +245,5 @@
   2 adddb
   1 branch
   0 clobberdir
-  
 
   $ cd ..
diff --git a/tests/test-debugbuilddag.t b/tests/test-debugbuilddag.t
--- a/tests/test-debugbuilddag.t
+++ b/tests/test-debugbuilddag.t
@@ -8,44 +8,43 @@
   > --config extensions.progress= --config progress.assume-tty=1 \
   > --config progress.delay=0 --config progress.refresh=0 \
   > --config progress.format=topic,bar,number \
-  > --config progress.width=60 2>&1 | \
-  > python "$TESTDIR/filtercr.py"
-  
-  building [                                          ]  0/12
-  building [                                          ]  0/12
-  building [                                          ]  0/12
-  building [                                          ]  0/12
-  building [==>                                       ]  1/12
-  building [==>                                       ]  1/12
-  building [==>                                       ]  1/12
-  building [==>                                       ]  1/12
-  building [======>                                   ]  2/12
-  building [======>                                   ]  2/12
-  building [=========>                                ]  3/12
-  building [=========>                                ]  3/12
-  building [=============>                            ]  4/12
-  building [=============>                            ]  4/12
-  building [=============>                            ]  4/12
-  building [=============>                            ]  4/12
-  building [=============>                            ]  4/12
-  building [=============>                            ]  4/12
-  building [================>                         ]  5/12
-  building [================>                         ]  5/12
-  building [====================>                     ]  6/12
-  building [====================>                     ]  6/12
-  building [=======================>                  ]  7/12
-  building [=======================>                  ]  7/12
-  building [===========================>              ]  8/12
-  building [===========================>              ]  8/12
-  building [===========================>              ]  8/12
-  building [===========================>              ]  8/12
-  building [==============================>           ]  9/12
-  building [==============================>           ]  9/12
-  building [==================================>       ] 10/12
-  building [==================================>       ] 10/12
-  building [=====================================>    ] 11/12
-  building [=====================================>    ] 11/12
-                                                              \r (esc)
+  > --config progress.width=60
+   (cr)
+  building [                                          ]  0/12 (cr)
+  building [                                          ]  0/12 (cr)
+  building [                                          ]  0/12 (cr)
+  building [                                          ]  0/12 (cr)
+  building [==>                                       ]  1/12 (cr)
+  building [==>                                       ]  1/12 (cr)
+  building [==>                                       ]  1/12 (cr)
+  building [==>                                       ]  1/12 (cr)
+  building [======>                                   ]  2/12 (cr)
+  building [======>                                   ]  2/12 (cr)
+  building [=========>                                ]  3/12 (cr)
+  building [=========>                                ]  3/12 (cr)
+  building [=============>                            ]  4/12 (cr)
+  building [=============>                            ]  4/12 (cr)
+  building [=============>                            ]  4/12 (cr)
+  building [=============>                            ]  4/12 (cr)
+  building [=============>                            ]  4/12 (cr)
+  building [=============>                            ]  4/12 (cr)
+  building [================>                         ]  5/12 (cr)
+  building [================>                         ]  5/12 (cr)
+  building [====================>                     ]  6/12 (cr)
+  building [====================>                     ]  6/12 (cr)
+  building [=======================>                  ]  7/12 (cr)
+  building [=======================>                  ]  7/12 (cr)
+  building [===========================>              ]  8/12 (cr)
+  building [===========================>              ]  8/12 (cr)
+  building [===========================>              ]  8/12 (cr)
+  building [===========================>              ]  8/12 (cr)
+  building [==============================>           ]  9/12 (cr)
+  building [==============================>           ]  9/12 (cr)
+  building [==================================>       ] 10/12 (cr)
+  building [==================================>       ] 10/12 (cr)
+  building [=====================================>    ] 11/12 (cr)
+  building [=====================================>    ] 11/12 (cr)
+                                                               (cr)
 
 tags
   $ cat .hg/localtags
diff --git a/tests/test-diff-ignore-whitespace.t b/tests/test-diff-ignore-whitespace.t
--- a/tests/test-diff-ignore-whitespace.t
+++ b/tests/test-diff-ignore-whitespace.t
@@ -404,7 +404,8 @@
   -goodbye world
   +hello world\r (esc)
   +\r (esc)
-  +goodbye\rworld (esc)
+  +goodbye (cr)
+  world
 
 No completely blank lines to ignore:
 
@@ -417,7 +418,8 @@
   -goodbye world
   +hello world\r (esc)
   +\r (esc)
-  +goodbye\rworld (esc)
+  +goodbye (cr)
+  world
 
 Only new line noticed:
 
diff --git a/tests/test-diff-newlines.t b/tests/test-diff-newlines.t
--- a/tests/test-diff-newlines.t
+++ b/tests/test-diff-newlines.t
@@ -13,6 +13,7 @@
   +++ b/a	Thu Jan 01 00:00:02 1970 +0000
   @@ -1,2 +1,3 @@
    confuse str.splitlines
-   embedded\rnewline (esc)
+   embedded (cr)
+  newline
   +clean diff
 
diff --git a/tests/test-eolfilename.t b/tests/test-eolfilename.t
--- a/tests/test-eolfilename.t
+++ b/tests/test-eolfilename.t
@@ -9,11 +9,13 @@
   $ A=`printf 'he\rllo'`
   $ echo foo > "$A"
   $ hg add
-  adding he\rllo (esc)
+  adding he (cr)
+  llo
   abort: '\n' and '\r' disallowed in filenames: 'he\rllo'
   [255]
   $ hg ci -A -m m
-  adding he\rllo (esc)
+  adding he (cr)
+  llo
   abort: '\n' and '\r' disallowed in filenames: 'he\rllo'
   [255]
   $ rm "$A"
@@ -31,7 +33,9 @@
   [255]
   $ echo foo > "$A"
   $ hg debugwalk
-  f  he\rllo  he\rllo (esc)
+  f  he (cr)
+  llo  he (cr)
+  llo
   f  hell
   o  hell
   o
diff --git a/tests/test-patchbomb.t b/tests/test-patchbomb.t
--- a/tests/test-patchbomb.t
+++ b/tests/test-patchbomb.t
@@ -149,29 +149,31 @@
   $ hg email -m test.mbox -f quux -t foo -c bar -s test 0:tip \
   > --config extensions.progress= --config progress.assume-tty=1 \
   > --config progress.delay=0 --config progress.refresh=0 \
-  > --config progress.width=60 2>&1 | \
-  > python "$TESTDIR/filtercr.py"
+  > --config progress.width=60
   this patch series consists of 2 patches.
   
   
   Write the introductory message for the patch series.
   
-  
-  sending [                                             ] 0/3
-  sending [                                             ] 0/3
-                                                              
-                                                              
-  sending [==============>                              ] 1/3
-  sending [==============>                              ] 1/3
-                                                              
-                                                              
-  sending [=============================>               ] 2/3
-  sending [=============================>               ] 2/3
+   (cr)
+  sending [                                             ] 0/3 (cr)
+  sending [                                             ] 0/3 (cr)
+                                                               (cr)
+   (cr)
+                                                               (cr)
+   (cr)
+  sending [==============>                              ] 1/3 (cr)
+  sending [==============>                              ] 1/3 (cr)
+                                                               (cr)
+   (cr)
+                                                               (cr)
+   (cr)
+  sending [=============================>               ] 2/3 (cr)
+  sending [=============================>               ] 2/3 (cr)
                                                               \r (esc)
   sending [PATCH 0 of 2] test ...
   sending [PATCH 1 of 2] a ...
   sending [PATCH 2 of 2] b ...
-  
 
   $ cd ..
 
diff --git a/tests/test-progress.t b/tests/test-progress.t
--- a/tests/test-progress.t
+++ b/tests/test-progress.t
@@ -46,104 +46,96 @@
 
 test default params, display nothing because of delay
 
-  $ hg -y loop 3 2>&1 | "$TESTDIR/filtercr.py"
-  
+  $ hg -y loop 3
   $ echo "delay=0" >> $HGRCPATH
   $ echo "refresh=0" >> $HGRCPATH
 
 test with delay=0, refresh=0
 
-  $ hg -y loop 3 2>&1 | "$TESTDIR/filtercr.py"
-  
-  loop [                                                ] 0/3
-  loop [===============>                                ] 1/3
-  loop [===============================>                ] 2/3
-                                                              \r (esc)
+  $ hg -y loop 3
+   (cr)
+  loop [                                                ] 0/3 (cr)
+  loop [===============>                                ] 1/3 (cr)
+  loop [===============================>                ] 2/3 (cr)
+                                                               (cr)
 
 
 test nested short-lived topics (which shouldn't display with nestdelay):
 
-  $ hg -y loop 3 --nested 2>&1 | \
-  > python "$TESTDIR/filtercr.py"
-  
-  loop [                                                ] 0/3
-  loop [===============>                                ] 1/3
-  loop [===============================>                ] 2/3
-                                                              \r (esc)
+  $ hg -y loop 3 --nested
+   (cr)
+  loop [                                                ] 0/3 (cr)
+  loop [===============>                                ] 1/3 (cr)
+  loop [===============================>                ] 2/3 (cr)
+                                                               (cr)
 
 
-  $ hg --config progress.changedelay=0 -y loop 3 --nested 2>&1 | \
-  > python "$TESTDIR/filtercr.py"
-  
-  loop [                                                ] 0/3
-  nested [                                              ] 0/2
-  nested [======================>                       ] 1/2
-  loop [===============>                                ] 1/3
-  nested [                                              ] 0/2
-  nested [======================>                       ] 1/2
-  loop [===============================>                ] 2/3
-  nested [                                              ] 0/2
-  nested [======================>                       ] 1/2
-                                                              \r (esc)
+  $ hg --config progress.changedelay=0 -y loop 3 --nested
+   (cr)
+  loop [                                                ] 0/3 (cr)
+  nested [                                              ] 0/2 (cr)
+  nested [======================>                       ] 1/2 (cr)
+  loop [===============>                                ] 1/3 (cr)
+  nested [                                              ] 0/2 (cr)
+  nested [======================>                       ] 1/2 (cr)
+  loop [===============================>                ] 2/3 (cr)
+  nested [                                              ] 0/2 (cr)
+  nested [======================>                       ] 1/2 (cr)
+                                                               (cr)
 
 
 test two topics being printed in parallel (as when we're doing a local
 --pull clone, where you get the unbundle and bundle progress at the
 same time):
-  $ hg loop 3 --parallel 2>&1 | python "$TESTDIR/filtercr.py"
-  
-  loop [                                                ] 0/3
-  loop [===============>                                ] 1/3
-  loop [===============================>                ] 2/3
-                                                              \r (esc)
+  $ hg loop 3 --parallel
+   (cr)
+  loop [                                                ] 0/3 (cr)
+  loop [===============>                                ] 1/3 (cr)
+  loop [===============================>                ] 2/3 (cr)
+                                                               (cr)
 test refresh is taken in account
 
-  $ hg -y --config progress.refresh=100 loop 3 2>&1 | "$TESTDIR/filtercr.py"
-  
+  $ hg -y --config progress.refresh=100 loop 3
 
 test format options 1
 
-  $ hg -y --config 'progress.format=number topic item+2' loop 2 2>&1 \
-  > | "$TESTDIR/filtercr.py"
-  
-  0/2 loop lo
-  1/2 loop lo
-                                                              \r (esc)
+  $ hg -y --config 'progress.format=number topic item+2' loop 2
+   (cr)
+  0/2 loop lo (cr)
+  1/2 loop lo (cr)
+                                                               (cr)
 
 test format options 2
 
-  $ hg -y --config 'progress.format=number item-3 bar' loop 2 2>&1 \
-  > | "$TESTDIR/filtercr.py"
-  
-  0/2 p.0 [                                                 ]
-  1/2 p.1 [=======================>                         ]
-                                                              \r (esc)
+  $ hg -y --config 'progress.format=number item-3 bar' loop 2
+   (cr)
+  0/2 p.0 [                                                 ] (cr)
+  1/2 p.1 [=======================>                         ] (cr)
+                                                               (cr)
 
 test format options and indeterminate progress
 
-  $ hg -y --config 'progress.format=number item bar' loop -- -2 2>&1 \
-  > | "$TESTDIR/filtercr.py"
-  
-  0 loop.0               [ <=>                              ]
-  1 loop.1               [  <=>                             ]
-                                                              \r (esc)
+  $ hg -y --config 'progress.format=number item bar' loop -- -2
+   (cr)
+  0 loop.0               [ <=>                              ] (cr)
+  1 loop.1               [  <=>                             ] (cr)
+                                                               (cr)
 
 make sure things don't fall over if count > total
 
-  $ hg -y loop --total 4 6 2>&1 | "$TESTDIR/filtercr.py"
-  
-  loop [                                                ] 0/4
-  loop [===========>                                    ] 1/4
-  loop [=======================>                        ] 2/4
-  loop [===================================>            ] 3/4
-  loop [===============================================>] 4/4
-  loop [ <=>                                            ] 5/4
-                                                              \r (esc)
+  $ hg -y loop --total 4 6
+   (cr)
+  loop [                                                ] 0/4 (cr)
+  loop [===========>                                    ] 1/4 (cr)
+  loop [=======================>                        ] 2/4 (cr)
+  loop [===================================>            ] 3/4 (cr)
+  loop [===============================================>] 4/4 (cr)
+  loop [ <=>                                            ] 5/4 (cr)
+                                                               (cr)
 
 test immediate progress completion
 
-  $ hg -y loop 0 2>&1 | "$TESTDIR/filtercr.py"
-  
+  $ hg -y loop 0
 
 test delay time estimates
 
@@ -173,44 +165,44 @@
   $ echo "delay=25" >> $HGRCPATH
   $ echo "width=60" >> $HGRCPATH
 
-  $ hg -y loop 8 2>&1 | python "$TESTDIR/filtercr.py"
-  
-  loop [=========>                                ] 2/8 1m07s
-  loop [===============>                            ] 3/8 56s
-  loop [=====================>                      ] 4/8 45s
-  loop [==========================>                 ] 5/8 34s
-  loop [================================>           ] 6/8 23s
-  loop [=====================================>      ] 7/8 12s
-                                                              \r (esc)
+  $ hg -y loop 8
+   (cr)
+  loop [=========>                                ] 2/8 1m07s (cr)
+  loop [===============>                            ] 3/8 56s (cr)
+  loop [=====================>                      ] 4/8 45s (cr)
+  loop [==========================>                 ] 5/8 34s (cr)
+  loop [================================>           ] 6/8 23s (cr)
+  loop [=====================================>      ] 7/8 12s (cr)
+                                                               (cr)
 
-  $ MOCKTIME=10000 hg -y loop 4 2>&1 | python "$TESTDIR/filtercr.py"
-  
-  loop [                                                ] 0/4
-  loop [=========>                                ] 1/4 8h21m
-  loop [====================>                     ] 2/4 5h34m
-  loop [==============================>           ] 3/4 2h47m
-                                                              \r (esc)
+  $ MOCKTIME=10000 hg -y loop 4
+   (cr)
+  loop [                                                ] 0/4 (cr)
+  loop [=========>                                ] 1/4 8h21m (cr)
+  loop [====================>                     ] 2/4 5h34m (cr)
+  loop [==============================>           ] 3/4 2h47m (cr)
+                                                               (cr)
 
-  $ MOCKTIME=1000000 hg -y loop 4 2>&1 | python "$TESTDIR/filtercr.py"
-  
-  loop [                                                ] 0/4
-  loop [=========>                                ] 1/4 5w00d
-  loop [====================>                     ] 2/4 3w03d
-  loop [=============================>           ] 3/4 11d14h
-                                                              \r (esc)
+  $ MOCKTIME=1000000 hg -y loop 4
+   (cr)
+  loop [                                                ] 0/4 (cr)
+  loop [=========>                                ] 1/4 5w00d (cr)
+  loop [====================>                     ] 2/4 3w03d (cr)
+  loop [=============================>           ] 3/4 11d14h (cr)
+                                                               (cr)
 
 
-  $ MOCKTIME=14000000 hg -y loop 4 2>&1 | python "$TESTDIR/filtercr.py"
-  
-  loop [                                                ] 0/4
-  loop [=========>                                ] 1/4 1y18w
-  loop [===================>                     ] 2/4 46w03d
-  loop [=============================>           ] 3/4 23w02d
-                                                              \r (esc)
+  $ MOCKTIME=14000000 hg -y loop 4
+   (cr)
+  loop [                                                ] 0/4 (cr)
+  loop [=========>                                ] 1/4 1y18w (cr)
+  loop [===================>                     ] 2/4 46w03d (cr)
+  loop [=============================>           ] 3/4 23w02d (cr)
+                                                               (cr)
 
 Time estimates should not fail when there's no end point:
-  $ hg -y loop -- -4 2>&1 | python "$TESTDIR/filtercr.py"
-  
-  loop [ <=>                                              ] 2
-  loop [  <=>                                             ] 3
-                                                              \r (esc)
+  $ hg -y loop -- -4
+   (cr)
+  loop [ <=>                                              ] 2 (cr)
+  loop [  <=>                                             ] 3 (cr)
+                                                               (cr)
diff --git a/tests/test-subrepo-recursion.t b/tests/test-subrepo-recursion.t
--- a/tests/test-subrepo-recursion.t
+++ b/tests/test-subrepo-recursion.t
@@ -260,31 +260,33 @@
 Test archiving to a directory tree (the doubled lines in the output
 only show up in the test output, not in real usage):
 
-  $ hg archive --subrepos ../archive 2>&1 | "$TESTDIR/filtercr.py"
-  
-  archiving [                                           ] 0/3
-  archiving [                                           ] 0/3
-  archiving [=============>                             ] 1/3
-  archiving [=============>                             ] 1/3
-  archiving [===========================>               ] 2/3
-  archiving [===========================>               ] 2/3
-  archiving [==========================================>] 3/3
-  archiving [==========================================>] 3/3
-                                                              
-  archiving (foo) [                                     ] 0/3
-  archiving (foo) [                                     ] 0/3
-  archiving (foo) [===========>                         ] 1/3
-  archiving (foo) [===========>                         ] 1/3
-  archiving (foo) [=======================>             ] 2/3
-  archiving (foo) [=======================>             ] 2/3
-  archiving (foo) [====================================>] 3/3
-  archiving (foo) [====================================>] 3/3
-                                                              
-  archiving (foo/bar) [                                 ] 0/1 (glob)
-  archiving (foo/bar) [                                 ] 0/1 (glob)
-  archiving (foo/bar) [================================>] 1/1 (glob)
-  archiving (foo/bar) [================================>] 1/1 (glob)
-                                                              \r (esc)
+  $ hg archive --subrepos ../archive
+   (cr)
+  archiving [                                           ] 0/3 (cr)
+  archiving [                                           ] 0/3 (cr)
+  archiving [=============>                             ] 1/3 (cr)
+  archiving [=============>                             ] 1/3 (cr)
+  archiving [===========================>               ] 2/3 (cr)
+  archiving [===========================>               ] 2/3 (cr)
+  archiving [==========================================>] 3/3 (cr)
+  archiving [==========================================>] 3/3 (cr)
+                                                               (cr)
+   (cr)
+  archiving (foo) [                                     ] 0/3 (cr)
+  archiving (foo) [                                     ] 0/3 (cr)
+  archiving (foo) [===========>                         ] 1/3 (cr)
+  archiving (foo) [===========>                         ] 1/3 (cr)
+  archiving (foo) [=======================>             ] 2/3 (cr)
+  archiving (foo) [=======================>             ] 2/3 (cr)
+  archiving (foo) [====================================>] 3/3 (cr)
+  archiving (foo) [====================================>] 3/3 (cr)
+                                                               (cr)
+   (cr)
+  archiving (foo/bar) [                                 ] 0/1 (cr) (glob)
+  archiving (foo/bar) [                                 ] 0/1 (cr) (glob)
+  archiving (foo/bar) [================================>] 1/1 (cr) (glob)
+  archiving (foo/bar) [================================>] 1/1 (cr) (glob)
+                                                               (cr)
   $ find ../archive | sort
   ../archive
   ../archive/.hg_archival.txt
@@ -300,65 +302,69 @@
 
 Test archiving to zip file (unzip output is unstable):
 
-  $ hg archive --subrepos ../archive.zip 2>&1 | "$TESTDIR/filtercr.py"
-  
-  archiving [                                           ] 0/3
-  archiving [                                           ] 0/3
-  archiving [=============>                             ] 1/3
-  archiving [=============>                             ] 1/3
-  archiving [===========================>               ] 2/3
-  archiving [===========================>               ] 2/3
-  archiving [==========================================>] 3/3
-  archiving [==========================================>] 3/3
-                                                              
-  archiving (foo) [                                     ] 0/3
-  archiving (foo) [                                     ] 0/3
-  archiving (foo) [===========>                         ] 1/3
-  archiving (foo) [===========>                         ] 1/3
-  archiving (foo) [=======================>             ] 2/3
-  archiving (foo) [=======================>             ] 2/3
-  archiving (foo) [====================================>] 3/3
-  archiving (foo) [====================================>] 3/3
-                                                              
-  archiving (foo/bar) [                                 ] 0/1 (glob)
-  archiving (foo/bar) [                                 ] 0/1 (glob)
-  archiving (foo/bar) [================================>] 1/1 (glob)
-  archiving (foo/bar) [================================>] 1/1 (glob)
-                                                              \r (esc)
+  $ hg archive --subrepos ../archive.zip
+   (cr)
+  archiving [                                           ] 0/3 (cr)
+  archiving [                                           ] 0/3 (cr)
+  archiving [=============>                             ] 1/3 (cr)
+  archiving [=============>                             ] 1/3 (cr)
+  archiving [===========================>               ] 2/3 (cr)
+  archiving [===========================>               ] 2/3 (cr)
+  archiving [==========================================>] 3/3 (cr)
+  archiving [==========================================>] 3/3 (cr)
+                                                               (cr)
+   (cr)
+  archiving (foo) [                                     ] 0/3 (cr)
+  archiving (foo) [                                     ] 0/3 (cr)
+  archiving (foo) [===========>                         ] 1/3 (cr)
+  archiving (foo) [===========>                         ] 1/3 (cr)
+  archiving (foo) [=======================>             ] 2/3 (cr)
+  archiving (foo) [=======================>             ] 2/3 (cr)
+  archiving (foo) [====================================>] 3/3 (cr)
+  archiving (foo) [====================================>] 3/3 (cr)
+                                                               (cr)
+   (cr)
+  archiving (foo/bar) [                                 ] 0/1 (cr) (glob)
+  archiving (foo/bar) [                                 ] 0/1 (cr) (glob)
+  archiving (foo/bar) [================================>] 1/1 (cr) (glob)
+  archiving (foo/bar) [================================>] 1/1 (cr) (glob)
+                                                               (cr)
 
 Test archiving a revision that references a subrepo that is not yet
 cloned:
 
   $ hg clone -U . ../empty
   $ cd ../empty
-  $ hg archive --subrepos -r tip ../archive.tar.gz 2>&1 | "$TESTDIR/filtercr.py"
-  
-  archiving [                                           ] 0/3
-  archiving [                                           ] 0/3
-  archiving [=============>                             ] 1/3
-  archiving [=============>                             ] 1/3
-  archiving [===========================>               ] 2/3
-  archiving [===========================>               ] 2/3
-  archiving [==========================================>] 3/3
-  archiving [==========================================>] 3/3
-                                                              
-  archiving (foo) [                                     ] 0/3
-  archiving (foo) [                                     ] 0/3
-  archiving (foo) [===========>                         ] 1/3
-  archiving (foo) [===========>                         ] 1/3
-  archiving (foo) [=======================>             ] 2/3
-  archiving (foo) [=======================>             ] 2/3
-  archiving (foo) [====================================>] 3/3
-  archiving (foo) [====================================>] 3/3
-                                                              
-  archiving (foo/bar) [                                 ] 0/1 (glob)
-  archiving (foo/bar) [                                 ] 0/1 (glob)
-  archiving (foo/bar) [================================>] 1/1 (glob)
-  archiving (foo/bar) [================================>] 1/1 (glob)
-                                                              
+  $ hg archive --subrepos -r tip ../archive.tar.gz
+   (cr)
+  archiving [                                           ] 0/3 (cr)
+  archiving [                                           ] 0/3 (cr)
+  archiving [=============>                             ] 1/3 (cr)
+  archiving [=============>                             ] 1/3 (cr)
+  archiving [===========================>               ] 2/3 (cr)
+  archiving [===========================>               ] 2/3 (cr)
+  archiving [==========================================>] 3/3 (cr)
+  archiving [==========================================>] 3/3 (cr)
+                                                               (cr)
+   (cr)
+  archiving (foo) [                                     ] 0/3 (cr)
+  archiving (foo) [                                     ] 0/3 (cr)
+  archiving (foo) [===========>                         ] 1/3 (cr)
+  archiving (foo) [===========>                         ] 1/3 (cr)
+  archiving (foo) [=======================>             ] 2/3 (cr)
+  archiving (foo) [=======================>             ] 2/3 (cr)
+  archiving (foo) [====================================>] 3/3 (cr)
+  archiving (foo) [====================================>] 3/3 (cr)
+                                                               (cr)
+   (cr)
+  archiving (foo/bar) [                                 ] 0/1 (cr) (glob)
+  archiving (foo/bar) [                                 ] 0/1 (cr) (glob)
+  archiving (foo/bar) [================================>] 1/1 (cr) (glob)
+  archiving (foo/bar) [================================>] 1/1 (cr) (glob)
+                                                               (cr)
   cloning subrepo foo from $TESTTMP/repo/foo
   cloning subrepo foo/bar from $TESTTMP/repo/foo/bar (glob)
-  
+
 The newly cloned subrepos contain no working copy:
 
   $ hg -R foo summary


More information about the Mercurial-devel mailing list