@@ -8,46 +8,39 @@ test_description='git apply trying to add an ending line.
'
. ./test-lib.sh
-# setup
-
-cat >test-patch <<\EOF
-diff --git a/file b/file
---- a/file
-+++ b/file
-@@ -1,2 +1,3 @@
- a
- b
-+c
-EOF
-
-echo 'a' >file
-echo 'b' >>file
-echo 'c' >>file
-
test_expect_success setup '
+ cat >test-patch <<-\EOF &&
+ diff --git a/file b/file
+ --- a/file
+ +++ b/file
+ @@ -1,2 +1,3 @@
+ a
+ b
+ +c
+ EOF
+
+ test_write_lines a b c >file &&
git update-index --add file
'
-# test
test_expect_success 'apply at the end' '
test_must_fail git apply --index test-patch
'
-cat >test-patch <<\EOF
-diff a/file b/file
---- a/file
-+++ b/file
-@@ -1,2 +1,3 @@
-+a
- b
- c
-EOF
-
-echo >file 'a
-b
-c'
-git update-index file
test_expect_success 'apply at the beginning' '
+ cat >test-patch <<-\EOF &&
+ diff a/file b/file
+ --- a/file
+ +++ b/file
+ @@ -1,2 +1,3 @@
+ +a
+ b
+ c
+ EOF
+
+ test_write_lines a b c >file &&
+ git update-index file &&
test_must_fail git apply --index test-patch
'
+
test_done
As t/README says, put all code inside test_expect_success and other assertions. This old test scripts have setup code outside of tests. This is problematic since any failures of the setup code will go unnoticed. Therefore, move setup code into the tests themselves so that failures are properly flagged. t/README also says, use "<<-" instead of "<<" to strip leading TABs used for indentation. Fix it. We should chain test assertions(t/README). Therefore,Chain this test assertions with &&. What's more,take advantage of modern style. Use test_write_lines instead. Signed-off-by: Shuqi Liang <cheskaqiqi@gmail.com> --- t/t4113-apply-ending.sh | 55 ++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 31 deletions(-)