3 test_description='Test diff-highlight'
6 TEST_OUTPUT_DIRECTORY=$(pwd)
7 TEST_DIRECTORY="$CURR_DIR"/../../../t
8 DIFF_HIGHLIGHT="$CURR_DIR"/../diff-highlight
10 CW="$(printf "\033[7m")" # white
11 CR="$(printf "\033[27m")" # reset
13 . "$TEST_DIRECTORY"/test-lib.sh
15 if ! test_have_prereq PERL
17 skip_all='skipping diff-highlight tests; perl not available'
21 # dh_test is a test helper function which takes 3 file names as parameters. The
22 # first 2 files are used to generate diff and commit output, which is then
23 # piped through diff-highlight. The 3rd file should contain the expected output
24 # of diff-highlight (minus the diff/commit header, ie. everything after and
25 # including the first @@ line).
34 git commit -m "Add a file" &&
37 git diff file >diff.raw &&
38 git commit -a -m "Update a file" &&
42 "$DIFF_HIGHLIGHT" <diff.raw | test_strip_patch_header >diff.act &&
43 "$DIFF_HIGHLIGHT" <commit.raw | test_strip_patch_header >commit.act &&
44 test_cmp patch.exp diff.act &&
45 test_cmp patch.exp commit.act
48 test_strip_patch_header () {
52 test_expect_success 'diff-highlight highlights the beginning of a line' '
74 test_expect_success 'diff-highlight highlights the end of a line' '
96 test_expect_success 'diff-highlight highlights the middle of a line' '
118 test_expect_success 'diff-highlight does not highlight whole line' '
140 test_expect_failure 'diff-highlight highlights mismatched hunk size' '
161 # TODO add multi-byte test