tests: require regexes in unified tests to be marked with " (re)"

Consider this test:

  $ hg glog --template '{rev}:{node|short} "{desc}"\n'
  @  2:20c4f79fd7ac "3"
  |
  | o  1:38f24201dcab "2"
  |/
  o  0:2a18120dc1c9 "1"

Because each line beginning with "|" can be compiled as a regular
expression (equivalent to ".*|"), they will match any output.

Similarly:

  $ echo foo


The blank output line can be compiled as a regular expression and will
also match any output.

With this patch, none of the above output lines will be matched as
regular expressions. A line must end in " (re)" in order to be matched
as one.

Lines are still matched literally first, so the following will pass:

  $ echo 'foo (re)'
  foo (re)
This commit is contained in:
Brodie Rao 2010-09-22 16:06:00 -05:00
parent 548fb65104
commit 7d7d96bd74
41 changed files with 249 additions and 220 deletions

View File

@ -503,9 +503,6 @@ def tsttest(test, options):
def rematch(el, l):
try:
# hack to deal with graphlog, which looks like bogus regexes
if el.startswith('|'):
el = '\\' + el
# ensure that the regex matches to the end of the string
return re.match(el + r'\Z', l)
except re.error:
@ -531,10 +528,10 @@ def tsttest(test, options):
if el == l: # perfect match (fast)
postout.append(" " + l)
elif el and el[2:] and rematch(el, l): # fallback regex match
postout.append(" " + el)
else: # mismatch - let diff deal with it
postout.append(" " + l)
elif el and el.endswith(" (re)\n") and rematch(el[:-6] + '\n', l):
postout.append(" " + el) # fallback regex match
else:
postout.append(" " + l) # let diff deal with it
if pos in after:
postout += after.pop(pos)

View File

@ -227,9 +227,9 @@ old file -- date clamped to 1980
$ hg archive ../old.zip
$ unzip -l ../old.zip
Archive: ../old.zip
\s*Length.*
.*-----.*
.*147.*80.*00:00.*old/\.hg_archival\.txt
.*0.*80.*00:00.*old/old
.*-----.*
\s*147\s+2 files
\s*Length.* (re)
.*-----.* (re)
.*147.*80.*00:00.*old/\.hg_archival\.txt (re)
.*0.*80.*00:00.*old/old (re)
.*-----.* (re)
\s*147\s+2 files (re)

View File

@ -78,5 +78,5 @@ attack /tmp/test
$ hg manifest -r4
/tmp/test
$ hg update -Cr4
abort: No such file or directory: .*/test-audit-path\.t/target//tmp/test
abort: No such file or directory: .*/test-audit-path\.t/target//tmp/test (re)
[255]

View File

@ -8,8 +8,8 @@
$ echo "badext2 =" >> $HGRCPATH
$ hg -q help help
\*\*\* failed to import extension badext from .*/badext.py: bit bucket overflow
\*\*\* failed to import extension badext2: No module named badext2
\*\*\* failed to import extension badext from .*/badext.py: bit bucket overflow (re)
*** failed to import extension badext2: No module named badext2
hg help [TOPIC]
show help for a given topic or a help overview

View File

@ -24,7 +24,7 @@ give the server some time to start running
$ sleep 1
$ hg clone http://localhost:$HGPORT/foo copy2 2>&1
abort: HTTP Error 404: .*
abort: HTTP Error 404: .* (re)
[255]
$ kill $!

View File

@ -37,7 +37,7 @@ bookmark list
rebase
$ hg rebase -s two -d one
saved backup bundle to .*
saved backup bundle to .* (re)
$ hg log
changeset: 3:9163974d1cb5

View File

@ -50,7 +50,7 @@ bookmarks updated?
strip to revision 1
$ hg strip 1
saved backup bundle to .*
saved backup bundle to .* (re)
list bookmarks

View File

@ -80,7 +80,7 @@ Check that path aliases are expanded:
$ hg clone -q -U --config 'paths.foobar=a#0' foobar f
$ hg -R f showconfig paths.default
.*/a#0
.*/a#0 (re)
Use --pull:

View File

@ -53,7 +53,7 @@
[255]
$ rm .hg/hgrc
$ hg commit -m commit-1 2>&1
No username found, using '[^']*' instead
No username found, using '[^']*' instead (re)
$ echo space > asdf
$ hg commit -u ' ' -m commit-1

View File

@ -18,7 +18,7 @@
Push should push to 'default' when 'default-push' not set:
$ hg --cwd b push
pushing to .*/a
pushing to .*/a (re)
searching for changes
adding changesets
adding manifests
@ -29,7 +29,7 @@ Push should push to 'default-push' when set:
$ echo 'default-push = ../c' >> b/.hg/hgrc
$ hg --cwd b push
pushing to .*/c
pushing to .*/c (re)
searching for changes
adding changesets
adding manifests

View File

@ -240,12 +240,12 @@ Testing --time:
$ hg --cwd a --time id
8580ff50825a tip
Time: real .*
Time: real .* (re)
Testing --version:
$ hg --version -q
Mercurial Distributed SCM .*
Mercurial Distributed SCM .* (re)
Testing -h/--help:

View File

@ -189,7 +189,7 @@ Short help:
Test short command list with verbose option
$ hg -v help shortlist
Mercurial Distributed SCM \(version .*\)
Mercurial Distributed SCM \(version .*\) (re)
Copyright (C) 2005-2010 Matt Mackall <mpm@selenic.com> and others
This is free software; see the source for copying conditions. There is NO
@ -341,7 +341,7 @@ Verbose help for add
Test help option with version option
$ hg add -h --version
Mercurial Distributed SCM \(version .+?\)
Mercurial Distributed SCM \(version .+?\) (re)
Copyright (C) 2005-2010 Matt Mackall <mpm@selenic.com> and others
This is free software; see the source for copying conditions. There is NO

View File

