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 diff --git a/tests/test-diff-ignore-whitespace.out b/tests/test-diff-ignore-whitespace.out new file mode 100644 --- /dev/null +++ b/tests/test-diff-ignore-whitespace.out @@ -0,0 +1,140 @@ +adding foo +>>> two diffs showing three added lines <<< +diff -r 540c40a65b78 foo +--- a/foo ++++ b/foo +@@ -1,2 +1,5 @@ hello world ++ + hello world ++ + goodbye world ++ +diff -r 540c40a65b78 foo +--- a/foo ++++ b/foo +@@ -1,2 +1,5 @@ hello world ++ + hello world ++ + goodbye world ++ +>>> no diffs <<< +>>> four diffs showing added space first on the first line <<< +diff -r 540c40a65b78 foo +--- a/foo ++++ b/foo +@@ -1,2 +1,2 @@ hello world +-hello world ++ hello world + goodbye world +diff -r 540c40a65b78 foo +--- a/foo ++++ b/foo +@@ -1,2 +1,2 @@ hello world +-hello world ++ hello world + goodbye world +diff -r 540c40a65b78 foo +--- a/foo ++++ b/foo +@@ -1,2 +1,2 @@ hello world +-hello world ++ hello world + goodbye world +diff -r 540c40a65b78 foo +--- a/foo ++++ b/foo +@@ -1,2 +1,2 @@ hello world +-hello world ++ hello world + goodbye world +>>> two diffs showing space appended to the first line <<< +diff -r 540c40a65b78 foo +--- a/foo ++++ b/foo +@@ -1,2 +1,2 @@ hello world +-hello world ++hello world + goodbye world +diff -r 540c40a65b78 foo +--- a/foo ++++ b/foo +@@ -1,2 +1,2 @@ hello world +-hello world ++hello world + goodbye world +>>> no diffs <<< +>>> four diffs showing space inserted into "goodbye" <<< +diff -r 540c40a65b78 foo +--- a/foo ++++ b/foo +@@ -1,2 +1,2 @@ hello world + hello world +-goodbye world ++good bye world +diff -r 540c40a65b78 foo +--- a/foo ++++ b/foo +@@ -1,2 +1,2 @@ hello world + hello world +-goodbye world ++good bye world +diff -r 540c40a65b78 foo +--- a/foo ++++ b/foo +@@ -1,2 +1,2 @@ hello world + hello world +-goodbye world ++good bye world +diff -r 540c40a65b78 foo +--- a/foo ++++ b/foo +@@ -1,2 +1,2 @@ hello world + hello world +-goodbye world ++good bye world +>>> two diffs showing changed whitespace amount in the last line <<< +diff -r 540c40a65b78 foo +--- a/foo ++++ b/foo +@@ -1,2 +1,2 @@ hello world + hello world +-goodbye world ++goodbye world +diff -r 540c40a65b78 foo +--- a/foo ++++ b/foo +@@ -1,2 +1,2 @@ hello world + hello world +-goodbye world ++goodbye world +>>> no diffs <<< +>>> four diffs showing added blank line w/horizontal space <<< +diff -r 540c40a65b78 foo +--- a/foo ++++ b/foo +@@ -1,2 +1,3 @@ hello world + hello world ++ + goodbye world +diff -r 540c40a65b78 foo +--- a/foo ++++ b/foo +@@ -1,2 +1,3 @@ hello world + hello world ++ + goodbye world +diff -r 540c40a65b78 foo +--- a/foo ++++ b/foo +@@ -1,2 +1,3 @@ hello world + hello world ++ + goodbye world +diff -r 540c40a65b78 foo +--- a/foo ++++ b/foo +@@ -1,2 +1,3 @@ hello world + hello world ++ + goodbye world