Am 27.12.19 um 14:47 schrieb Denton Liu: > The test_must_fail function should only be used for git commands since > we should assume that external commands work sanely. Since test_cmp() just > wraps an external command, replace `test_must_fail test_cmp` with > `! test_cmp`. > > Signed-off-by: Denton Liu <liu.denton@xxxxxxxxx> > --- > t/t3504-cherry-pick-rerere.sh | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/t/t3504-cherry-pick-rerere.sh b/t/t3504-cherry-pick-rerere.sh > index a267b2d144..c31141c471 100755 > --- a/t/t3504-cherry-pick-rerere.sh > +++ b/t/t3504-cherry-pick-rerere.sh > @@ -95,7 +95,7 @@ test_expect_success 'cherry-pick --rerere-autoupdate more than once' ' > test_expect_success 'cherry-pick conflict without rerere' ' > test_config rerere.enabled false && > test_must_fail git cherry-pick master && > - test_must_fail test_cmp expect foo > + ! test_cmp expect foo This is VERY suspicious. It is not reliable to check that something is not exactly equal to something else. Feel free to replace this patch by the following. ----- 8< ----- t3504: do check for conflict marker after failed cherry-pick The test with disabled rerere should make sure that the cherry-picked result does not have the conflict replaced with a recorded resolution. It attempts to do so by ensuring that the file content is _not_ equal to some other file. That by itself is a very dubious check because just about every random result of an incomplete cherry-pick would satisfy the condition. In this case, the intent was to check that the conflicting file does _not_ contain the resolved content. But the check actually uses the wrong reference file, but not the resolved content. Needless to say that the non-equality is satisfied. And, on top of it, it uses a commit that does not even touch the file that is checked. Do check for the expected result, which is content from both sides of the merge and merge conflicts. (The latter we check for just the middle separator for brevity.) As a side-effect, this also removes an incorrect use of test_must_fail. Signed-off-by: Johannes Sixt <j6t@xxxxxxxx> --- t/t3504-cherry-pick-rerere.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/t/t3504-cherry-pick-rerere.sh b/t/t3504-cherry-pick-rerere.sh index a267b2d144..80a0d08706 100755 --- a/t/t3504-cherry-pick-rerere.sh +++ b/t/t3504-cherry-pick-rerere.sh @@ -94,8 +94,10 @@ test_expect_success 'cherry-pick --rerere-autoupdate more than once' ' test_expect_success 'cherry-pick conflict without rerere' ' test_config rerere.enabled false && - test_must_fail git cherry-pick master && - test_must_fail test_cmp expect foo + test_must_fail git cherry-pick foo-master && + grep ===== foo && + grep foo-dev foo && + grep foo-master foo ' test_done -- 2.24.1.524.gae569673ff