Re: [PATCH 1/4] t/t7502: compare entire commit message with what was expected
Jonathan Nieder writes: > The downside (not a new problem, but a downside nonetheless) is that > it means the test doesn't demonstrate what --cleanup=verbatim --status > will do. > > How about something like this? Can't we be a bit more robust by not using a hardcoded block of lines as the "expect" string? You could for example use what you would see in your editor when "git commit" is run without the "-t" option to form the expected pattern, no? In any case, I think (1) a test for 'verbatim with status' is worth doing, and (2) it would be cleaner to do this as a separate step, perhaps on top of Brandon's 4-patch series. > > Signed-off-by: Jonathan Nieder > > diff --git i/t/t7502-commit.sh w/t/t7502-commit.sh > index cbd7a459..64162fce 100755 > --- i/t/t7502-commit.sh > +++ w/t/t7502-commit.sh > @@ -180,15 +180,37 @@ test_expect_success 'verbose respects diff config' ' > test_expect_success 'cleanup commit messages (verbatim option,-t)' ' > > echo >>negative && > - { echo;echo "# text";echo; } >expect && > - git commit --cleanup=verbatim -t expect -a && > - git cat-file -p HEAD |sed -e "1,/^\$/d" |head -n 3 >actual && > + { > + echo && > + echo "# text" && > + echo > + } >template && > + { > + cat template && > + cat <<-\EOF && > + > + # Please enter the commit message for your changes. Lines > starting > + # with '\''#'\'' will be kept; you may remove them yourself if > you want to. > + # An empty message aborts the commit. > + # > + # Author:A U Thor > + # > + EOF > + git commit -a --dry-run > + } >expect && > + git commit --cleanup=verbatim -t template -a && > + git cat-file -p HEAD |sed -e "1,/^\$/d" >actual && > test_cmp expect actual > > ' > > test_expect_success 'cleanup commit messages (verbatim option,-F)' ' > > + { > + echo && > + echo "# text" && > + echo > + } >expect && > echo >>negative && > git commit --cleanup=verbatim -F expect -a && > git cat-file -p HEAD |sed -e "1,/^\$/d">actual && -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 1/4] t/t7502: compare entire commit message with what was expected
Jonathan Nieder wrote: > +++ w/t/t7502-commit.sh [...] > + # Please enter the commit message for your changes. Lines > starting > + # with '\''#'\'' will be kept; you may remove them yourself if > you want to. > + # An empty message aborts the commit. > + # > + # Author:A U Thor > + # > + EOF > + git commit -a --dry-run > + } >expect && > + git commit --cleanup=verbatim -t template -a && > - git cat-file -p HEAD |sed -e "1,/^\$/d" |head -n 3 >actual && > + git cat-file -p HEAD |sed -e "1,/^\$/d" >actual && > test_cmp expect actual Quick correction: this would use test_i18ncmp instead of test_cmp if it ends up being a good idea. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 1/4] t/t7502: compare entire commit message with what was expected
Brandon Casey wrote: > So, let's use the --no-status option to 'git commit' which will cause > git to refrain from appending the lines of instructional text to the > commit message. This will allow the entire resulting commit message to > be compared against the expected value. The downside (not a new problem, but a downside nonetheless) is that it means the test doesn't demonstrate what --cleanup=verbatim --status will do. How about something like this? Signed-off-by: Jonathan Nieder diff --git i/t/t7502-commit.sh w/t/t7502-commit.sh index cbd7a459..64162fce 100755 --- i/t/t7502-commit.sh +++ w/t/t7502-commit.sh @@ -180,15 +180,37 @@ test_expect_success 'verbose respects diff config' ' test_expect_success 'cleanup commit messages (verbatim option,-t)' ' echo >>negative && - { echo;echo "# text";echo; } >expect && - git commit --cleanup=verbatim -t expect -a && - git cat-file -p HEAD |sed -e "1,/^\$/d" |head -n 3 >actual && + { + echo && + echo "# text" && + echo + } >template && + { + cat template && + cat <<-\EOF && + + # Please enter the commit message for your changes. Lines starting + # with '\''#'\'' will be kept; you may remove them yourself if you want to. + # An empty message aborts the commit. + # + # Author:A U Thor + # + EOF + git commit -a --dry-run + } >expect && + git commit --cleanup=verbatim -t template -a && + git cat-file -p HEAD |sed -e "1,/^\$/d" >actual && test_cmp expect actual ' test_expect_success 'cleanup commit messages (verbatim option,-F)' ' + { + echo && + echo "# text" && + echo + } >expect && echo >>negative && git commit --cleanup=verbatim -F expect -a && git cat-file -p HEAD |sed -e "1,/^\$/d">actual && -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html