diff options
Diffstat (limited to 't/t4051-diff-function-context.sh')
| -rwxr-xr-x | t/t4051-diff-function-context.sh | 64 |
1 files changed, 58 insertions, 6 deletions
diff --git a/t/t4051-diff-function-context.sh b/t/t4051-diff-function-context.sh index 3df24f2ef2..4838a1df8b 100755 --- a/t/t4051-diff-function-context.sh +++ b/t/t4051-diff-function-context.sh @@ -64,11 +64,31 @@ test_expect_success 'setup' ' grep -v "Begin of second part" <file.c >file.c.new && mv file.c.new file.c && - commit_and_tag long_common_tail file.c + commit_and_tag long_common_tail file.c && + + git checkout initial && + cat "$dir/hello.c" "$dir/dummy.c" >file.c && + commit_and_tag hello_dummy file.c && + + # overlap function context of 1st change and -u context of 2nd change + grep -v "delete me from hello" <"$dir/hello.c" >file.c && + sed "2a\\ + extra line" <"$dir/dummy.c" >>file.c && + commit_and_tag changed_hello_dummy file.c && + + git checkout initial && + grep -v "delete me from hello" <file.c >file.c.new && + mv file.c.new file.c && + cat "$dir/appended1.c" >>file.c && + commit_and_tag changed_hello_appended file.c ' check_diff changed_hello 'changed function' +test_expect_success ' context includes comment' ' + grep "^ .*Hello comment" changed_hello.diff +' + test_expect_success ' context includes begin' ' grep "^ .*Begin of hello" changed_hello.diff ' @@ -85,7 +105,7 @@ test_expect_success ' context does not include preceding empty lines' ' test "$(first_context_line <changed_hello.diff)" != " " ' -test_expect_failure ' context does not include trailing empty lines' ' +test_expect_success ' context does not include trailing empty lines' ' test "$(last_context_line <changed_hello.diff)" != " " ' @@ -103,7 +123,7 @@ test_expect_success ' context does not include other functions' ' test $(grep -c "^[ +-].*Begin" changed_includes.diff) -le 1 ' -test_expect_failure ' context does not include trailing empty lines' ' +test_expect_success ' context does not include trailing empty lines' ' test "$(last_context_line <changed_includes.diff)" != " " ' @@ -117,7 +137,7 @@ test_expect_success ' context includes end' ' grep "^[+].*End of first part" appended.diff ' -test_expect_failure ' context does not include other functions' ' +test_expect_success ' context does not include other functions' ' test $(grep -c "^[ +-].*Begin" appended.diff) -le 1 ' @@ -131,7 +151,7 @@ test_expect_success ' context includes end' ' grep "^[+].*End of second part" extended.diff ' -test_expect_failure ' context does not include other functions' ' +test_expect_success ' context does not include other functions' ' test $(grep -c "^[ +-].*Begin" extended.diff) -le 2 ' @@ -145,7 +165,7 @@ test_expect_success ' context includes begin' ' grep "^ .*Begin of first part" long_common_tail.diff ' -test_expect_failure ' context includes end' ' +test_expect_success ' context includes end' ' grep "^ .*End of second part" long_common_tail.diff ' @@ -157,4 +177,36 @@ test_expect_success ' context does not include preceding empty lines' ' test "$(first_context_line <long_common_tail.diff)" != " " ' +check_diff changed_hello_appended 'changed function plus appended function' + +test_expect_success ' context includes begin' ' + grep "^ .*Begin of hello" changed_hello_appended.diff && + grep "^[+].*Begin of first part" changed_hello_appended.diff +' + +test_expect_success ' context includes end' ' + grep "^ .*End of hello" changed_hello_appended.diff && + grep "^[+].*End of first part" changed_hello_appended.diff +' + +test_expect_success ' context does not include other functions' ' + test $(grep -c "^[ +-].*Begin" changed_hello_appended.diff) -le 2 +' + +check_diff changed_hello_dummy 'changed two consecutive functions' + +test_expect_success ' context includes begin' ' + grep "^ .*Begin of hello" changed_hello_dummy.diff && + grep "^ .*Begin of dummy" changed_hello_dummy.diff +' + +test_expect_success ' context includes end' ' + grep "^ .*End of hello" changed_hello_dummy.diff && + grep "^ .*End of dummy" changed_hello_dummy.diff +' + +test_expect_success ' overlapping hunks are merged' ' + test $(grep -c "^@@" changed_hello_dummy.diff) -eq 1 +' + test_done |