@ -44,7 +44,7 @@ Should display baz only:
$ echo "*.o" > .hgignore
$ hg status
abort: .*/\.hgignore: invalid pattern \(relre\): \*\.o
abort: .*/\.hgignore: invalid pattern \(relre\): \*\.o (re)
[255]
$ echo ".*\.o" > .hgignore
@ -88,7 +88,7 @@ Check it does not ignore the current directory '.':
$ echo "syntax: invalid" > .hgignore
$ hg status
.*/\.hgignore: ignoring invalid syntax 'invalid'
.*/\.hgignore: ignoring invalid syntax 'invalid' (re)
A dir/b.o
? .hgignore
? a.c

View File

@ -1,6 +1,6 @@
$ echo "invalid" > $HGRCPATH
$ hg version
hg: parse error at .*/\.hgrc:1: invalid
hg: parse error at .*/\.hgrc:1: invalid (re)
[255]
$ echo "" > $HGRCPATH
@ -14,12 +14,12 @@ issue1199: escaping
$ cd foobar
$ cat .hg/hgrc
[paths]
default = .*/foo%bar
default = .*/foo%bar (re)
$ hg paths
default = .*/foo%bar
default = .*/foo%bar (re)
$ hg showconfig
bundle\.mainreporoot=.*/foobar
paths\.default=.*/foo%bar
bundle\.mainreporoot=.*/foobar (re)
paths\.default=.*/foo%bar (re)
$ cd ..
issue1829: wrong indentation
@ -27,7 +27,7 @@ issue1829: wrong indentation
$ echo '[foo]' > $HGRCPATH
$ echo ' x = y' >> $HGRCPATH
$ hg version
hg: parse error at .*/\.hgrc:2: x = y
hg: parse error at .*/\.hgrc:2: x = y (re)
[255]
$ python -c "print '[foo]\nbar = a\n b\n c \n de\n fg \nbaz = bif cb \n'" \
@ -40,7 +40,7 @@ issue1829: wrong indentation
$ export FAKEPATH
$ echo '%include $FAKEPATH/no-such-file' > $HGRCPATH
$ hg version
hg: parse error at .*/\.hgrc:1: cannot include /path/to/nowhere/no-such-file \(No such file or directory\)
hg: parse error at .*/\.hgrc:1: cannot include /path/to/nowhere/no-such-file \(No such file or directory\) (re)
[255]
$ unset FAKEPATH
@ -90,23 +90,23 @@ HGPLAIN
customized hgrc
$ hg showconfig
read config from: .*/\.hgrc
.*/\.hgrc:13: alias\.log=log -g
.*/\.hgrc:11: defaults\.identify=-n
.*/\.hgrc:2: ui\.debug=true
.*/\.hgrc:3: ui\.fallbackencoding=ASCII
.*/\.hgrc:4: ui\.quiet=true
.*/\.hgrc:5: ui\.slash=true
.*/\.hgrc:6: ui\.traceback=true
.*/\.hgrc:7: ui\.verbose=true
.*/\.hgrc:8: ui\.style=~/.hgstyle
.*/\.hgrc:9: ui\.logtemplate=\{node\}
read config from: .*/\.hgrc (re)
.*/\.hgrc:13: alias\.log=log -g (re)
.*/\.hgrc:11: defaults\.identify=-n (re)
.*/\.hgrc:2: ui\.debug=true (re)
.*/\.hgrc:3: ui\.fallbackencoding=ASCII (re)
.*/\.hgrc:4: ui\.quiet=true (re)
.*/\.hgrc:5: ui\.slash=true (re)
.*/\.hgrc:6: ui\.traceback=true (re)
.*/\.hgrc:7: ui\.verbose=true (re)
.*/\.hgrc:8: ui\.style=~/.hgstyle (re)
.*/\.hgrc:9: ui\.logtemplate=\{node\} (re)
plain hgrc
$ HGPLAIN=; export HGPLAIN
$ hg showconfig --config ui.traceback=True --debug
read config from: .*/\.hgrc
read config from: .*/\.hgrc (re)
none: ui.traceback=True
none: ui.verbose=False
none: ui.debug=True

View File

@ -415,12 +415,12 @@ make sure --traceback works
$ echo >> foo
$ hg ci --debug -d '0 0' -m 'change foo'
foo
calling hook commit\.auto: <function autohook at .*>
calling hook commit\.auto: <function autohook at .*> (re)
Automatically installed hook
committed changeset 1:52998019f6252a2b893452765fcb0a47351a5708
$ hg showconfig hooks
hooks\.commit\.auto=<function autohook at .*>
hooks\.commit\.auto=<function autohook at .*> (re)
test python hook configured with python:[file]:[hook] syntax

View File

@ -1,7 +1,7 @@
hg debuginstall
$ hg debuginstall
Checking encoding (ascii)...
Checking installed modules \(.*/mercurial\)\.\.\.
Checking installed modules \(.*/mercurial\)\.\.\. (re)
Checking templates...
Checking patch...
Checking commit editor...
@ -11,7 +11,7 @@ hg debuginstall
hg debuginstall with no username
$ HGUSER= hg debuginstall
Checking encoding (ascii)...
Checking installed modules \(.*/mercurial\)\.\.\.
Checking installed modules \(.*/mercurial\)\.\.\. (re)
Checking templates...
Checking patch...
Checking commit editor...

View File

@ -27,7 +27,7 @@ Check that zero-size journals are correctly aborted:
$ hg -R foo unbundle repo.hg
adding changesets
abort: Permission denied: .*
abort: Permission denied: .* (re)
[255]
$ if test -f foo/.hg/store/journal; then echo 'journal exists :-('; fi

View File

