summaryrefslogtreecommitdiff
path: root/tests/test-walk.t
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test-walk.t')
-rw-r--r--tests/test-walk.t333
1 files changed, 333 insertions, 0 deletions
diff --git a/tests/test-walk.t b/tests/test-walk.t
new file mode 100644
index 0000000..52de65e
--- /dev/null
+++ b/tests/test-walk.t
@@ -0,0 +1,333 @@
+ $ hg init t
+ $ cd t
+ $ mkdir -p beans
+ $ for b in kidney navy turtle borlotti black pinto; do
+ > echo $b > beans/$b
+ $ done
+ $ mkdir -p mammals/Procyonidae
+ $ for m in cacomistle coatimundi raccoon; do
+ > echo $m > mammals/Procyonidae/$m
+ $ done
+ $ 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
+ $ hg commit -m "commit #0"
+
+ $ 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
+ $ hg debugwalk -I 'relpath:detour/../../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 -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
+ abort: path 'mammals/.hg' is inside nested repo 'mammals' (glob)
+ [255]
+ $ hg debugwalk ../.hg
+ abort: path contains illegal component: .hg (glob)
+ [255]
+ $ 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
+ $ 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 ..
+ abort: .. not under root
+ [255]
+ $ hg debugwalk beans/../..
+ abort: beans/../.. not under root
+ [255]
+ $ hg debugwalk .hg
+ abort: path contains illegal component: .hg (glob)
+ [255]
+ $ hg debugwalk beans/../.hg
+ abort: path contains illegal component: .hg (glob)
+ [255]
+ $ hg debugwalk beans/../.hg/data
+ abort: path contains illegal component: .hg/data (glob)
+ [255]
+ $ hg debugwalk beans/.hg
+ abort: path 'beans/.hg' is inside nested repo 'beans' (glob)
+ [255]
+
+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`/..
+ abort: $TESTTMP/t/.. not under root
+ [255]
+
+Test patterns:
+
+ $ hg debugwalk glob:\*
+ f fennel fennel
+ f fenugreek fenugreek
+ f fiddlehead fiddlehead
+#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
+ f glob:glob glob:glob
+ $ 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
+ $ rm glob:glob
+ $ hg addremove
+ removing glob:glob
+#endif
+
+ $ hg debugwalk 'glob:**e'
+ f beans/turtle beans/turtle
+ f mammals/Procyonidae/cacomistle mammals/Procyonidae/cacomistle
+
+ $ hg debugwalk 're:.*[kb]$'
+ f beans/black beans/black
+ f fenugreek fenugreek
+ f mammals/skunk mammals/skunk
+
+ $ hg debugwalk path:beans/black
+ f beans/black beans/black exact
+ $ hg debugwalk path:beans//black
+ f beans/black beans/black exact
+
+ $ 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
+ NOEXIST: * (glob)
+
+#if fifo
+ $ mkfifo fifo
+ $ hg debugwalk fifo
+ fifo: unsupported file type (type is fifo)
+#endif
+
+ $ 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
+
+Test listfile and listfile0
+
+ $ python -c "file('listfile0', 'wb').write('fenugreek\0new\0')"
+ $ hg debugwalk -I 'listfile0:listfile0'
+ f fenugreek fenugreek
+ f new new
+ $ python -c "file('listfile', 'wb').write('fenugreek\nnew\r\nmammals/skunk\n')"
+ $ hg debugwalk -I 'listfile:listfile'
+ f fenugreek fenugreek
+ f mammals/skunk mammals/skunk
+ f new new
+
+ $ 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
+
+ $ cd ..