##// END OF EJS Templates
blackbox: fix recording exit codes (issue3938)...
blackbox: fix recording exit codes (issue3938) Previously the blackbox wrapped runcommand, but this failed to see the error codes that were created if an exception occurred. I moved that logging to now wrap _runcatch, so it can observe and log the actual error code (such as when a user ctrl+c's during a command). Updated the tests as well. Tested the change by running all the tests with the blackbox extension enabled and verifying nothing broke (aside from things that printed what extensions were enabeld). The progress tests are affected by calls to time.time() so they needed to be updated to pass.

File last commit:

r18842:3ce3f2b0 default
r19229:41e39a02 stable
Show More
test-fileset.t
246 lines | 4.0 KiB | text/troff | Tads3Lexer
Patrick Mezard
tests: test filesets with test-fileset.t
r17362 $ fileset() {
> hg debugfileset "$@"
> }
$ hg init repo
$ cd repo
$ echo a > a1
$ echo a > a2
$ echo b > b1
Patrick Mezard
test-fileset: test file status predicates
r17364 $ echo b > b2
Patrick Mezard
tests: test filesets with test-fileset.t
r17362 $ hg ci -Am addfiles
adding a1
adding a2
adding b1
Patrick Mezard
test-fileset: test file status predicates
r17364 adding b2
Patrick Mezard
tests: test filesets with test-fileset.t
r17362
Test operators and basic patterns
$ fileset a1
a1
$ fileset 'a*'
a1
a2
$ fileset '"re:a\d"'
a1
a2
$ fileset 'a1 or a2'
a1
a2
$ fileset 'a1 | a2'
a1
a2
$ fileset 'a* and "*1"'
a1
$ fileset 'a* & "*1"'
a1
$ fileset 'not (r"a*")'
b1
Patrick Mezard
test-fileset: test file status predicates
r17364 b2
Patrick Mezard
tests: test filesets with test-fileset.t
r17362 $ fileset '! ("a*")'
b1
Patrick Mezard
test-fileset: test file status predicates
r17364 b2
Patrick Mezard
fileset: actually implement 'minusset'...
r17363 $ fileset 'a* - a1'
a2
Patrick Mezard
tests: test filesets with test-fileset.t
r17362
Patrick Mezard
test-fileset: test file status predicates
r17364 Test files status
$ rm a1
$ hg rm a2
$ echo b >> b2
$ hg cp b1 c1
$ echo c > c2
$ echo c > c3
$ cat > .hgignore <<EOF
> \.hgignore
> 2$
> EOF
$ fileset 'modified()'
b2
$ fileset 'added()'
c1
$ fileset 'removed()'
a2
$ fileset 'deleted()'
a1
$ fileset 'unknown()'
c3
$ fileset 'ignored()'
.hgignore
c2
$ fileset 'hgignore()'
a2
b2
$ fileset 'clean()'
b1
$ fileset 'copied()'
c1
Patrick Mezard
fileset: exclude deleted files from matchctx.existing()...
r17365 Test files properties
>>> file('bin', 'wb').write('\0a')
$ fileset 'binary()'
Patrick Mezard
fileset: matchctx.existing() must consider unknown files...
r17366 $ fileset 'binary() and unknown()'
bin
Patrick Mezard
fileset: matchctx.existing() must consider ignored files...
r17367 $ echo '^bin$' >> .hgignore
$ fileset 'binary() and ignored()'
bin
Patrick Mezard
fileset: matchctx.existing() must consider unknown files...
r17366 $ hg add bin
$ fileset 'binary()'
bin
Patrick Mezard
fileset: exclude deleted files from matchctx.existing()...
r17365
Patrick Mezard
fileset: do not traceback on invalid grep pattern
r17368 $ fileset 'grep("b{1}")'
b2
c1
b1
$ fileset 'grep("missingparens(")'
hg: parse error: invalid match pattern: unbalanced parenthesis
[255]
Patrick Mezard
test-fileset: test remaining predicates...
r17369 #if execbit
$ chmod +x b2
$ fileset 'exec()'
b2
#endif
#if symlink
$ ln -s b2 b2link
$ fileset 'symlink() and unknown()'
b2link
$ hg add b2link
#endif
>>> file('1k', 'wb').write(' '*1024)
>>> file('2k', 'wb').write(' '*2048)
$ hg add 1k 2k
$ fileset 'size("bar")'
hg: parse error: couldn't parse size: bar
[255]
$ fileset 'size(1k)'
1k
$ fileset '(1k or 2k) and size("< 2k")'
1k
$ fileset '(1k or 2k) and size("<=2k")'
1k
2k
$ fileset '(1k or 2k) and size("> 1k")'
2k
$ fileset '(1k or 2k) and size(">=1K")'
1k
2k
$ fileset '(1k or 2k) and size(".5KB - 1.5kB")'
1k
Test merge states
$ hg ci -m manychanges
$ hg up -C 0
* files updated, 0 files merged, * files removed, 0 files unresolved (glob)
$ echo c >> b2
$ hg ci -m diverging b2
created new head
$ fileset 'resolved()'
$ fileset 'unresolved()'
$ hg merge
merging b2
warning: conflicts during merge.
merging b2 incomplete! (edit conflicts, then use 'hg resolve --mark')
* files updated, 0 files merged, * files removed, 1 files unresolved (glob)
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
[1]
$ fileset 'resolved()'
$ fileset 'unresolved()'
b2
$ echo e > b2
$ hg resolve -m b2
$ fileset 'resolved()'
b2
$ fileset 'unresolved()'
$ hg ci -m merge
Test subrepo predicate
$ hg init sub
$ echo a > sub/suba
$ hg -R sub add sub/suba
$ hg -R sub ci -m sub
$ echo 'sub = sub' > .hgsub
$ fileset 'subrepo()'
$ hg add .hgsub
$ fileset 'subrepo()'
sub
$ fileset 'subrepo("sub")'
sub
$ fileset 'subrepo("glob:*")'
sub
Patrick Mezard
debugfileset: implement --rev, more tests
r17370 $ hg ci -m subrepo
Patrick Mezard
test-fileset: test remaining predicates...
r17369
Patrick Mezard
debugfileset: implement --rev, more tests
r17370 Test with a revision
$ hg log -G --template '{rev} {desc}\n'
@ 4 subrepo
|
o 3 merge
|\
| o 2 diverging
| |
o | 1 manychanges
|/
o 0 addfiles
$ echo unknown > unknown
$ fileset -r1 'modified()'
b2
$ fileset -r1 'added() and c1'
c1
$ fileset -r1 'removed()'
a2
$ fileset -r1 'deleted()'
$ fileset -r1 'unknown()'
$ fileset -r1 'ignored()'
$ fileset -r1 'hgignore()'
b2
bin
$ fileset -r1 'binary()'
bin
$ fileset -r1 'size(1k)'
1k
$ fileset -r3 'resolved()'
$ fileset -r3 'unresolved()'
#if execbit
$ fileset -r1 'exec()'
b2
#endif
#if symlink
$ fileset -r1 'symlink()'
b2link
#endif
$ fileset -r4 'subrepo("re:su.*")'
sub
$ fileset -r4 'subrepo("sub")'
sub
Patrick Mezard
fileset: fix generator vs list bug in fast path...
r17371 $ fileset -r4 'b2 or c1'
b2
c1
Patrick Mezard
debugfileset: implement --rev, more tests
r17370
Matt Mackall
filesets: add eol predicate
r18842 >>> open('dos', 'wb').write("dos\r\n")
>>> open('mixed', 'wb').write("dos\r\nunix\n")
>>> open('mac', 'wb').write("mac\r")
$ hg add dos mixed mac
$ fileset 'eol(dos)'
dos
mixed
$ fileset 'eol(unix)'
.hgsub
.hgsubstate
a1
b1
b2
c1
mixed
$ fileset 'eol(mac)'
mac