# HG changeset patch # User Augie Fackler # Date 1228234432 21600 # Node ID 03dd5511598552be027bbb9a34d21241cb8c42bf # Parent a70fb83cbb9e2d099a39ee6ab830fe2b0531032c color: Add tests for colorized diff and status output. diff -r a70fb83cbb9e -r 03dd55115985 tests/test-diff-color --- /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 < a <> $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 + diff -r a70fb83cbb9e -r 03dd55115985 tests/test-status-color.out --- /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: +? a/1/in_a_1 +? a/in_a +? b/1/in_b_1 +? b/2/in_b_2 +? b/in_b +? in_root +hg status . in repo root: +? a/1/in_a_1 +? a/in_a +? b/1/in_b_1 +? b/2/in_b_2 +? b/in_b +? in_root +hg status in a: +? a/1/in_a_1 +? a/in_a +? b/1/in_b_1 +? b/2/in_b_2 +? b/in_b +? in_root +hg status . in a: +? 1/in_a_1 +? in_a +hg status .. in a: +? 1/in_a_1 +? in_a +? ../b/1/in_b_1 +? ../b/2/in_b_2 +? ../b/in_b +? ../in_root +hg status in b: +? a/1/in_a_1 +? a/in_a +? b/1/in_b_1 +? b/2/in_b_2 +? b/in_b +? in_root +hg status . in b: +? 1/in_b_1 +? 2/in_b_2 +? in_b +hg status .. in b: +? ../a/1/in_a_1 +? ../a/in_a +? 1/in_b_1 +? 2/in_b_2 +? in_b +? ../in_root +hg status in a/1: +? a/1/in_a_1 +? a/in_a +? b/1/in_b_1 +? b/2/in_b_2 +? b/in_b +? in_root +hg status . in a/1: +? in_a_1 +hg status .. in a/1: +? in_a_1 +? ../in_a +hg status in b/1: +? a/1/in_a_1 +? a/in_a +? b/1/in_b_1 +? b/2/in_b_2 +? b/in_b +? in_root +hg status . in b/1: +? in_b_1 +hg status .. in b/1: +? in_b_1 +? ../2/in_b_2 +? ../in_b +hg status in b/2: +? a/1/in_a_1 +? a/in_a +? b/1/in_b_1 +? b/2/in_b_2 +? b/in_b +? in_root +hg status . in b/2: +? in_b_2 +hg status .. in b/2: +? ../1/in_b_1 +? in_b_2 +? ../in_b +adding .hgignore +adding deleted +adding modified +adding removed +hg status: +A added +R removed +! deleted +? unknown +hg status modified added removed deleted unknown never-existed ignored: +never-existed: No such file or directory +A added +R removed +! deleted +? unknown +hg status -C: +A added +A copied + modified +R removed +! deleted +? unknown +hg status -A: +A added +A copied + modified +R removed +! deleted +? unknown +I ignored +C .hgignore +C modified +hg status ignoreddir/file: +hg status -i ignoreddir/file: +I ignoreddir/file +adding .hgignore +adding deleted +adding modified +adding removed