Mercurial > hg
changeset 7458:03dd55115985
color: Add tests for colorized diff and status output.
author | Augie Fackler <durin42@gmail.com> |
---|---|
date | Tue, 02 Dec 2008 10:13:52 -0600 |
parents | a70fb83cbb9e |
children | 3fb5c142a9f0 |
files | tests/test-diff-color tests/test-diff-color.out tests/test-status-color tests/test-status-color.out |
diffstat | 4 files changed, 284 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-diff-color Tue Dec 02 10:13:52 2008 -0600 @@ -0,0 +1,36 @@ +#!/bin/sh + +echo "[extensions]" >> $HGRCPATH +echo "color=" >> $HGRCPATH + +hg init repo +cd repo +cat > a <<EOF +c +c +a +a +b +a +a +c +c +EOF +hg ci -Am adda +cat > a <<EOF +c +c +a +a +dd +a +a +c +c +EOF + +echo '% default context' +hg diff --nodates --color=always + +echo '% --unified=2' +hg diff --nodates -U 2 --color=always \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-diff-color.out Tue Dec 02 10:13:52 2008 -0600 @@ -0,0 +1,25 @@ +adding a +% default context +[0;1mdiff -r cf9f4ba66af2 a[22;0m +[0;31;1m--- a/a[39;22;0m +[0;32;1m+++ b/a[39;22;0m +[0;35m@@ -2,7 +2,7 @@[39;0m + c + a + a +[0;31m-b[39;0m +[0;32m+dd[39;0m + a + a + c +% --unified=2 +[0;1mdiff -r cf9f4ba66af2 a[22;0m +[0;31;1m--- a/a[39;22;0m +[0;32;1m+++ b/a[39;22;0m +[0;35m@@ -3,5 +3,5 @@[39;0m + a + a +[0;31m-b[39;0m +[0;32m+dd[39;0m + a + a
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-status-color Tue Dec 02 10:13:52 2008 -0600 @@ -0,0 +1,97 @@ +#!/bin/sh + +echo "[extensions]" >> $HGRCPATH +echo "color=" >> $HGRCPATH + +hg init repo1 +cd repo1 +mkdir a b a/1 b/1 b/2 +touch in_root a/in_a b/in_b a/1/in_a_1 b/1/in_b_1 b/2/in_b_2 +echo "hg status in repo root:" +hg status --color=always +echo "hg status . in repo root:" +hg status --color=always . +for dir in a b a/1 b/1 b/2; do + echo "hg status in $dir:" + hg status --color=always --cwd "$dir" + echo "hg status . in $dir:" + hg status --color=always --cwd "$dir" . + echo "hg status .. in $dir:" + hg status --color=always --cwd "$dir" .. +done +cd .. + +hg init repo2 +cd repo2 +touch modified removed deleted ignored +echo "^ignored$" > .hgignore +hg ci -A -m 'initial checkin' -d "1000000 0" +touch modified added unknown ignored +hg add added +hg remove removed +rm deleted +echo "hg status:" +hg status --color=always +echo "hg status modified added removed deleted unknown never-existed ignored:" +hg status --color=always modified added removed deleted unknown never-existed ignored +hg copy modified copied +echo "hg status -C:" +hg status --color=always -C +echo "hg status -A:" +hg status --color=always -A +echo "^ignoreddir$" > .hgignore +mkdir ignoreddir +touch ignoreddir/file +echo "hg status ignoreddir/file:" +hg status --color=always ignoreddir/file +echo "hg status -i ignoreddir/file:" +hg status --color=always -i ignoreddir/file +cd .. + +# check 'status -q' and some combinations +hg init repo3 +cd repo3 +touch modified removed deleted ignored +echo "^ignored$" > .hgignore +hg commit -A -m 'initial checkin' +touch added unknown ignored +hg add added +echo "test" >> modified +hg remove removed +rm deleted +hg copy modified copied + +# Run status with 2 different flags. +# Check if result is the same or different. +# If result is not as expected, raise error +assert() { + hg status --color=always $1 > ../a + hg status --color=always $2 > ../b + out=`diff ../a ../b` + if [ $? -ne 0 ]; then + out=1 + else + out=0 + fi + if [ $3 -eq 0 ]; then + df="same" + else + df="different" + fi + if [ $out -ne $3 ]; then + echo "Error on $1 and $2, should be $df." + fi +} + +# assert flag1 flag2 [0-same | 1-different] +assert "-q" "-mard" 0 +assert "-A" "-marduicC" 0 +assert "-qA" "-mardcC" 0 +assert "-qAui" "-A" 0 +assert "-qAu" "-marducC" 0 +assert "-qAi" "-mardicC" 0 +assert "-qu" "-u" 0 +assert "-q" "-u" 1 +assert "-m" "-a" 1 +assert "-r" "-d" 1 +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-status-color.out Tue Dec 02 10:13:52 2008 -0600 @@ -0,0 +1,126 @@ +hg status in repo root: +[0;35;1;4m? a/1/in_a_1[39;22;24;0m +[0;35;1;4m? a/in_a[39;22;24;0m +[0;35;1;4m? b/1/in_b_1[39;22;24;0m +[0;35;1;4m? b/2/in_b_2[39;22;24;0m +[0;35;1;4m? b/in_b[39;22;24;0m +[0;35;1;4m? in_root[39;22;24;0m +hg status . in repo root: +[0;35;1;4m? a/1/in_a_1[39;22;24;0m +[0;35;1;4m? a/in_a[39;22;24;0m +[0;35;1;4m? b/1/in_b_1[39;22;24;0m +[0;35;1;4m? b/2/in_b_2[39;22;24;0m +[0;35;1;4m? b/in_b[39;22;24;0m +[0;35;1;4m? in_root[39;22;24;0m +hg status in a: +[0;35;1;4m? a/1/in_a_1[39;22;24;0m +[0;35;1;4m? a/in_a[39;22;24;0m +[0;35;1;4m? b/1/in_b_1[39;22;24;0m +[0;35;1;4m? b/2/in_b_2[39;22;24;0m +[0;35;1;4m? b/in_b[39;22;24;0m +[0;35;1;4m? in_root[39;22;24;0m +hg status . in a: +[0;35;1;4m? 1/in_a_1[39;22;24;0m +[0;35;1;4m? in_a[39;22;24;0m +hg status .. in a: +[0;35;1;4m? 1/in_a_1[39;22;24;0m +[0;35;1;4m? in_a[39;22;24;0m +[0;35;1;4m? ../b/1/in_b_1[39;22;24;0m +[0;35;1;4m? ../b/2/in_b_2[39;22;24;0m +[0;35;1;4m? ../b/in_b[39;22;24;0m +[0;35;1;4m? ../in_root[39;22;24;0m +hg status in b: +[0;35;1;4m? a/1/in_a_1[39;22;24;0m +[0;35;1;4m? a/in_a[39;22;24;0m +[0;35;1;4m? b/1/in_b_1[39;22;24;0m +[0;35;1;4m? b/2/in_b_2[39;22;24;0m +[0;35;1;4m? b/in_b[39;22;24;0m +[0;35;1;4m? in_root[39;22;24;0m +hg status . in b: +[0;35;1;4m? 1/in_b_1[39;22;24;0m +[0;35;1;4m? 2/in_b_2[39;22;24;0m +[0;35;1;4m? in_b[39;22;24;0m +hg status .. in b: +[0;35;1;4m? ../a/1/in_a_1[39;22;24;0m +[0;35;1;4m? ../a/in_a[39;22;24;0m +[0;35;1;4m? 1/in_b_1[39;22;24;0m +[0;35;1;4m? 2/in_b_2[39;22;24;0m +[0;35;1;4m? in_b[39;22;24;0m +[0;35;1;4m? ../in_root[39;22;24;0m +hg status in a/1: +[0;35;1;4m? a/1/in_a_1[39;22;24;0m +[0;35;1;4m? a/in_a[39;22;24;0m +[0;35;1;4m? b/1/in_b_1[39;22;24;0m +[0;35;1;4m? b/2/in_b_2[39;22;24;0m +[0;35;1;4m? b/in_b[39;22;24;0m +[0;35;1;4m? in_root[39;22;24;0m +hg status . in a/1: +[0;35;1;4m? in_a_1[39;22;24;0m +hg status .. in a/1: +[0;35;1;4m? in_a_1[39;22;24;0m +[0;35;1;4m? ../in_a[39;22;24;0m +hg status in b/1: +[0;35;1;4m? a/1/in_a_1[39;22;24;0m +[0;35;1;4m? a/in_a[39;22;24;0m +[0;35;1;4m? b/1/in_b_1[39;22;24;0m +[0;35;1;4m? b/2/in_b_2[39;22;24;0m +[0;35;1;4m? b/in_b[39;22;24;0m +[0;35;1;4m? in_root[39;22;24;0m +hg status . in b/1: +[0;35;1;4m? in_b_1[39;22;24;0m +hg status .. in b/1: +[0;35;1;4m? in_b_1[39;22;24;0m +[0;35;1;4m? ../2/in_b_2[39;22;24;0m +[0;35;1;4m? ../in_b[39;22;24;0m +hg status in b/2: +[0;35;1;4m? a/1/in_a_1[39;22;24;0m +[0;35;1;4m? a/in_a[39;22;24;0m +[0;35;1;4m? b/1/in_b_1[39;22;24;0m +[0;35;1;4m? b/2/in_b_2[39;22;24;0m +[0;35;1;4m? b/in_b[39;22;24;0m +[0;35;1;4m? in_root[39;22;24;0m +hg status . in b/2: +[0;35;1;4m? in_b_2[39;22;24;0m +hg status .. in b/2: +[0;35;1;4m? ../1/in_b_1[39;22;24;0m +[0;35;1;4m? in_b_2[39;22;24;0m +[0;35;1;4m? ../in_b[39;22;24;0m +adding .hgignore +adding deleted +adding modified +adding removed +hg status: +[0;32;1mA added[39;22;0m +[0;31;1mR removed[39;22;0m +[0;36;1;4m! deleted[39;22;24;0m +[0;35;1;4m? unknown[39;22;24;0m +hg status modified added removed deleted unknown never-existed ignored: +never-existed: No such file or directory +[0;32;1mA added[39;22;0m +[0;31;1mR removed[39;22;0m +[0;36;1;4m! deleted[39;22;24;0m +[0;35;1;4m? unknown[39;22;24;0m +hg status -C: +[0;32;1mA added[39;22;0m +[0;32;1mA copied[39;22;0m +[0;0m modified[0;0m +[0;31;1mR removed[39;22;0m +[0;36;1;4m! deleted[39;22;24;0m +[0;35;1;4m? unknown[39;22;24;0m +hg status -A: +[0;32;1mA added[39;22;0m +[0;32;1mA copied[39;22;0m +[0;0m modified[0;0m +[0;31;1mR removed[39;22;0m +[0;36;1;4m! deleted[39;22;24;0m +[0;35;1;4m? unknown[39;22;24;0m +[0;30;1mI ignored[39;22;0m +[0;0mC .hgignore[0;0m +[0;0mC modified[0;0m +hg status ignoreddir/file: +hg status -i ignoreddir/file: +[0;30;1mI ignoreddir/file[39;22;0m +adding .hgignore +adding deleted +adding modified +adding removed