diff options
author | Elijah Newren <newren@gmail.com> | 2020-08-11 01:29:09 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2020-08-11 01:59:00 +0300 |
commit | 919df3195553af05c884d51588d12134d8dfab2a (patch) | |
tree | 5be83bccf1bb0554cebcf9687c637a175fb62d93 /t/t3032-merge-recursive-space-options.sh | |
parent | 4f0a8be78499454eac3985b6e7e144b8376ab0a5 (diff) |
Collect merge-related tests to t64xx
The tests for the merge machinery are spread over several places.
Collect them into t64xx for simplicity. Some notes:
t60[234]*.sh:
Merge tests started in t602*, overgrew bisect and remote tracking
tests in t6030, t6040, and t6041, and nearly overtook replace tests
in t6050. This made picking out relevant tests that I wanted to run
in a tighter loop slightly more annoying for years.
t303*.sh:
These started out as tests for the 'merge-recursive' toplevel command,
but did not restrict to that and had lots of overlap with the
underlying merge machinery.
t7405, t7613:
submodule-specific merge logic started out in submodule.c but was
moved to merge-recursive.c in commit 18cfc08866 ("submodule.c: move
submodule merging to merge-recursive.c", 2018-05-15). Since these
tests are about the logic found in the merge machinery, moving these
tests to be with the merge tests makes sense.
t7607, t7609:
Having tests spread all over the place makes it more likely that
additional tests related to a certain piece of logic grow in all those
other places. Much like t303*.sh, these two tests were about the
underlying merge machinery rather than outer levels.
Tests that were NOT moved:
t76[01]*.sh:
Other than the four tests mentioned above, the remaining tests in
t76[01]*.sh are related to non-recursive merge strategies, parameter
parsing, and other stuff associated with the highlevel builtin/merge.c
rather than the recursive merge machinery.
t3[45]*.sh:
The rebase testcases in t34*.sh also test the merge logic pretty
heavily; sometimes changes I make only trigger failures in the rebase
tests. The rebase tests are already nicely coupled together, though,
and I didn't want to mess that up. Similar comments apply for the
cherry-pick tests in t35*.sh.
Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t3032-merge-recursive-space-options.sh')
-rwxr-xr-x | t/t3032-merge-recursive-space-options.sh | 207 |
1 files changed, 0 insertions, 207 deletions
diff --git a/t/t3032-merge-recursive-space-options.sh b/t/t3032-merge-recursive-space-options.sh deleted file mode 100755 index b56180ee4a..0000000000 --- a/t/t3032-merge-recursive-space-options.sh +++ /dev/null @@ -1,207 +0,0 @@ -#!/bin/sh - -test_description='merge-recursive space options - -* [master] Clarify - ! [remote] Remove cruft --- - + [remote] Remove cruft -* [master] Clarify -*+ [remote^] Initial revision -* ok 1: setup -' - -. ./test-lib.sh - -test_have_prereq SED_STRIPS_CR && SED_OPTIONS=-b -if test_have_prereq GREP_STRIPS_CR -then - GREP_OPTIONS=-U - export GREP_OPTIONS -fi - -test_expect_success 'setup' ' - conflict_hunks () { - sed $SED_OPTIONS -n -e " - /^<<<</ b conflict - b - : conflict - p - /^>>>>/ b - n - b conflict - " "$@" - } && - - cat <<-\EOF >text.txt && - Hope, he says, cherishes the soul of him who lives in - justice and holiness and is the nurse of his age and the - companion of his journey;--hope which is mightiest to sway - the restless soul of man. - - How admirable are his words! And the great blessing of riches, I do - not say to every man, but to a good man, is, that he has had no - occasion to deceive or to defraud others, either intentionally or - unintentionally; and when he departs to the world below he is not in - any apprehension about offerings due to the gods or debts which he owes - to men. Now to this peace of mind the possession of wealth greatly - contributes; and therefore I say, that, setting one thing against - another, of the many advantages which wealth has to give, to a man of - sense this is in my opinion the greatest. - - Well said, Cephalus, I replied; but as concerning justice, what is - it?--to speak the truth and to pay your debts--no more than this? And - even to this are there not exceptions? Suppose that a friend when in - his right mind has deposited arms with me and he asks for them when he - is not in his right mind, ought I to give them back to him? No one - would say that I ought or that I should be right in doing so, any more - than they would say that I ought always to speak the truth to one who - is in his condition. - - You are quite right, he replied. - - But then, I said, speaking the truth and paying your debts is not a - correct definition of justice. - - CEPHALUS - SOCRATES - POLEMARCHUS - - Quite correct, Socrates, if Simonides is to be believed, said - Polemarchus interposing. - - I fear, said Cephalus, that I must go now, for I have to look after the - sacrifices, and I hand over the argument to Polemarchus and the company. - EOF - git add text.txt && - test_tick && - git commit -m "Initial revision" && - - git checkout -b remote && - sed -e " - s/\. /\. /g - s/[?] /? /g - s/ / /g - s/--/---/g - s/but as concerning/but as con cerning/ - /CEPHALUS - SOCRATES - POLEMARCHUS/ d - " text.txt >text.txt+ && - mv text.txt+ text.txt && - git commit -a -m "Remove cruft" && - - git checkout master && - sed -e " - s/\(not in his right mind\),\(.*\)/\1;\2Q/ - s/Quite correct\(.*\)/It is too correct\1Q/ - s/unintentionally/un intentionally/ - /un intentionally/ s/$/Q/ - s/Polemarchus interposing./Polemarchus, interposing.Q/ - /justice and holiness/ s/$/Q/ - /pay your debts/ s/$/Q/ - " text.txt | q_to_cr >text.txt+ && - mv text.txt+ text.txt && - git commit -a -m "Clarify" && - git show-branch --all -' - -test_expect_success 'naive merge fails' ' - git read-tree --reset -u HEAD && - test_must_fail git merge-recursive HEAD^ -- HEAD remote && - test_must_fail git update-index --refresh && - grep "<<<<<<" text.txt -' - -test_expect_success '--ignore-space-change makes merge succeed' ' - git read-tree --reset -u HEAD && - git merge-recursive --ignore-space-change HEAD^ -- HEAD remote -' - -test_expect_success 'naive cherry-pick fails' ' - git read-tree --reset -u HEAD && - test_must_fail git cherry-pick --no-commit remote && - git read-tree --reset -u HEAD && - test_must_fail git cherry-pick remote && - test_must_fail git update-index --refresh && - grep "<<<<<<" text.txt -' - -test_expect_success '-Xignore-space-change makes cherry-pick succeed' ' - git read-tree --reset -u HEAD && - git cherry-pick --no-commit -Xignore-space-change remote -' - -test_expect_success '--ignore-space-change: our w/s-only change wins' ' - q_to_cr <<-\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 && - test_cmp expected actual -' - -test_expect_success '--ignore-space-change: their real change wins over w/s' ' - cat <<-\EOF >expected && - it?---to speak the truth and to pay your debts---no more than this? And - EOF - - git read-tree --reset -u HEAD && - git merge-recursive --ignore-space-change HEAD^ -- HEAD remote && - grep "pay your debts" text.txt >actual && - test_cmp expected actual -' - -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 && - 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 && - test_cmp expected1 actual1 && - test_cmp expected2 actual2 -' - -test_expect_success '--ignore-all-space drops their new spaces' ' - cat <<-\EOF >expected && - Well said, Cephalus, I replied; but as concerning justice, what is - EOF - - git read-tree --reset -u HEAD && - git merge-recursive --ignore-all-space HEAD^ -- HEAD remote && - grep "Well said" text.txt >actual && - test_cmp expected actual -' - -test_expect_success '--ignore-all-space keeps our new spaces' ' - q_to_cr <<-\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 && - test_cmp expected actual -' - -test_expect_success '--ignore-space-at-eol' ' - q_to_cr <<-\EOF >expected && - <<<<<<< HEAD - is not in his right mind; ought I to give them back to him? No oneQ - ======= - is not in his right mind, ought I to give them back to him? No one - >>>>>>> remote - EOF - - git read-tree --reset -u HEAD && - test_must_fail git merge-recursive --ignore-space-at-eol \ - HEAD^ -- HEAD remote && - conflict_hunks text.txt >actual && - test_cmp expected actual -' - -test_done |