@ -27,13 +27,13 @@ as it would succeed without uisetup otherwise
Revision = {node|short}
Source = {root}/{file},v
$Author: test $
\$Date: ..../../.. ..:..:.. \$
\$Header: .*/demo\.txt,v ............ ..../../.. ..:..:.. test \$
\$Id: demo\.txt,v ............ ..../../.. ..:..:.. test \$
\$Date: ..../../.. ..:..:.. \$ (re)
\$Header: .*/demo\.txt,v ............ ..../../.. ..:..:.. test \$ (re)
\$Id: demo\.txt,v ............ ..../../.. ..:..:.. test \$ (re)
$RCSFile: demo.txt,v $
$RCSfile: demo.txt,v $
\$Revision: ............ \$
\$Source: .*/demo\.txt,v \$
\$Revision: ............ \$ (re)
\$Source: .*/demo.txt,v \$ (re)
$ hg --quiet kwdemo "Branch = {branches}"
[extensions]
@ -71,7 +71,7 @@ A bundle to test this was made with:
hg bundle --base null ../test-keyword.hg
$ hg pull -u "$TESTDIR"/test-keyword.hg
pulling from .*test-keyword\.hg
pulling from .*test-keyword\.hg (re)
requesting all changes
adding changesets
adding manifests
@ -150,7 +150,7 @@ hg cat files and symlink, no expansion
do not process $Id:
xxx $
ignore $Id$
a.*
a.* (re)
Test hook execution
@ -195,15 +195,15 @@ Pull from bundle and trigger notify
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Date: .*
Subject: changeset in .*
Date: .* (re)
Subject: changeset in .* (re)
From: mercurial
X-Hg-Notification: changeset a2392c293916
Message-Id: <hg\.a2392c293916.*>
Message-Id: <hg\.a2392c293916.*> (re)
To: Test
changeset a2392c293916 in .*
details: .*\?cmd=changeset;node=a2392c293916
changeset a2392c293916 in .* (re)
details: .*\?cmd=changeset;node=a2392c293916 (re)
description:
addsym
@ -218,15 +218,15 @@ Pull from bundle and trigger notify
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Date:.*
Subject: changeset in.*
Date:.* (re)
Subject: changeset in.* (re)
From: User Name <user@example.com>
X-Hg-Notification: changeset ef63ca68695b
Message-Id: <hg\.ef63ca68695b.*>
Message-Id: <hg\.ef63ca68695b.*> (re)
To: Test
changeset ef63ca68695b in .*
details: .*\?cmd=changeset;node=ef63ca68695b
changeset ef63ca68695b in .* (re)
details: .*\?cmd=changeset;node=ef63ca68695b (re)
description:
absym
@ -335,7 +335,7 @@ Diff remaining chunk
$ hg diff
diff -r d17e03c92c97 a
--- a/a Wed Dec 31 23:59:51 1969 -0000
\+\+\+ b/a .*
\+\+\+ b/a .* (re)
@@ -2,3 +2,4 @@
foo
do not process $Id:
@ -479,7 +479,7 @@ Diff specific revision
$ hg diff --rev 1
diff -r ef63ca68695b c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
\+\+\+ b/c .*
\+\+\+ b/c .* (re)
@@ -0,0 +1,3 @@
+expand $Id$
+do not process $Id:
@ -527,7 +527,7 @@ Cat and hg cat files before custom expansion
do not process $Id:
xxx $
ignore $Id$
a.*
a.* (re)
Write custom keyword and prepare multiline commit message
@ -577,7 +577,7 @@ Stat, verify and show custom expansion (firstline)
xxx $
$Xinfo: User Name <user@example.com>: firstline $
ignore $Id$
a.*
a.* (re)
annotate
@ -648,7 +648,7 @@ Clone to test incoming
> default = ../Test
> EOF
$ hg incoming
comparing with .*test-keyword\.t/Test
comparing with .*test-keyword\.t/Test (re)
searching for changes
changeset: 2:bb948857c743
tag: tip
@ -718,7 +718,7 @@ kwshrink a inside directory x
kwexpand nonexistent
$ hg kwexpand nonexistent
nonexistent:.*
nonexistent:.* (re)
hg serve
@ -907,7 +907,7 @@ Keywords shrunk in working directory, but not yet disabled
xxx $
$Xinfo: User Name <user@example.com>: firstline $
ignore $Id$
a.*
a.* (re)
Now disable keyword expansion
@ -924,4 +924,4 @@ Now disable keyword expansion
xxx $
$Xinfo$
ignore $Id$
a.*
a.* (re)

View File

@ -32,7 +32,7 @@ Create a patch removing a:
Save the patch queue so we can merge it later:
$ hg qsave -c -e
copy .*/t/\.hg/patches to .*/t/\.hg/patches\.1
copy .*/t/\.hg/patches to .*/t/\.hg/patches\.1 (re)
$ checkundo
Update b and commit in an "update" changeset:
@ -52,7 +52,7 @@ Update b and commit in an "update" changeset:
b
$ hg qpush -a -m
merging with queue at: .*/t/\.hg/patches\.1
merging with queue at: .*/t/\.hg/patches\.1 (re)
applying rm_a
now at: rm_a
@ -91,14 +91,14 @@ Classic MQ merge sequence *with an explicit named queue*:
Create the reference queue:
$ hg qsave -c -e -n refqueue
copy .*/t2/\.hg/patches to .*/t2/\.hg/refqueue
copy .*/t2/\.hg/patches to .*/t2/\.hg/refqueue (re)
$ hg up -C 1
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
Merge:
$ HGMERGE=internal:other hg qpush -a -m -n refqueue
merging with queue at: .*/t2/\.hg/refqueue
merging with queue at: .*/t2/\.hg/refqueue (re)
applying patcha
patching file a
Hunk #1 FAILED at 0
@ -138,10 +138,10 @@ Check patcha2 is still a regular patch:
$ cat .hg/patches/patcha2
# HG changeset patch
# Parent ........................................
# Parent ........................................ (re)
# Date 0 0
diff -r ............ -r ............ a
diff -r ............ -r ............ a (re)
--- a/a
+++ b/a
@@ -1,2 +1,3 @@

View File

@ -59,7 +59,7 @@ Fold with local changes:
[255]
$ hg diff -c .
diff -r 07f494440405 -r ............ a
diff -r 07f494440405 -r ............ a (re)
--- a/a
+++ b/a
@@ -1,1 +1,3 @@
@ -85,7 +85,7 @@ Fold git patch into a regular patch, expect git patch:
$ cat .hg/patches/regular
# HG changeset patch
# Parent ........................................
# Parent ........................................ (re)
diff --git a/a b/a
--- a/a
@ -127,7 +127,7 @@ Fold regular patch into a git patch, expect git patch:
$ cat .hg/patches/git
# HG changeset patch
# Parent ........................................
# Parent ........................................ (re)
diff --git a/a b/aa
copy from a

