Mark Levedahl [off-list ref] writes:
Subtests 6, 7, and 9 rely test that merge-recursive correctly
ignores whitespace when so directed. These tests create and test for
lines ending in \r\n, but as this is a valid line separator on Windows,
convert such lines in the output to avoid confusion by line-oriented
grep.
Signed-off-by: Mark Levedahl <redacted>
---
Sorry, forgot to copy Jonathan...
Sounds sensible. Thanks.
quoted hunk
t/t3032-merge-recursive-options.sh | 22 +++++++++++++---------
t/test-lib-functions.sh | 4 ++++
2 files changed, 17 insertions(+), 9 deletions(-)
diff --git a/t/t3032-merge-recursive-options.sh b/t/t3032-merge-recursive-options.sh
index 2b17311..41ba184 100755
--- a/t/t3032-merge-recursive-options.sh
+++ b/t/t3032-merge-recursive-options.sh
@@ -125,13 +125,14 @@ test_expect_success '-Xignore-space-change makes cherry-pick succeed' '
'
test_expect_success '--ignore-space-change: our w/s-only change wins' '
- q_to_cr <<-\EOF >expected &&
+ cat <<-\EOF >expected &&
justice and holiness and is the nurse of his age and theQ
EOF
git read-tree --reset -u HEAD &&
git merge-recursive --ignore-space-change HEAD^ -- HEAD remote &&
- grep "justice and holiness" text.txt >actual &&
+ cr_to_q <text.txt > text.txt+ &&
+ grep "justice and holiness" text.txt+ >actual &&
test_cmp expected actual
'
@@ -150,14 +151,15 @@ test_expect_success '--ignore-space-change: does not ignore new spaces' '
cat <<-\EOF >expected1 &&
Well said, Cephalus, I replied; but as con cerning justice, what is
EOF
- q_to_cr <<-\EOF >expected2 &&
+ cat <<-\EOF >expected2 &&
un intentionally; and when he departs to the world below he is not inQ
EOF
git read-tree --reset -u HEAD &&
git merge-recursive --ignore-space-change HEAD^ -- HEAD remote &&
- grep "Well said" text.txt >actual1 &&
- grep "when he departs" text.txt >actual2 &&
+ cr_to_q <text.txt >text.txt+
+ grep "Well said" text.txt+ >actual1 &&
+ grep "when he departs" text.txt+ >actual2 &&
test_cmp expected1 actual1 &&
test_cmp expected2 actual2
'
@@ -174,18 +176,19 @@ test_expect_success '--ignore-all-space drops their new spaces' '
'
test_expect_success '--ignore-all-space keeps our new spaces' '
- q_to_cr <<-\EOF >expected &&
+ cat <<-\EOF >expected &&
un intentionally; and when he departs to the world below he is not inQ
EOF
git read-tree --reset -u HEAD &&
git merge-recursive --ignore-all-space HEAD^ -- HEAD remote &&
- grep "when he departs" text.txt >actual &&
+ cr_to_q <text.txt >text.txt+ &&
+ grep "when he departs" text.txt+ >actual &&
test_cmp expected actual
'
test_expect_success '--ignore-space-at-eol' '
- q_to_cr <<-\EOF >expected &&
+ cat <<-\EOF >expected &&
<<<<<<< HEAD
is not in his right mind; ought I to give them back to him? No oneQ
=======
@@ -196,7 +199,8 @@ test_expect_success '--ignore-space-at-eol' '
git read-tree --reset -u HEAD &&
test_must_fail git merge-recursive --ignore-space-at-eol \
HEAD^ -- HEAD remote &&
- conflict_hunks text.txt >actual &&
+ cr_to_q <text.txt >text.txt+ &&
+ conflict_hunks text.txt+ >actual &&
test_cmp expected actual
'
diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh
index a7e9aac..aa8e38f 100644
--- a/t/test-lib-functions.sh
+++ b/t/test-lib-functions.sh
@@ -87,6 +87,10 @@ q_to_cr () {
tr Q '\015'
}
+cr_to_q () {
+ tr '\015' Q
+}
+
q_to_tab () {
tr Q '\011'
}