tests/test-grep.t
changeset 11902 3c9a5ed9b1e2
parent 11141 df5d1d571d27
child 12316 4134686b83e1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-grep.t	Mon Aug 16 02:03:29 2010 +0900
@@ -0,0 +1,164 @@
+  $ mkdir t
+  $ cd t
+  $ hg init
+  $ echo import > port
+  $ hg add port
+  $ hg commit -m 0 -u spam -d '0 0'
+  $ echo export >> port
+  $ hg commit -m 1 -u eggs -d '1 0'
+  $ echo export > port
+  $ echo vaportight >> port
+  $ echo 'import/export' >> port
+  $ hg commit -m 2 -u spam -d '2 0'
+  $ echo 'import/export' >> port
+  $ hg commit -m 3 -u eggs -d '3 0'
+  $ head -n 3 port > port1
+  $ mv port1 port
+  $ hg commit -m 4 -u spam -d '4 0'
+
+pattern error
+
+  $ hg grep '**test**'
+  grep: invalid match pattern: nothing to repeat
+
+simple
+
+  $ hg grep port port
+  port:4:export
+  port:4:vaportight
+  port:4:import/export
+
+simple with color
+
+  $ hg --config extensions.color= grep --config color.mode=ansi \
+  >     --color=always port port
+  port:4:export
+  port:4:vaportight
+  port:4:import/export
+
+all
+
+  $ hg grep --traceback --all -nu port port
+  port:4:4:-:spam:import/export
+  port:3:4:+:eggs:import/export
+  port:2:1:-:spam:import
+  port:2:2:-:spam:export
+  port:2:1:+:spam:export
+  port:2:2:+:spam:vaportight
+  port:2:3:+:spam:import/export
+  port:1:2:+:eggs:export
+  port:0:1:+:spam:import
+
+other
+
+  $ hg grep import port
+  port:4:import/export
+
+  $ hg cp port port2
+  $ hg commit -m 4 -u spam -d '5 0'
+
+follow
+
+  $ hg grep --traceback -f 'import$' port2
+  port:0:import
+  $ echo deport >> port2
+  $ hg commit -m 5 -u eggs -d '6 0'
+  $ hg grep -f --all -nu port port2
+  port2:6:4:+:eggs:deport
+  port:4:4:-:spam:import/export
+  port:3:4:+:eggs:import/export
+  port:2:1:-:spam:import
+  port:2:2:-:spam:export
+  port:2:1:+:spam:export
+  port:2:2:+:spam:vaportight
+  port:2:3:+:spam:import/export
+  port:1:2:+:eggs:export
+  port:0:1:+:spam:import
+
+  $ cd ..
+  $ hg init t2
+  $ cd t2
+  $ hg grep foobar foo
+  $ hg grep foobar
+  $ echo blue >> color
+  $ echo black >> color
+  $ hg add color
+  $ hg ci -m 0
+  $ echo orange >> color
+  $ hg ci -m 1
+  $ echo black > color
+  $ hg ci -m 2
+  $ echo orange >> color
+  $ echo blue >> color
+  $ hg ci -m 3
+  $ hg grep orange
+  color:3:orange
+  $ hg grep --all orange
+  color:3:+:orange
+  color:2:-:orange
+  color:1:+:orange
+
+
+match in last "line" without newline
+
+  $ python -c 'fp = open("noeol", "wb"); fp.write("no infinite loop"); fp.close();'
+  $ hg ci -Amnoeol
+  adding noeol
+
+last character omitted in output to avoid infinite loop
+
+  $ hg grep loop
+  noeol:4:no infinite loo
+
+
+  $ cd ..
+
+Got a traceback when using grep on a single
+revision with renamed files.
+issue 685
+
+  $ hg init issue685
+  $ cd issue685
+  $ echo octarine > color
+  $ hg ci -Amcolor
+  adding color
+  $ hg rename color colour
+  $ hg ci -Am rename
+  $ hg grep octarine
+  colour:1:octarine
+  color:0:octarine
+
+Used to crash here
+
+  $ hg grep -r 1 octarine
+  colour:1:octarine
+  $ cd ..
+
+
+Issue337: test that grep follows parent-child relationships instead
+of just using revision numbers.
+
+  $ hg init issue337
+  $ cd issue337
+
+  $ echo white > color
+  $ hg commit -A -m "0 white"
+  adding color
+
+  $ echo red > color
+  $ hg commit -A -m "1 red"
+
+  $ hg update 0
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ echo black > color
+  $ hg commit -A -m "2 black"
+  created new head
+
+  $ hg update --clean 1
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ echo blue > color
+  $ hg commit -A -m "3 blue"
+
+  $ hg grep --all red
+  color:3:-:red
+  color:1:+:red