View File

@ -255,7 +255,7 @@ qrefresh --short tests:
diff shows what is not in patch:
$ hg diff
diff -r ............ orphanchild
diff -r ............ orphanchild (re)
--- /dev/null
+++ b/orphanchild
@@ -0,0 +1,1 @@

View File

@ -39,7 +39,7 @@ qpop/qrefresh on the wrong revision
abort: popping would remove a revision not managed by this patch queue
[255]
$ hg qpop -n patches
using patch queue: .*/repo/\.hg/patches
using patch queue: .*/repo/\.hg/patches (re)
abort: popping would remove a revision not managed by this patch queue
[255]
$ hg qrefresh

View File

@ -77,7 +77,7 @@
summary: e
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
saved backup bundle to .*
saved backup bundle to .* (re)
% after update 4, strip 4
changeset: 3:65bd5f99a4a3
tag: tip
@ -96,7 +96,7 @@
summary: e
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
saved backup bundle to .*
saved backup bundle to .* (re)
% after update 4, strip 3
changeset: 1:ef3a871183d7
user: test
@ -111,7 +111,7 @@
date: Thu Jan 01 00:00:00 1970 +0000
summary: b
saved backup bundle to .*
saved backup bundle to .* (re)
% after update 1, strip 4
changeset: 1:ef3a871183d7
user: test
@ -127,7 +127,7 @@
date: Thu Jan 01 00:00:00 1970 +0000
summary: e
saved backup bundle to .*
saved backup bundle to .* (re)
% after update 4, strip 2
changeset: 3:443431ffac4f
tag: tip
@ -146,7 +146,7 @@
summary: c
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
saved backup bundle to .*
saved backup bundle to .* (re)
% after update 4, strip 1
changeset: 0:9ab35a2d17cb
tag: tip
@ -157,7 +157,7 @@
$ teststrip null 4
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
% before update null, strip 4
saved backup bundle to .*
saved backup bundle to .* (re)
% after update null, strip 4
$ hg log
@ -212,7 +212,7 @@ before strip of merge parent
$ hg strip 4
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
saved backup bundle to .*
saved backup bundle to .* (re)
after strip of merge parent
@ -258,7 +258,7 @@ after strip of merge parent
2 is parent of 3, only one strip should happen
$ hg strip 2 3
saved backup bundle to .*
saved backup bundle to .* (re)
$ hg glog
@ changeset: 2:264128213d29
| tag: tip
@ -310,8 +310,8 @@ after strip of merge parent
$ hg strip 2 4
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
saved backup bundle to .*
saved backup bundle to .*
saved backup bundle to .* (re)
saved backup bundle to .* (re)
$ hg glog
@ changeset: 2:65bd5f99a4a3
| tag: tip
@ -335,14 +335,14 @@ after strip of merge parent
$ hg strip 1 2 4
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
saved backup bundle to .*
saved backup bundle to .* (re)
$ restore
remove branchy history for qimport tests
$ hg strip 3
saved backup bundle to .*
saved backup bundle to .* (re)
strip of applied mq should cleanup status file
@ -364,7 +364,7 @@ stripping revision in queue
$ hg strip 3
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
saved backup bundle to .*
saved backup bundle to .* (re)
applied patches after stripping rev in queue
@ -375,7 +375,7 @@ stripping ancestor of queue
$ hg strip 1
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
saved backup bundle to .*
saved backup bundle to .* (re)
applied patches after stripping ancestor of queue

View File

