Mercurial > hg
view tests/test-walkrepo.py @ 16526:f2cc0ffb09de stable
test-subrepo-svn: fix non-determinism
The test was randomly failing with:
--- /tests/test-subrepo-svn.t
+++ /test-subrepo-svn.t.err
@@ -273,10 +273,10 @@
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd t/s
$ svn status
- ? * a (glob)
- X * externals (glob)
- ? * f1 (glob)
- ? * f2 (glob)
+ ? f1
+ ? f2
+ ? a
+ X externals
Performing status on external item at 'externals'* (glob)
author | Patrick Mezard <patrick@mezard.eu> |
---|---|
date | Fri, 27 Apr 2012 10:17:55 +0200 |
parents | e1615a24b73a |
children | 525fdb738975 |
line wrap: on
line source
import os from mercurial import hg, ui from mercurial.scmutil import walkrepos from mercurial.util import checklink from os import mkdir, chdir from os.path import join as pjoin u = ui.ui() sym = checklink('.') hg.repository(u, 'top1', create=1) mkdir('subdir') chdir('subdir') hg.repository(u, 'sub1', create=1) mkdir('subsubdir') chdir('subsubdir') hg.repository(u, 'subsub1', create=1) chdir(os.path.pardir) if sym: os.symlink(os.path.pardir, 'circle') os.symlink(pjoin('subsubdir', 'subsub1'), 'subsub1') def runtest(): reposet = frozenset(walkrepos('.', followsym=True)) if sym and (len(reposet) != 3): print "reposet = %r" % (reposet,) print "Found %d repositories when I should have found 3" % (len(reposet),) if (not sym) and (len(reposet) != 2): print "reposet = %r" % (reposet,) print "Found %d repositories when I should have found 2" % (len(reposet),) sub1set = frozenset((pjoin('.', 'sub1'), pjoin('.', 'circle', 'subdir', 'sub1'))) if len(sub1set & reposet) != 1: print "sub1set = %r" % (sub1set,) print "reposet = %r" % (reposet,) print "sub1set and reposet should have exactly one path in common." sub2set = frozenset((pjoin('.', 'subsub1'), pjoin('.', 'subsubdir', 'subsub1'))) if len(sub2set & reposet) != 1: print "sub2set = %r" % (sub2set,) print "reposet = %r" % (reposet,) print "sub1set and reposet should have exactly one path in common." sub3 = pjoin('.', 'circle', 'top1') if sym and not (sub3 in reposet): print "reposet = %r" % (reposet,) print "Symbolic links are supported and %s is not in reposet" % (sub3,) runtest() if sym: # Simulate not having symlinks. del os.path.samestat sym = False runtest()