t4055: avoid use of sed 'a' command
authorJunio C Hamano <gitster@pobox.com>
Tue, 2 Oct 2012 18:50:16 +0000 (11:50 -0700)
committerJunio C Hamano <gitster@pobox.com>
Tue, 2 Oct 2012 19:05:38 +0000 (12:05 -0700)
The 'a', 'i' and 'c' commands take a literal text to be added
followed by backslash, but then in the source we cannot indent
the literal text which makes it ugly.

We need to also remember to double the backslash inside double
quotes.

Avoid these issues altogether by having an extra line in a template
file and generate test vectors by deleting the line or replacing the
line and not using the 'a' command.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t4055-diff-context.sh

index 3527686..97172b4 100755 (executable)
@@ -8,7 +8,7 @@ test_description='diff.context configuration'
 . ./test-lib.sh
 
 test_expect_success 'setup' '
-       cat >x <<-\EOF &&
+       cat >template <<-\EOF &&
        firstline
        b
        c
@@ -16,6 +16,7 @@ test_expect_success 'setup' '
        e
        f
        preline
+       TARGET
        postline
        i
        j
@@ -24,17 +25,15 @@ test_expect_success 'setup' '
        m
        n
        EOF
+       sed "/TARGET/d" >x <template &&
        git update-index --add x &&
        git commit -m initial &&
 
-       git cat-file blob HEAD:x |
-       sed "/preline/a\
-       ADDED" >x &&
+       sed "s/TARGET/ADDED/" >x <template &&
        git update-index --add x &&
        git commit -m next &&
 
-       git cat-file blob HEAD:x |
-       sed s/ADDED/MODIFIED/ >x
+       sed "s/TARGET/MODIFIED/" >x <template
 '
 
 test_expect_success 'the default number of context lines is 3' '