@ -135,7 +135,7 @@ qinit -c should create both files if they don't exist
guards
$ cat .hg/patches/series
$ hg qinit -c
abort: repository .* already exists!
abort: repository .* already exists! (re)
[255]
$ cd ..
@ -237,9 +237,9 @@ qrefresh
$ cat .hg/patches/test.patch
foo bar
diff -r [a-f0-9]* a
--- a/a\t(?P<date>.*)
\+\+\+ b/a\t(?P<date2>.*)
diff -r [a-f0-9]* a (re)
--- a/a\t(?P<date>.*) (re)
\+\+\+ b/a\t(?P<date2>.*) (re)
@@ -1,1 +1,2 @@
a
+a
@ -290,7 +290,7 @@ Dump the tag cache to ensure that it has exactly one head after qpush.
.hg/tags.cache (pre qpush):
$ cat .hg/tags.cache
1 [\da-f]{40}
1 [\da-f]{40} (re)
$ hg qpush
applying test.patch
@ -300,7 +300,7 @@ Dump the tag cache to ensure that it has exactly one head after qpush.
.hg/tags.cache (post qpush):
$ cat .hg/tags.cache
2 [\da-f]{40}
2 [\da-f]{40} (re)
$ checkundo qpush
$ cd ..
@ -737,7 +737,7 @@ strip
adding x
$ hg strip tip
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
saved backup bundle to .*
saved backup bundle to .* (re)
$ hg unbundle .hg/strip-backup/*
adding changesets
adding manifests
@ -760,7 +760,7 @@ strip with local changes, should complain
$ hg strip -f tip
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
saved backup bundle to .*
saved backup bundle to .* (re)
cd b; hg qrefresh
@ -782,14 +782,14 @@ cd b; hg qrefresh
foo
diff -r cb9a9f314b8b a
--- a/a\t(?P<date>.*)
\+\+\+ b/a\t(?P<date>.*)
--- a/a\t(?P<date>.*) (re)
\+\+\+ b/a\t(?P<date>.*) (re)
@@ -1,1 +1,2 @@
a
+a
diff -r cb9a9f314b8b b/f
--- /dev/null\t(?P<date>.*)
\+\+\+ b/b/f\t(?P<date>.*)
--- /dev/null\t(?P<date>.*) (re)
\+\+\+ b/b/f\t(?P<date>.*) (re)
@@ -0,0 +1,1 @@
+f
@ -800,8 +800,8 @@ hg qrefresh .
foo
diff -r cb9a9f314b8b b/f
--- /dev/null\t(?P<date>.*)
\+\+\+ b/b/f\t(?P<date>.*)
--- /dev/null\t(?P<date>.*) (re)
\+\+\+ b/b/f\t(?P<date>.*) (re)
@@ -0,0 +1,1 @@
+f
$ hg status
@ -1118,7 +1118,7 @@ strip again
$ hg strip 1
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
saved backup bundle to .*
saved backup bundle to .* (re)
$ checkundo strip
$ hg log
changeset: 1:20cbbe65cff7

View File

@ -25,8 +25,8 @@
Content-Transfer-Encoding: 7bit
Subject: [PATCH] a
X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
Message-Id: <8580ff50825a50c8f716\.60@.*
User-Agent: Mercurial-patchbomb/.*
Message-Id: <8580ff50825a50c8f716\.60@.* (re)
User-Agent: Mercurial-patchbomb/.* (re)
Date: Thu, 01 Jan 1970 00:01:00 +0000
From: quux
To: foo
@ -80,8 +80,8 @@
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH 0 of 2] test
Message-Id: <patchbomb\.120@[^>]*>
User-Agent: Mercurial-patchbomb/.*
Message-Id: <patchbomb\.120@[^>]*> (re)
User-Agent: Mercurial-patchbomb/.* (re)
Date: Thu, 01 Jan 1970 00:02:00 +0000
From: quux
To: foo
@ -94,10 +94,10 @@
Content-Transfer-Encoding: 7bit
Subject: [PATCH 1 of 2] a
X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
Message-Id: <8580ff50825a50c8f716\.121@[^>]*>
In-Reply-To: <patchbomb\.120@[^>]*>
References: <patchbomb\.120@[^>]*>
User-Agent: Mercurial-patchbomb/.*
Message-Id: <8580ff50825a50c8f716\.121@[^>]*> (re)
In-Reply-To: <patchbomb\.120@[^>]*> (re)
References: <patchbomb\.120@[^>]*> (re)
User-Agent: Mercurial-patchbomb/.* (re)
Date: Thu, 01 Jan 1970 00:02:01 +0000
From: quux
To: foo
@ -122,10 +122,10 @@
Content-Transfer-Encoding: 7bit
Subject: [PATCH 2 of 2] b
X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
Message-Id: <97d72e5f12c7e84f8506\.122@[^>]*>
In-Reply-To: <patchbomb\.120@[^>]*>
References: <patchbomb\.120@[^>]*>
User-Agent: Mercurial-patchbomb/.*
Message-Id: <97d72e5f12c7e84f8506\.122@[^>]*> (re)
In-Reply-To: <patchbomb\.120@[^>]*> (re)
References: <patchbomb\.120@[^>]*> (re)
User-Agent: Mercurial-patchbomb/.* (re)
Date: Thu, 01 Jan 1970 00:02:02 +0000
From: quux
To: foo
@ -241,8 +241,8 @@ mime encoded mbox (base64):
Content-Transfer-Encoding: base64
Subject: [PATCH] charset=utf-8; content-transfer-encoding: base64
X-Mercurial-Node: c3c9e37db9f4fe4882cda39baf42fed6bad8b15a
Message-Id: <c3c9e37db9f4fe4882cd\.240@.*
User-Agent: Mercurial-patchbomb/.*
Message-Id: <c3c9e37db9f4fe4882cd\.240@.* (re)
User-Agent: Mercurial-patchbomb/.* (re)
Date: Thu, 01 Jan 1970 00:04:00 +0000
From: quux
To: foo
@ -1810,8 +1810,8 @@ test multi-byte domain parsing:
Content-Transfer-Encoding: 7bit
Subject: [PATCH] test
X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
Message-Id: <8580ff50825a50c8f716\.315532860@.*
User-Agent: Mercurial-patchbomb/.*
Message-Id: <8580ff50825a50c8f716\.315532860@.* (re)
User-Agent: Mercurial-patchbomb/.* (re)
Date: Tue, 01 Jan 1980 00:01:00 +0000
From: quux
To: bar@xn--nicode-2ya.com
@ -1857,8 +1857,8 @@ test outgoing:
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [PATCH 0 of 8] test
Message-Id: <patchbomb\.315532860@.*
User-Agent: Mercurial-patchbomb/.*
Message-Id: <patchbomb\.315532860@.* (re)
User-Agent: Mercurial-patchbomb/.* (re)
Date: Tue, 01 Jan 1980 00:01:00 +0000
From: test
To: foo
@ -1870,10 +1870,10 @@ test outgoing:
Content-Transfer-Encoding: 7bit
Subject: [PATCH 1 of 8] c
X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
Message-Id: <ff2c9fa2018b15fa74b3\.315532861@.*
In-Reply-To: <patchbomb\.315532860@[^>]*>
References: <patchbomb\.315532860@[^>]*>
User-Agent: Mercurial-patchbomb/.*
Message-Id: <ff2c9fa2018b15fa74b3\.315532861@.* (re)
In-Reply-To: <patchbomb\.315532860@[^>]*> (re)
References: <patchbomb\.315532860@[^>]*> (re)
User-Agent: Mercurial-patchbomb/.* (re)
Date: Tue, 01 Jan 1980 00:01:01 +0000
From: test
To: foo
@ -1897,10 +1897,10 @@ test outgoing:
Content-Transfer-Encoding: 8bit
Subject: [PATCH 2 of 8] charset=utf-8; content-transfer-encoding: base64
X-Mercurial-Node: c3c9e37db9f4fe4882cda39baf42fed6bad8b15a
Message-Id: <c3c9e37db9f4fe4882cd\.315532862@.*
In-Reply-To: <patchbomb\.315532860@[^>]*>
References: <patchbomb\.315532860@[^>]*>
User-Agent: Mercurial-patchbomb/.*
Message-Id: <c3c9e37db9f4fe4882cd\.315532862@.* (re)
In-Reply-To: <patchbomb\.315532860@[^>]*> (re)
References: <patchbomb\.315532860@[^>]*> (re)
User-Agent: Mercurial-patchbomb/.* (re)
Date: Tue, 01 Jan 1980 00:01:02 +0000
From: test
To: foo
@ -1932,10 +1932,10 @@ test outgoing:
Subject: [PATCH 3 of 8] charset=utf-8;
content-transfer-encoding: quoted-printable
X-Mercurial-Node: c655633f8c87700bb38cc6a59a2753bdc5a6c376
Message-Id: <c655633f8c87700bb38c\.315532863@.*
In-Reply-To: <patchbomb\.315532860@[^>]*>
References: <patchbomb\.315532860@[^>]*>
User-Agent: Mercurial-patchbomb/.*
Message-Id: <c655633f8c87700bb38c\.315532863@.* (re)
In-Reply-To: <patchbomb\.315532860@[^>]*> (re)
References: <patchbomb\.315532860@[^>]*> (re)
User-Agent: Mercurial-patchbomb/.* (re)
Date: Tue, 01 Jan 1980 00:01:03 +0000
From: test
To: foo
@ -1975,10 +1975,10 @@ test outgoing:
Content-Transfer-Encoding: 8bit
Subject: [PATCH 4 of 8] charset=us-ascii; content-transfer-encoding: 8bit
X-Mercurial-Node: 22d0f96be12f5945fd67d101af58f7bc8263c835
Message-Id: <22d0f96be12f5945fd67\.315532864@.*
In-Reply-To: <patchbomb\.315532860@[^>]*>
References: <patchbomb\.315532860@[^>]*>
User-Agent: Mercurial-patchbomb/.*
Message-Id: <22d0f96be12f5945fd67\.315532864@.* (re)
In-Reply-To: <patchbomb\.315532860@[^>]*> (re)
References: <patchbomb\.315532860@[^>]*> (re)
User-Agent: Mercurial-patchbomb/.* (re)
Date: Tue, 01 Jan 1980 00:01:04 +0000
From: test
To: foo
@ -2002,10 +2002,10 @@ test outgoing:
Content-Transfer-Encoding: 7bit
Subject: [PATCH 5 of 8] Added tag zero, zero.foo for changeset 8580ff50825a
X-Mercurial-Node: dd9c2b4b8a8a0934d5523c15f2c119b362360903
Message-Id: <dd9c2b4b8a8a0934d552\.315532865@.*
In-Reply-To: <patchbomb\.315532860@[^>]*>
References: <patchbomb\.315532860@[^>]*>
User-Agent: Mercurial-patchbomb/.*
Message-Id: <dd9c2b4b8a8a0934d552\.315532865@.* (re)
In-Reply-To: <patchbomb\.315532860@[^>]*> (re)
References: <patchbomb\.315532860@[^>]*> (re)
User-Agent: Mercurial-patchbomb/.* (re)
Date: Tue, 01 Jan 1980 00:01:05 +0000
From: test
To: foo
@ -2030,10 +2030,10 @@ test outgoing:
Content-Transfer-Encoding: 7bit
Subject: [PATCH 6 of 8] Added tag one, one.patch for changeset 97d72e5f12c7
X-Mercurial-Node: eae5fcf795eee29d0e45ffc9f519a91cd79fc9ff
Message-Id: <eae5fcf795eee29d0e45\.315532866@.*
In-Reply-To: <patchbomb\.315532860@[^>]*>
References: <patchbomb\.315532860@[^>]*>
User-Agent: Mercurial-patchbomb/.*
Message-Id: <eae5fcf795eee29d0e45\.315532866@.* (re)
In-Reply-To: <patchbomb\.315532860@[^>]*> (re)
References: <patchbomb\.315532860@[^>]*> (re)
User-Agent: Mercurial-patchbomb/.* (re)
Date: Tue, 01 Jan 1980 00:01:06 +0000
From: test
To: foo
@ -2060,10 +2060,10 @@ test outgoing:
Content-Transfer-Encoding: 7bit
Subject: [PATCH 7 of 8] Added tag two, two.diff for changeset ff2c9fa2018b
X-Mercurial-Node: e317db6a6f288748d1f6cb064f3810fcba66b1b6
Message-Id: <e317db6a6f288748d1f6\.315532867@.*
In-Reply-To: <patchbomb\.315532860@[^>]*>
References: <patchbomb\.315532860@[^>]*>
User-Agent: Mercurial-patchbomb/.*
Message-Id: <e317db6a6f288748d1f6\.315532867@.* (re)
In-Reply-To: <patchbomb\.315532860@[^>]*> (re)
References: <patchbomb\.315532860@[^>]*> (re)
User-Agent: Mercurial-patchbomb/.* (re)
Date: Tue, 01 Jan 1980 00:01:07 +0000
From: test
To: foo
@ -2091,10 +2091,10 @@ test outgoing:
Content-Transfer-Encoding: 7bit
Subject: [PATCH 8 of 8] d
X-Mercurial-Node: 2f9fa9b998c5fe3ac2bd9a2b14bfcbeecbc7c268
Message-Id: <2f9fa9b998c5fe3ac2bd\.315532868[^>]*>
In-Reply-To: <patchbomb\.315532860@[^>]*>
References: <patchbomb\.315532860@[^>]*>
User-Agent: Mercurial-patchbomb/.*
Message-Id: <2f9fa9b998c5fe3ac2bd\.315532868[^>]*> (re)
In-Reply-To: <patchbomb\.315532860@[^>]*> (re)
References: <patchbomb\.315532860@[^>]*> (re)
User-Agent: Mercurial-patchbomb/.* (re)
Date: Tue, 01 Jan 1980 00:01:08 +0000
From: test
To: foo
@ -2129,8 +2129,8 @@ dest#branch URIs:
Content-Transfer-Encoding: 7bit
Subject: [PATCH] test
X-Mercurial-Node: 2f9fa9b998c5fe3ac2bd9a2b14bfcbeecbc7c268
Message-Id: <2f9fa9b998c5fe3ac2bd\.315532860@.*
User-Agent: Mercurial-patchbomb/.*
Message-Id: <2f9fa9b998c5fe3ac2bd\.315532860@.* (re)
User-Agent: Mercurial-patchbomb/.* (re)
Date: Tue, 01 Jan 1980 00:01:00 +0000
From: test
To: foo

View File

@ -6,11 +6,11 @@
$ echo '[paths]' >> .hg/hgrc
$ echo 'dupe = ../b' >> .hg/hgrc
$ hg in dupe
comparing with .*/test-paths\.t/b
comparing with .*/test-paths\.t/b (re)
no changes found
[1]
$ cd ..
$ hg -R a in dupe
comparing with .*/test-paths\.t/b
comparing with .*/test-paths\.t/b (re)
no changes found
[1]

