From: Junio C Hamano Date: Wed, 09 Dec 2009 05:44:55 GMT Subject: Re: [PATCH 2/2] t7508-status: test all modes with color Message-ID: <7vmy1swvjc.fsf@alter.siamese.dyndns.org> In-Reply-To: <7vzl5sww3w.fsf@alter.siamese.dyndns.org> Junio C Hamano writes: > Michael J Gruber writes: > >> Jakub Narebski venit, vidit, dixit 08.12.2009 12:10: >>> Michael J Gruber wrote: >>> >>>> +decrypt_color () { >>>> + sed \ >>>> + -e 's/.\[1m//g' \ >>>> + -e 's/.\[31m//g' \ >>>> + -e 's/.\[32m//g' \ >>>> + -e 's/.\[34m//g' \ >>>> + -e 's/.\[m//g' >>>> +} >>> >>> Shouldn't this be better in test-lib.sh, or some common lib >>> (lib-color.sh or color-lib.sh; we are unfortunately a bit inconsistent >>> in naming here)? >> >> Well, so far it's used in two places (and somewhat differently). I would >> say test-libification starts at 3 :) > ... > Please don't. I'll squash this in to fix it up. I don't know where 36->BROWN mistake came from when color.h has a series of #define that can be used to make the decoding script mechanically, though ;-) t/t4034-diff-words.sh | 23 ++++--------- t/t7508-status.sh | 83 ++++++++++++++++++++++--------------------------- t/test-lib.sh | 11 ++++++ 3 files changed, 55 insertions(+), 62 deletions(-) diff --git a/t/t4034-diff-words.sh b/t/t4034-diff-words.sh index 4508eff..ea895b0 100755 --- a/t/t4034-diff-words.sh +++ b/t/t4034-diff-words.sh @@ -11,18 +11,9 @@ test_expect_success setup ' ' -decrypt_color () { - sed \ - -e 's/.\[1m//g' \ - -e 's/.\[31m//g' \ - -e 's/.\[32m//g' \ - -e 's/.\[36m//g' \ - -e 's/.\[m//g' -} - word_diff () { test_must_fail git diff --no-index "$@" pre post > output && - decrypt_color < output > output.decrypted && + test_decode_color output.decrypted && test_cmp expect output.decrypted } @@ -47,7 +38,7 @@ cat > expect <<\EOF index 330b04f..5ed8eff 100644 --- a/pre +++ b/post -@@ -1,3 +1,7 @@ +@@ -1,3 +1,7 @@ h(4)h(4),hh[44] a = b + c @@ -68,7 +59,7 @@ cat > expect <<\EOF index 330b04f..5ed8eff 100644 --- a/pre +++ b/post -@@ -1,3 +1,7 @@ +@@ -1,3 +1,7 @@ h(4),hh[44] a = b + c @@ -104,7 +95,7 @@ cat > expect <<\EOF index 330b04f..5ed8eff 100644 --- a/pre +++ b/post -@@ -1,3 +1,7 @@ +@@ -1,3 +1,7 @@ h(4),hh[44] a = b + c @@ -146,7 +137,7 @@ cat > expect <<\EOF index 330b04f..5ed8eff 100644 --- a/pre +++ b/post -@@ -1,3 +1,7 @@ +@@ -1,3 +1,7 @@ h(4),hh[44] a = b + c @@ -168,7 +159,7 @@ cat > expect <<\EOF index c29453b..be22f37 100644 --- a/pre +++ b/post -@@ -1 +1 @@ +@@ -1 +1 @@ aaa (aaa) aaa EOF @@ -187,7 +178,7 @@ cat > expect <<\EOF index 289cb9d..2d06f37 100644 --- a/pre +++ b/post -@@ -1 +1 @@ +@@ -1 +1 @@ (: EOF diff --git a/t/t7508-status.sh b/t/t7508-status.sh index 50554a0..cf67fe3 100755 --- a/t/t7508-status.sh +++ b/t/t7508-status.sh @@ -8,45 +8,36 @@ test_description='git status' . ./test-lib.sh test_expect_success 'setup' ' - : > tracked && - : > modified && + : >tracked && + : >modified && mkdir dir1 && - : > dir1/tracked && - : > dir1/modified && + : >dir1/tracked && + : >dir1/modified && mkdir dir2 && - : > dir1/tracked && - : > dir1/modified && + : >dir1/tracked && + : >dir1/modified && git add . && git status >output && test_tick && git commit -m initial && - : > untracked && - : > dir1/untracked && - : > dir2/untracked && - echo 1 > dir1/modified && - echo 2 > dir2/modified && - echo 3 > dir2/added && + : >untracked && + : >dir1/untracked && + : >dir2/untracked && + echo 1 >dir1/modified && + echo 2 >dir2/modified && + echo 3 >dir2/added && git add dir2/added ' -decrypt_color () { - sed \ - -e 's/.\[1m//g' \ - -e 's/.\[31m//g' \ - -e 's/.\[32m//g' \ - -e 's/.\[34m//g' \ - -e 's/.\[m//g' -} - test_expect_success 'status (1)' ' grep "use \"git rm --cached \.\.\.\" to unstage" output ' -cat > expect << \EOF +cat >expect <<\EOF # On branch master # Changes to be committed: # (use "git reset HEAD ..." to unstage) @@ -72,12 +63,12 @@ EOF test_expect_success 'status (2)' ' - git status > output && + git status >output && test_cmp expect output ' -cat > expect << \EOF +cat >expect <<\EOF M dir1/modified A dir2/added ?? dir1/untracked @@ -90,7 +81,7 @@ EOF test_expect_success 'status -s (2)' ' - git status -s > output && + git status -s >output && test_cmp expect output ' @@ -112,8 +103,8 @@ cat >expect < dir3/untracked1 && - : > dir3/untracked2 && + : >dir3/untracked1 && + : >dir3/untracked2 && git status -uno >output && test_cmp expect output ' @@ -258,7 +249,7 @@ test_expect_success 'status -s (status.showUntrackedFiles all)' ' test_cmp expect output ' -cat > expect << \EOF +cat >expect <<\EOF # On branch master # Changes to be committed: # (use "git reset HEAD ..." to unstage) @@ -284,12 +275,12 @@ EOF test_expect_success 'status with relative paths' ' - (cd dir1 && git status) > output && + (cd dir1 && git status) >output && test_cmp expect output ' -cat > expect << \EOF +cat >expect <<\EOF M modified A ../dir2/added ?? untracked @@ -301,12 +292,12 @@ A ../dir2/added EOF test_expect_success 'status -s with relative paths' ' - (cd dir1 && git status -s) > output && + (cd dir1 && git status -s) >output && test_cmp expect output ' -cat > expect << \EOF +cat >expect <<\EOF M dir1/modified A dir2/added ?? dir1/untracked @@ -319,7 +310,7 @@ EOF test_expect_success 'status --porcelain ignores relative paths setting' ' - (cd dir1 && git status --porcelain) > output && + (cd dir1 && git status --porcelain) >output && test_cmp expect output ' @@ -330,7 +321,7 @@ test_expect_success 'setup unique colors' ' ' -cat > expect << \EOF +cat >expect <<\EOF # On branch master # Changes to be committed: # (use "git reset HEAD ..." to unstage) @@ -357,7 +348,7 @@ EOF test_expect_success 'status with color.ui' ' git config color.ui always && - git status | decrypt_color > output && + git status | test_decode_color >output && test_cmp expect output ' @@ -366,12 +357,12 @@ test_expect_success 'status with color.status' ' git config --unset color.ui && git config color.status always && - git status | decrypt_color > output && + git status | test_decode_color >output && test_cmp expect output ' -cat > expect << \EOF +cat >expect <<\EOF M dir1/modified A dir2/added ?? dir1/untracked @@ -386,7 +377,7 @@ test_expect_success 'status -s with color.ui' ' git config --unset color.status && git config color.ui always && - git status -s | decrypt_color > output && + git status -s | test_decode_color >output && test_cmp expect output ' @@ -395,12 +386,12 @@ test_expect_success 'status -s with color.status' ' git config --unset color.ui && git config color.status always && - git status -s | decrypt_color > output && + git status -s | test_decode_color >output && test_cmp expect output ' -cat > expect << \EOF +cat >expect <<\EOF M dir1/modified A dir2/added ?? dir1/untracked @@ -415,7 +406,7 @@ test_expect_success 'status --porcelain ignores color.ui' ' git config --unset color.status && git config color.ui always && - git status --porcelain | decrypt_color > output && + git status --porcelain | test_decode_color >output && test_cmp expect output ' @@ -424,7 +415,7 @@ test_expect_success 'status --porcelain ignores color.status' ' git config --unset color.ui && git config color.status always && - git status --porcelain | decrypt_color > output && + git status --porcelain | test_decode_color >output && test_cmp expect output ' @@ -433,7 +424,7 @@ test_expect_success 'status --porcelain ignores color.status' ' git config --unset color.status git config --unset color.ui -cat > expect << \EOF +cat >expect <<\EOF # On branch master # Changes to be committed: # (use "git reset HEAD ..." to unstage) @@ -461,12 +452,12 @@ EOF test_expect_success 'status without relative paths' ' git config status.relativePaths false - (cd dir1 && git status) > output && + (cd dir1 && git status) >output && test_cmp expect output ' -cat > expect << \EOF +cat >expect <<\EOF M dir1/modified A dir2/added ?? dir1/untracked @@ -479,7 +470,7 @@ EOF test_expect_success 'status -s without relative paths' ' - (cd dir1 && git status -s) > output && + (cd dir1 && git status -s) >output && test_cmp expect output ' diff --git a/t/test-lib.sh b/t/test-lib.sh index 5fdc5d9..d63ad2d 100644 --- a/t/test-lib.sh +++ b/t/test-lib.sh @@ -208,6 +208,17 @@ test_set_editor () { export VISUAL } +test_decode_color () { + sed -e 's/.\[1m//g' \ + -e 's/.\[31m//g' \ + -e 's/.\[32m//g' \ + -e 's/.\[33m//g' \ + -e 's/.\[34m//g' \ + -e 's/.\[35m//g' \ + -e 's/.\[36m//g' \ + -e 's/.\[m//g' +} + test_tick () { if test -z "${test_tick+set}" then