diff --git a/tests/test-diff-ignore-whitespace b/tests/test-diff-ignore-whitespace new file mode 100755 --- /dev/null +++ b/tests/test-diff-ignore-whitespace @@ -0,0 +1,84 @@ +#!/bin/sh + +# GNU diff is the reference for all of these results. + +hgdiff() { + hg diff "$@" | sed "s/\(\(---\|+++\) [a-zA-Z0-9_/.-]*\).*/\1/" +} + +test_added_blank_lines() { + printf '\nhello world\n\ngoodbye world\n\n' >foo + + echo '>>> two diffs showing three added lines <<<' + hgdiff + hgdiff -b + + echo '>>> no diffs <<<' + hgdiff -B + hgdiff -Bb +} + +test_added_horizontal_space_first_on_a_line() { + printf '\t hello world\ngoodbye world\n' >foo + + echo '>>> four diffs showing added space first on the first line <<<' + hgdiff + hgdiff -b + hgdiff -B + hgdiff -Bb +} + +test_added_horizontal_space_last_on_a_line() { + printf 'hello world\t \ngoodbye world\n' >foo + + echo '>>> two diffs showing space appended to the first line <<<' + hgdiff + hgdiff -B + + echo '>>> no diffs <<<' + hgdiff -b + hgdiff -Bb +} + +test_added_horizontal_space_in_the_middle_of_a_word() { + printf 'hello world\ngood bye world\n' >foo + + echo '>>> four diffs showing space inserted into "goodbye" <<<' + hgdiff + hgdiff -B + hgdiff -b + hgdiff -Bb +} + +test_increased_horizontal_whitespace_amount() { + printf 'hello world\ngoodbye\t\t \tworld\n' >foo + + echo '>>> two diffs showing changed whitespace amount in the last line <<<' + hgdiff + hgdiff -B + + echo '>>> no diffs <<<' + hgdiff -b + hgdiff -Bb +} + +test_added_blank_line_with_horizontal_whitespace() { + printf 'hello world\n \t\ngoodbye world\n' >foo + + echo '>>> four diffs showing added blank line w/horizontal space <<<' + hgdiff + hgdiff -B + hgdiff -b + hgdiff -Bb +} + +hg init +printf 'hello world\ngoodbye world\n' >foo +hg ci -Amfoo -ufoo -d '0 0' + +test_added_blank_lines +test_added_horizontal_space_first_on_a_line +test_added_horizontal_space_last_on_a_line +test_added_horizontal_space_in_the_middle_of_a_word +test_increased_horizontal_whitespace_amount +test_added_blank_line_with_horizontal_whitespace