Junio C Hamano | 13ab446 | 2005-05-13 22:52:42 -0700 | [diff] [blame] | 1 | #!/bin/sh |
| 2 | # |
| 3 | # Copyright (c) 2005 Junio C Hamano |
| 4 | # |
| 5 | |
| 6 | test_description='Test built-in diff output engine. |
| 7 | |
| 8 | ' |
Ævar Arnfjörð Bjarmason | 16d4bd4 | 2021-10-31 00:24:19 +0200 | [diff] [blame] | 9 | |
| 10 | TEST_PASSES_SANITIZE_LEAK=true |
Junio C Hamano | 13ab446 | 2005-05-13 22:52:42 -0700 | [diff] [blame] | 11 | . ./test-lib.sh |
Ævar Arnfjörð Bjarmason | ebd73f5 | 2021-02-12 14:29:40 +0100 | [diff] [blame] | 12 | . "$TEST_DIRECTORY"/lib-diff.sh |
Junio C Hamano | 13ab446 | 2005-05-13 22:52:42 -0700 | [diff] [blame] | 13 | |
| 14 | echo >path0 'Line 1 |
| 15 | Line 2 |
| 16 | line 3' |
| 17 | cat path0 >path1 |
| 18 | chmod +x path1 |
| 19 | |
Matthieu Moy | 8ade9b1 | 2013-07-16 10:05:35 +0200 | [diff] [blame] | 20 | test_expect_success 'update-index --add two files with and without +x.' ' |
| 21 | git update-index --add path0 path1 |
| 22 | ' |
Junio C Hamano | 13ab446 | 2005-05-13 22:52:42 -0700 | [diff] [blame] | 23 | |
| 24 | mv path0 path0- |
| 25 | sed -e 's/line/Line/' <path0- >path0 |
| 26 | chmod +x path0 |
| 27 | rm -f path1 |
Matthieu Moy | 8ade9b1 | 2013-07-16 10:05:35 +0200 | [diff] [blame] | 28 | test_expect_success 'git diff-files -p after editing work tree.' ' |
| 29 | git diff-files -p >actual |
| 30 | ' |
Alex Riesen | e58b97a | 2006-01-05 12:55:03 +0100 | [diff] [blame] | 31 | |
| 32 | # that's as far as it comes |
Tom Prince | e0d10e1 | 2007-01-28 16:16:53 -0800 | [diff] [blame] | 33 | if [ "$(git config --get core.filemode)" = false ] |
Alex Riesen | e58b97a | 2006-01-05 12:55:03 +0100 | [diff] [blame] | 34 | then |
| 35 | say 'filemode disabled on the filesystem' |
| 36 | test_done |
| 37 | fi |
| 38 | |
Junio C Hamano | 13ab446 | 2005-05-13 22:52:42 -0700 | [diff] [blame] | 39 | cat >expected <<\EOF |
Junio C Hamano | b58f23b | 2005-05-18 09:10:47 -0700 | [diff] [blame] | 40 | diff --git a/path0 b/path0 |
| 41 | old mode 100644 |
| 42 | new mode 100755 |
Junio C Hamano | 13ab446 | 2005-05-13 22:52:42 -0700 | [diff] [blame] | 43 | --- a/path0 |
| 44 | +++ b/path0 |
| 45 | @@ -1,3 +1,3 @@ |
| 46 | Line 1 |
| 47 | Line 2 |
| 48 | -line 3 |
| 49 | +Line 3 |
Junio C Hamano | b58f23b | 2005-05-18 09:10:47 -0700 | [diff] [blame] | 50 | diff --git a/path1 b/path1 |
| 51 | deleted file mode 100755 |
Junio C Hamano | 13ab446 | 2005-05-13 22:52:42 -0700 | [diff] [blame] | 52 | --- a/path1 |
| 53 | +++ /dev/null |
| 54 | @@ -1,3 +0,0 @@ |
| 55 | -Line 1 |
| 56 | -Line 2 |
| 57 | -line 3 |
| 58 | EOF |
| 59 | |
Matthieu Moy | 8ade9b1 | 2013-07-16 10:05:35 +0200 | [diff] [blame] | 60 | test_expect_success 'validate git diff-files -p output.' ' |
| 61 | compare_diff_patch expected actual |
| 62 | ' |
Junio C Hamano | 13ab446 | 2005-05-13 22:52:42 -0700 | [diff] [blame] | 63 | |
Matthieu Moy | d09cd15 | 2013-07-16 10:05:36 +0200 | [diff] [blame] | 64 | test_expect_success 'git diff-files -s after editing work tree' ' |
| 65 | git diff-files -s >actual 2>err && |
| 66 | test_must_be_empty actual && |
| 67 | test_must_be_empty err |
| 68 | ' |
| 69 | |
| 70 | test_expect_success 'git diff-files --no-patch as synonym for -s' ' |
| 71 | git diff-files --no-patch >actual 2>err && |
| 72 | test_must_be_empty actual && |
| 73 | test_must_be_empty err |
| 74 | ' |
| 75 | |
Matthieu Moy | 71482d3 | 2013-07-16 10:05:37 +0200 | [diff] [blame] | 76 | test_expect_success 'git diff-files --no-patch --patch shows the patch' ' |
| 77 | git diff-files --no-patch --patch >actual && |
| 78 | compare_diff_patch expected actual |
| 79 | ' |
| 80 | |
| 81 | test_expect_success 'git diff-files --no-patch --patch-with-raw shows the patch and raw data' ' |
| 82 | git diff-files --no-patch --patch-with-raw >actual && |
brian m. carlson | 8cc5ff8 | 2019-08-26 01:43:42 +0000 | [diff] [blame] | 83 | grep -q "^:100644 100755 .* $ZERO_OID M path0\$" actual && |
Matthieu Moy | 71482d3 | 2013-07-16 10:05:37 +0200 | [diff] [blame] | 84 | tail -n +4 actual >actual-patch && |
| 85 | compare_diff_patch expected actual-patch |
| 86 | ' |
| 87 | |
| 88 | test_expect_success 'git diff-files --patch --no-patch does not show the patch' ' |
| 89 | git diff-files --patch --no-patch >actual 2>err && |
| 90 | test_must_be_empty actual && |
| 91 | test_must_be_empty err |
| 92 | ' |
| 93 | |
Junio C Hamano | 13ab446 | 2005-05-13 22:52:42 -0700 | [diff] [blame] | 94 | test_done |