View File

@ -20,7 +20,7 @@
checking manifests
crosschecking files in changesets and manifests
checking files
abort: Permission denied: .*
abort: Permission denied: .* (re)
[255]
$ chmod +r .hg/store/data/a.i
@ -37,7 +37,7 @@
$ echo barber > a
$ hg commit -m "2"
trouble committing a!
abort: Permission denied: .*
abort: Permission denied: .* (re)
[255]
$ chmod -w .

View File

@ -40,7 +40,7 @@ Expected to fail:
Expected to fail:
$ hg push
pushing to .*
pushing to .* (re)
searching for changes
adding changesets
adding manifests

View File

@ -60,7 +60,7 @@ clone and pull to break links
relink
$ hg relink --debug | fix_path
relinking .*/\.hg/store
relinking .*/\.hg/store (re)
tip has 2 files, estimated total number of files: 3
collecting: 00changelog.i 1/3 files (33.33%)
collecting: 00manifest.i 2/3 files (66.67%)

View File

@ -263,8 +263,8 @@ overwrite existing files (d2/b)
R d1/ba
R d1/d11/a1
$ diff -u d1/b d2/b
--- d1/b .*
\+\+\+ d2/b .*
--- d1/b .* (re)
\+\+\+ d2/b .* (re)
@@ -1 +1 @@
-d1/b
+d2/b

