# HG changeset patch # User Nicolas Dumazet # Date 1281891809 -32400 # Node ID 3c9a5ed9b1e2cf9f1d7d0d69eeeba2704837498d # Parent a80577bfea29381f34626c74fa7ad64b08ea67b2 tests: unify test-grep diff -r a80577bfea29 -r 3c9a5ed9b1e2 tests/test-grep --- a/tests/test-grep Sun Aug 15 23:38:00 2010 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,100 +0,0 @@ -#!/bin/sh - -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' -echo % pattern error -hg grep '**test**' -echo % simple -hg grep port port -echo % simple with color -hg --config extensions.color= grep --config color.mode=ansi \ - --color=always port port -echo % all -hg grep --traceback --all -nu port port -echo % other -hg grep import port - -hg cp port port2 -hg commit -m 4 -u spam -d '5 0' -echo % follow -hg grep --traceback -f 'import$' port2 -echo deport >> port2 -hg commit -m 5 -u eggs -d '6 0' -hg grep -f --all -nu port port2 - -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 -hg grep --all orange - -echo % match in last "line" without newline -python -c 'fp = open("noeol", "wb"); fp.write("no infinite loop"); fp.close();' -hg ci -Amnoeol -echo % last character omitted in output to avoid infinite loop -hg grep loop - -# Got a traceback when using grep on a single -# revision with renamed files. -cd .. -echo % issue 685 -hg init issue685 -cd issue685 -echo octarine > color -hg ci -Amcolor -hg rename color colour -hg ci -Am rename -hg grep octarine -# Used to crash here -hg grep -r 1 octarine - -# Issue337: test that grep follows parent-child relationships instead -# of just using revision numbers. -cd .. -echo % issue 337 -hg init issue337 -cd issue337 - -echo white > color -hg commit -A -m "0 white" - -echo red > color -hg commit -A -m "1 red" - -hg update 0 -echo black > color -hg commit -A -m "2 black" - -hg update --clean 1 -echo blue > color -hg commit -A -m "3 blue" - -hg grep --all red diff -r a80577bfea29 -r 3c9a5ed9b1e2 tests/test-grep.out --- a/tests/test-grep.out Sun Aug 15 23:38:00 2010 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,54 +0,0 @@ -% pattern error -grep: invalid match pattern: nothing to repeat -% simple -port:4:export -port:4:vaportight -port:4:import/export -% simple with color -port:4:export -port:4:vaportight -port:4:import/export -% all -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 -port:4:import/export -% follow -port:0:import -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 -color:3:orange -color:3:+:orange -color:2:-:orange -color:1:+:orange -% match in last line without newline -adding noeol -% last character omitted in output to avoid infinite loop -noeol:4:no infinite loo -% issue 685 -adding color -colour:1:octarine -color:0:octarine -colour:1:octarine -% issue 337 -adding color -1 files updated, 0 files merged, 0 files removed, 0 files unresolved -created new head -1 files updated, 0 files merged, 0 files removed, 0 files unresolved -color:3:-:red -color:1:+:red diff -r a80577bfea29 -r 3c9a5ed9b1e2 tests/test-grep.t --- /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