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