32
tests/test-run-tests.t Normal file
View File

@ -0,0 +1,32 @@
Simple commands:
$ echo foo
foo
$ echo 'bar\nbaz' | cat
bar
baz
Multi-line command:
$ foo() {
> echo bar
> }
$ foo
bar
Regular expressions:
$ echo foobarbaz
foobar.* (re)
$ echo barbazquux
.*quux.* (re)
Literal match ending in " (re)":
$ echo 'foo (re)'
foo (re)
Exit code:
$ false
[1]

View File

@ -27,7 +27,7 @@ Preparing the 'main' repo which depends on the subrepo 'sub1'
$ echo "sub1 = ../sub1" > main/.hgsub
$ hg clone sub1 main/sub1
updating to branch default
pulling subrepo sub2 from .*/sub2
pulling subrepo sub2 from .*/sub2 (re)
requesting all changes
adding changesets
adding manifests
@ -55,13 +55,13 @@ Clone main
$ hg clone main cloned
updating to branch default
pulling subrepo sub1 from .*/sub1
pulling subrepo sub1 from .*/sub1 (re)
requesting all changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 3 changes to 3 files
pulling subrepo sub1/sub2 from .*/sub2
pulling subrepo sub1/sub2 from .*/sub2 (re)
requesting all changes
adding changesets
adding manifests

View File

@ -28,5 +28,5 @@ test bad subpaths pattern
> .* = \1
> EOF
$ hg debugsub
abort: bad subrepository pattern in .*/test-subrepo-paths\.t/outer/\.hg/hgrc:2: invalid group reference
abort: bad subrepository pattern in .*/test-subrepo-paths\.t/outer/\.hg/hgrc:2: invalid group reference (re)
[255]

View File

@ -252,13 +252,13 @@ Clone and test outgoing:
$ cd ..
$ hg clone repo repo2
updating to branch default
pulling subrepo foo from .*/test-subrepo-recursion\.t/repo/foo
pulling subrepo foo from .*/test-subrepo-recursion\.t/repo/foo (re)
requesting all changes
adding changesets
adding manifests
adding file changes
added 4 changesets with 7 changes to 3 files
pulling subrepo foo/bar from .*/test-subrepo-recursion\.t/repo/foo/bar
pulling subrepo foo/bar from .*/test-subrepo-recursion\.t/repo/foo/bar (re)
requesting all changes
adding changesets
adding manifests
@ -267,10 +267,10 @@ Clone and test outgoing:
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd repo2
$ hg outgoing -S
comparing with .*/test-subrepo-recursion\.t/repo
comparing with .*/test-subrepo-recursion\.t/repo (re)
searching for changes
no changes found
comparing with .*/test-subrepo-recursion\.t/repo/foo
comparing with .*/test-subrepo-recursion\.t/repo/foo (re)
searching for changes
no changes found
[1]
@ -290,7 +290,7 @@ Make nested change:
$ hg commit -m 3-4-2
committing subrepository foo
$ hg outgoing -S
comparing with .*/test-subrepo-recursion\.t/repo
comparing with .*/test-subrepo-recursion\.t/repo (re)
searching for changes
changeset: 3:2655b8ecc4ee
tag: tip
@ -298,7 +298,7 @@ Make nested change:
date: Thu Jan 01 00:00:00 1970 +0000
summary: 3-4-2
comparing with .*/test-subrepo-recursion\.t/repo/foo
comparing with .*/test-subrepo-recursion\.t/repo/foo (re)
searching for changes
changeset: 4:e96193d6cb36
tag: tip
@ -316,7 +316,7 @@ Switch to original repo and setup default path:
Test incoming:
$ hg incoming -S
comparing with .*/test-subrepo-recursion\.t/repo2
comparing with .*/test-subrepo-recursion\.t/repo2 (re)
searching for changes
changeset: 3:2655b8ecc4ee
tag: tip
@ -324,7 +324,7 @@ Test incoming:
date: Thu Jan 01 00:00:00 1970 +0000
summary: 3-4-2
comparing with .*/test-subrepo-recursion\.t/repo2/foo
comparing with .*/test-subrepo-recursion\.t/repo2/foo (re)
searching for changes
changeset: 4:e96193d6cb36
tag: tip

