##// END OF EJS Templates
convert: test for shell injection in git calls (SEC)...
convert: test for shell injection in git calls (SEC) CVE-2016-3069 (5/5) Before recent refactoring we were not escaping calls to git at all which made such injections possible. Let's have a test for that to avoid this problem in the future. Reported by Blake Burkhart.

File last commit:

r25217:70e82279 default
r28663:ae279d4a 3.7.3 stable
Show More
test-walk.t
370 lines | 12.6 KiB | text/troff | Tads3Lexer
Martin Geisler
tests: remove redundant mkdir...
r13956 $ hg init t
Nicolas Dumazet
tests: unify test-walk
r11799 $ cd t
$ mkdir -p beans
$ for b in kidney navy turtle borlotti black pinto; do
> echo $b > beans/$b
Mads Kiilerich
check-code: check that '>' is used for continued lines...
r19873 > done
Nicolas Dumazet
tests: unify test-walk
r11799 $ mkdir -p mammals/Procyonidae
$ for m in cacomistle coatimundi raccoon; do
> echo $m > mammals/Procyonidae/$m
Mads Kiilerich
check-code: check that '>' is used for continued lines...
r19873 > done
Nicolas Dumazet
tests: unify test-walk
r11799 $ echo skunk > mammals/skunk
$ echo fennel > fennel
$ echo fenugreek > fenugreek
$ echo fiddlehead > fiddlehead
$ hg addremove
adding beans/black
adding beans/borlotti
adding beans/kidney
adding beans/navy
adding beans/pinto
adding beans/turtle
adding fennel
adding fenugreek
adding fiddlehead
adding mammals/Procyonidae/cacomistle
adding mammals/Procyonidae/coatimundi
adding mammals/Procyonidae/raccoon
adding mammals/skunk
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m "commit #0"
Nicolas Dumazet
tests: unify test-walk
r11799
$ hg debugwalk
f beans/black beans/black
f beans/borlotti beans/borlotti
f beans/kidney beans/kidney
f beans/navy beans/navy
f beans/pinto beans/pinto
f beans/turtle beans/turtle
f fennel fennel
f fenugreek fenugreek
f fiddlehead fiddlehead
f mammals/Procyonidae/cacomistle mammals/Procyonidae/cacomistle
f mammals/Procyonidae/coatimundi mammals/Procyonidae/coatimundi
f mammals/Procyonidae/raccoon mammals/Procyonidae/raccoon
f mammals/skunk mammals/skunk
$ hg debugwalk -I.
f beans/black beans/black
f beans/borlotti beans/borlotti
f beans/kidney beans/kidney
f beans/navy beans/navy
f beans/pinto beans/pinto
f beans/turtle beans/turtle
f fennel fennel
f fenugreek fenugreek
f fiddlehead fiddlehead
f mammals/Procyonidae/cacomistle mammals/Procyonidae/cacomistle
f mammals/Procyonidae/coatimundi mammals/Procyonidae/coatimundi
f mammals/Procyonidae/raccoon mammals/Procyonidae/raccoon
f mammals/skunk mammals/skunk
$ cd mammals
$ hg debugwalk
f beans/black ../beans/black
f beans/borlotti ../beans/borlotti
f beans/kidney ../beans/kidney
f beans/navy ../beans/navy
f beans/pinto ../beans/pinto
f beans/turtle ../beans/turtle
f fennel ../fennel
f fenugreek ../fenugreek
f fiddlehead ../fiddlehead
f mammals/Procyonidae/cacomistle Procyonidae/cacomistle
f mammals/Procyonidae/coatimundi Procyonidae/coatimundi
f mammals/Procyonidae/raccoon Procyonidae/raccoon
f mammals/skunk skunk
$ hg debugwalk -X ../beans
f fennel ../fennel
f fenugreek ../fenugreek
f fiddlehead ../fiddlehead
f mammals/Procyonidae/cacomistle Procyonidae/cacomistle
f mammals/Procyonidae/coatimundi Procyonidae/coatimundi
f mammals/Procyonidae/raccoon Procyonidae/raccoon
f mammals/skunk skunk
$ hg debugwalk -I '*k'
f mammals/skunk skunk
$ hg debugwalk -I 'glob:*k'
f mammals/skunk skunk
$ hg debugwalk -I 'relglob:*k'
f beans/black ../beans/black
f fenugreek ../fenugreek
f mammals/skunk skunk
$ hg debugwalk -I 'relglob:*k' .
f mammals/skunk skunk
$ hg debugwalk -I 're:.*k$'
f beans/black ../beans/black
f fenugreek ../fenugreek
f mammals/skunk skunk
$ hg debugwalk -I 'relre:.*k$'
f beans/black ../beans/black
f fenugreek ../fenugreek
f mammals/skunk skunk
$ hg debugwalk -I 'path:beans'
f beans/black ../beans/black
f beans/borlotti ../beans/borlotti
f beans/kidney ../beans/kidney
f beans/navy ../beans/navy
f beans/pinto ../beans/pinto
f beans/turtle ../beans/turtle
Mads Kiilerich
tests: run test-walk.t on windows...
r16985 $ hg debugwalk -I 'relpath:detour/../../beans'
Nicolas Dumazet
tests: unify test-walk
r11799 f beans/black ../beans/black
f beans/borlotti ../beans/borlotti
f beans/kidney ../beans/kidney
f beans/navy ../beans/navy
f beans/pinto ../beans/pinto
f beans/turtle ../beans/turtle
$ hg debugwalk .
f mammals/Procyonidae/cacomistle Procyonidae/cacomistle
f mammals/Procyonidae/coatimundi Procyonidae/coatimundi
f mammals/Procyonidae/raccoon Procyonidae/raccoon
f mammals/skunk skunk
$ hg debugwalk -I.
f mammals/Procyonidae/cacomistle Procyonidae/cacomistle
f mammals/Procyonidae/coatimundi Procyonidae/coatimundi
f mammals/Procyonidae/raccoon Procyonidae/raccoon
f mammals/skunk skunk
$ hg debugwalk Procyonidae
f mammals/Procyonidae/cacomistle Procyonidae/cacomistle
f mammals/Procyonidae/coatimundi Procyonidae/coatimundi
f mammals/Procyonidae/raccoon Procyonidae/raccoon
$ cd Procyonidae
$ hg debugwalk .
f mammals/Procyonidae/cacomistle cacomistle
f mammals/Procyonidae/coatimundi coatimundi
f mammals/Procyonidae/raccoon raccoon
$ hg debugwalk ..
f mammals/Procyonidae/cacomistle cacomistle
f mammals/Procyonidae/coatimundi coatimundi
f mammals/Procyonidae/raccoon raccoon
f mammals/skunk ../skunk
$ cd ..
$ hg debugwalk ../beans
f beans/black ../beans/black
f beans/borlotti ../beans/borlotti
f beans/kidney ../beans/kidney
f beans/navy ../beans/navy
f beans/pinto ../beans/pinto
f beans/turtle ../beans/turtle
$ hg debugwalk .
f mammals/Procyonidae/cacomistle Procyonidae/cacomistle
f mammals/Procyonidae/coatimundi Procyonidae/coatimundi
f mammals/Procyonidae/raccoon Procyonidae/raccoon
f mammals/skunk skunk
$ hg debugwalk .hg
Mads Kiilerich
tests: run test-walk.t on windows...
r16985 abort: path 'mammals/.hg' is inside nested repo 'mammals' (glob)
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-walk
r11799 $ hg debugwalk ../.hg
Simon Heimberg
tests: remove glob from output lines containing no glob character
r18682 abort: path contains illegal component: .hg
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-walk
r11799 $ cd ..
$ hg debugwalk -Ibeans
f beans/black beans/black
f beans/borlotti beans/borlotti
f beans/kidney beans/kidney
f beans/navy beans/navy
f beans/pinto beans/pinto
f beans/turtle beans/turtle
$ hg debugwalk -I '{*,{b,m}*/*}k'
f beans/black beans/black
f fenugreek fenugreek
f mammals/skunk mammals/skunk
Martin von Zweigbergk
test-walk: add more tests for -I/-X...
r25217 $ hg debugwalk -Ibeans mammals
$ hg debugwalk -Inon-existent
$ hg debugwalk -Inon-existent -Ibeans/black
f beans/black beans/black
$ hg debugwalk -Ibeans beans/black
f beans/black beans/black exact
$ hg debugwalk -Ibeans/black beans
f beans/black beans/black
$ hg debugwalk -Xbeans/black beans
f beans/borlotti beans/borlotti
f beans/kidney beans/kidney
f beans/navy beans/navy
f beans/pinto beans/pinto
f beans/turtle beans/turtle
$ hg debugwalk -Xbeans/black -Ibeans
f beans/borlotti beans/borlotti
f beans/kidney beans/kidney
f beans/navy beans/navy
f beans/pinto beans/pinto
f beans/turtle beans/turtle
$ hg debugwalk -Xbeans/black beans/black
f beans/black beans/black exact
$ hg debugwalk -Xbeans/black -Ibeans/black
$ hg debugwalk -Xbeans beans/black
f beans/black beans/black exact
$ hg debugwalk -Xbeans -Ibeans/black
Nicolas Dumazet
tests: unify test-walk
r11799 $ hg debugwalk 'glob:mammals/../beans/b*'
f beans/black beans/black
f beans/borlotti beans/borlotti
$ hg debugwalk '-X*/Procyonidae' mammals
f mammals/skunk mammals/skunk
$ hg debugwalk path:mammals
f mammals/Procyonidae/cacomistle mammals/Procyonidae/cacomistle
f mammals/Procyonidae/coatimundi mammals/Procyonidae/coatimundi
f mammals/Procyonidae/raccoon mammals/Procyonidae/raccoon
f mammals/skunk mammals/skunk
$ hg debugwalk ..
Mads Kiilerich
tests: fix for windows - slashes and no serve
r18506 abort: .. not under root '$TESTTMP/t' (glob)
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-walk
r11799 $ hg debugwalk beans/../..
Mads Kiilerich
tests: fix for windows - slashes and no serve
r18506 abort: beans/../.. not under root '$TESTTMP/t' (glob)
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-walk
r11799 $ hg debugwalk .hg
Simon Heimberg
tests: remove glob from output lines containing no glob character
r18682 abort: path contains illegal component: .hg
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-walk
r11799 $ hg debugwalk beans/../.hg
Simon Heimberg
tests: remove glob from output lines containing no glob character
r18682 abort: path contains illegal component: .hg
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-walk
r11799 $ hg debugwalk beans/../.hg/data
Mads Kiilerich
tests: run test-walk.t on windows...
r16985 abort: path contains illegal component: .hg/data (glob)
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-walk
r11799 $ hg debugwalk beans/.hg
Mads Kiilerich
tests: run test-walk.t on windows...
r16985 abort: path 'beans/.hg' is inside nested repo 'beans' (glob)
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-walk
r11799
Matt Mackall
test-walk: enable absolute path tests
r11903 Test absolute paths:
$ hg debugwalk `pwd`/beans
f beans/black beans/black
f beans/borlotti beans/borlotti
f beans/kidney beans/kidney
f beans/navy beans/navy
f beans/pinto beans/pinto
f beans/turtle beans/turtle
$ hg debugwalk `pwd`/..
Mads Kiilerich
tests: fix for windows - slashes and no serve
r18506 abort: $TESTTMP/t/.. not under root '$TESTTMP/t' (glob)
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Matt Mackall
test-walk: enable absolute path tests
r11903
Test patterns:
Nicolas Dumazet
tests: unify test-walk
r11799
$ hg debugwalk glob:\*
f fennel fennel
f fenugreek fenugreek
f fiddlehead fiddlehead
Mads Kiilerich
tests: move tests in test-walk.t using ':' in filenames to conditional section...
r16983 #if eol-in-paths
$ echo glob:glob > glob:glob
$ hg addremove
adding glob:glob
warning: filename contains ':', which is reserved on Windows: 'glob:glob'
$ hg debugwalk glob:\*
f fennel fennel
f fenugreek fenugreek
f fiddlehead fiddlehead
Nicolas Dumazet
tests: unify test-walk
r11799 f glob:glob glob:glob
Mads Kiilerich
tests: better testing of 'glob:glob' in test-walk.t
r16984 $ hg debugwalk glob:glob
glob: No such file or directory
$ hg debugwalk glob:glob:glob
f glob:glob glob:glob exact
$ hg debugwalk path:glob:glob
f glob:glob glob:glob exact
Mads Kiilerich
tests: move tests in test-walk.t using ':' in filenames to conditional section...
r16983 $ rm glob:glob
$ hg addremove
removing glob:glob
#endif
Matt Mackall
test-walk: enable absolute path tests
r11903
Nicolas Dumazet
tests: unify test-walk
r11799 $ hg debugwalk 'glob:**e'
f beans/turtle beans/turtle
f mammals/Procyonidae/cacomistle mammals/Procyonidae/cacomistle
Matt Mackall
test-walk: enable absolute path tests
r11903
Nicolas Dumazet
tests: unify test-walk
r11799 $ hg debugwalk 're:.*[kb]$'
f beans/black beans/black
f fenugreek fenugreek
f mammals/skunk mammals/skunk
Matt Mackall
test-walk: enable absolute path tests
r11903
Nicolas Dumazet
tests: unify test-walk
r11799 $ hg debugwalk path:beans/black
f beans/black beans/black exact
$ hg debugwalk path:beans//black
f beans/black beans/black exact
Matt Mackall
test-walk: enable absolute path tests
r11903
Nicolas Dumazet
tests: unify test-walk
r11799 $ hg debugwalk relglob:Procyonidae
$ hg debugwalk 'relglob:Procyonidae/**'
f mammals/Procyonidae/cacomistle mammals/Procyonidae/cacomistle
f mammals/Procyonidae/coatimundi mammals/Procyonidae/coatimundi
f mammals/Procyonidae/raccoon mammals/Procyonidae/raccoon
$ hg debugwalk 'relglob:Procyonidae/**' fennel
f fennel fennel exact
f mammals/Procyonidae/cacomistle mammals/Procyonidae/cacomistle
f mammals/Procyonidae/coatimundi mammals/Procyonidae/coatimundi
f mammals/Procyonidae/raccoon mammals/Procyonidae/raccoon
$ hg debugwalk beans 'glob:beans/*'
f beans/black beans/black
f beans/borlotti beans/borlotti
f beans/kidney beans/kidney
f beans/navy beans/navy
f beans/pinto beans/pinto
f beans/turtle beans/turtle
$ hg debugwalk 'glob:mamm**'
f mammals/Procyonidae/cacomistle mammals/Procyonidae/cacomistle
f mammals/Procyonidae/coatimundi mammals/Procyonidae/coatimundi
f mammals/Procyonidae/raccoon mammals/Procyonidae/raccoon
f mammals/skunk mammals/skunk
$ hg debugwalk 'glob:mamm**' fennel
f fennel fennel exact
f mammals/Procyonidae/cacomistle mammals/Procyonidae/cacomistle
f mammals/Procyonidae/coatimundi mammals/Procyonidae/coatimundi
f mammals/Procyonidae/raccoon mammals/Procyonidae/raccoon
f mammals/skunk mammals/skunk
$ hg debugwalk 'glob:j*'
$ hg debugwalk NOEXIST
Mads Kiilerich
tests: hide 'No such file or directory' messages...
r15521 NOEXIST: * (glob)
Nicolas Dumazet
tests: unify test-walk
r11799
Mads Kiilerich
tests: add some missing #if's / hghave requirements...
r16972 #if fifo
Nicolas Dumazet
tests: unify test-walk
r11799 $ mkfifo fifo
$ hg debugwalk fifo
fifo: unsupported file type (type is fifo)
Mads Kiilerich
tests: add some missing #if's / hghave requirements...
r16972 #endif
Nicolas Dumazet
tests: unify test-walk
r11799
$ rm fenugreek
$ hg debugwalk fenugreek
f fenugreek fenugreek exact
$ hg rm fenugreek
$ hg debugwalk fenugreek
f fenugreek fenugreek exact
$ touch new
$ hg debugwalk new
f new new exact
$ mkdir ignored
$ touch ignored/file
$ echo '^ignored$' > .hgignore
$ hg debugwalk ignored
$ hg debugwalk ignored/file
f ignored/file ignored/file exact
Patrick Mezard
match: make 'listfile:' split on LF and CRLF...
r14248 Test listfile and listfile0
Augie Fackler
tests: use $PYTHON instead of hardcoding python...
r22947 $ $PYTHON -c "file('listfile0', 'wb').write('fenugreek\0new\0')"
Mads Kiilerich
tests: run test-walk.t on windows...
r16985 $ hg debugwalk -I 'listfile0:listfile0'
Patrick Mezard
match: make 'listfile:' split on LF and CRLF...
r14248 f fenugreek fenugreek
f new new
Augie Fackler
tests: use $PYTHON instead of hardcoding python...
r22947 $ $PYTHON -c "file('listfile', 'wb').write('fenugreek\nnew\r\nmammals/skunk\n')"
Mads Kiilerich
tests: run test-walk.t on windows...
r16985 $ hg debugwalk -I 'listfile:listfile'
Patrick Mezard
match: make 'listfile:' split on LF and CRLF...
r14248 f fenugreek fenugreek
f mammals/skunk mammals/skunk
f new new
Nicolas Dumazet
tests: unify test-walk
r11799 $ cd ..
$ hg debugwalk -R t t/mammals/skunk
f mammals/skunk t/mammals/skunk exact
$ mkdir t2
$ cd t2
$ hg debugwalk -R ../t ../t/mammals/skunk
f mammals/skunk ../t/mammals/skunk exact
$ hg debugwalk --cwd ../t mammals/skunk
f mammals/skunk mammals/skunk exact
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
$ cd ..
Yuya Nishihara
match: fix NameError 'pat' on overflow of regex pattern length...
r21191
Test split patterns on overflow
$ cd t
$ echo fennel > overflow.list
Augie Fackler
tests: use $PYTHON instead of hardcoding python...
r22947 $ $PYTHON -c "for i in xrange(20000 / 100): print 'x' * 100" >> overflow.list
Yuya Nishihara
match: fix NameError 'pat' on overflow of regex pattern length...
r21191 $ echo fenugreek >> overflow.list
$ hg debugwalk 'listfile:overflow.list' 2>&1 | grep -v '^xxx'
f fennel fennel exact
f fenugreek fenugreek exact
$ cd ..