View File

@ -44,7 +44,7 @@ Clone main from hgweb
adding file changes
added 1 changesets with 3 changes to 3 files
updating to branch default
pulling subrepo sub from http://localhost:[0-9]+/sub
pulling subrepo sub from http://localhost:[0-9]+/sub (re)
requesting all changes
adding changesets
adding manifests

View File

@ -86,7 +86,7 @@ change file in svn and hg, commit
Transmitting file data .
Committed revision 3.
Fetching external item into '.*/s/externals'
Fetching external item into '.*/s/externals' (re)
External at revision 1.
At revision 3.

View File

@ -236,19 +236,19 @@ clone
$ cd ..
$ hg clone t tc
updating to branch default
pulling subrepo s from .*/sub/t/s
pulling subrepo s from .*/sub/t/s (re)
requesting all changes
adding changesets
adding manifests
adding file changes
added 4 changesets with 5 changes to 3 files
pulling subrepo s/ss from .*/sub/t/s/ss
pulling subrepo s/ss from .*/sub/t/s/ss (re)
requesting all changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
pulling subrepo t from .*/sub/t/t
pulling subrepo t from .*/sub/t/t (re)
requesting all changes
adding changesets
adding manifests
@ -270,14 +270,14 @@ push
$ hg ci -m11
committing subrepository t
$ hg push
pushing .*sub/t
pushing .*sub/t/s/ss
pushing .*sub/t (re)
pushing .*sub/t/s/ss (re)
searching for changes
no changes found
pushing .*sub/t/s
pushing .*sub/t/s (re)
searching for changes
no changes found
pushing .*sub/t/t
pushing .*sub/t/t (re)
searching for changes
adding changesets
adding manifests
@ -295,27 +295,27 @@ push -f
$ hg ci -m12
committing subrepository s
$ hg push
pushing .*sub/t
pushing .*sub/t/s/ss
pushing .*sub/t (re)
pushing .*sub/t/s/ss (re)
searching for changes
no changes found
pushing .*sub/t/s
pushing .*sub/t/s (re)
searching for changes
abort: push creates new remote heads on branch 'default'!
(did you forget to merge? use push -f to force)
[255]
$ hg push -f
pushing .*sub/t
pushing .*sub/t/s/ss
pushing .*sub/t (re)
pushing .*sub/t/s/ss (re)
searching for changes
no changes found
pushing .*sub/t/s
pushing .*sub/t/s (re)
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
pushing .*sub/t/t
pushing .*sub/t/t (re)
searching for changes
no changes found
searching for changes
@ -337,7 +337,7 @@ pull
$ cd ../tc
$ hg pull
pulling .*sub/t
pulling .*sub/t (re)
searching for changes
adding changesets
adding manifests
@ -348,7 +348,7 @@ pull
should pull t
$ hg up
pulling subrepo t from .*/sub/t/t
pulling subrepo t from .*/sub/t/t (re)
searching for changes
adding changesets
adding manifests
@ -541,9 +541,9 @@ test repository cloning
$ cat mercurial2/main/nested_absolute/.hg/hgrc \
> mercurial2/main/nested_relative/.hg/hgrc
[paths]
default = .*/test-subrepo\.t/sub/mercurial/nested_absolute
default = .*/test-subrepo\.t/sub/mercurial/nested_absolute (re)
[paths]
default = .*/test-subrepo\.t/sub/mercurial/nested_relative
default = .*/test-subrepo\.t/sub/mercurial/nested_relative (re)
$ rm -rf mercurial mercurial2
issue 1977
@ -559,7 +559,7 @@ issue 1977
committing subrepository s
$ hg clone repo repo2
updating to branch default
pulling subrepo s from .*/sub/repo/s
pulling subrepo s from .*/sub/repo/s (re)
requesting all changes
adding changesets
adding manifests

View File

@ -299,7 +299,7 @@ Don't allow moving tag without -f:
Strip 1: expose an old head:
$ hg --config extensions.mq= strip 5
saved backup bundle to .*
saved backup bundle to .* (re)
$ hg tags # partly stale cache
tip 5:735c3ca72986
bar 1:78391a272241
@ -310,7 +310,7 @@ Strip 1: expose an old head:
Strip 2: destroy whole branch, no old head exposed
$ hg --config extensions.mq= strip 4
saved backup bundle to .*
saved backup bundle to .* (re)
$ hg tags # partly stale
tip 4:735c3ca72986
bar 0:bbd179dfa0a7

View File

@ -285,16 +285,16 @@ test filter
> EOF
$ chmod +x test-filter
$ hg transplant -s ../t -b tip -a --filter ./test-filter
filtering .*
filtering .* (re)
applying 17ab29e464c6
17ab29e464c6 transplanted to e9ffc54ea104
filtering .*
filtering .* (re)
applying 37a1297eb21b
37a1297eb21b transplanted to 348b36d0b6a5
filtering .*
filtering .* (re)
applying 722f4667af76
722f4667af76 transplanted to 0aa6979afb95
filtering .*
filtering .* (re)
applying a53251cdf717
a53251cdf717 transplanted to 14f8512272b5
$ hg log --template '{rev} {parents} {desc}\n'
@ -316,7 +316,7 @@ test filter with failed patch
adding test-filter
created new head
$ hg transplant 1 --filter ./test-filter
filtering .*
filtering .* (re)
applying 348b36d0b6a5
file b1 already exists
1 out of 1 hunks FAILED -- saving rejects to file b1.rej

View File

@ -42,7 +42,7 @@ Test basic functionality of url#rev syntax
$ cat clone/.hg/hgrc
[paths]
default = .*/repo#foo
default = .*/repo#foo (re)
Changing original repo:

View File

@ -216,7 +216,7 @@ Test absolute paths:
f beans/pinto beans/pinto
f beans/turtle beans/turtle
$ hg debugwalk `pwd`/..
abort: .*/\.\. not under root
abort: .*/\.\. not under root (re)
[255]
Test patterns: