test-lib functions: add an --append option to test_commit

Add an --append option to test_commit to append <contents> to the
<file> we're writing to. This simplifies a lot of test setup, as shown
in some of the tests being changed here.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Ævar Arnfjörð Bjarmason 2021-01-12 21:17:59 +01:00 committed by Junio C Hamano
parent 999cfc4f45
commit 3373518cc8
2 changed files with 20 additions and 33 deletions

View File

@ -5,14 +5,8 @@ test_description='.mailmap configurations'
. ./test-lib.sh
test_expect_success 'setup commits and contacts file' '
echo one >one &&
git add one &&
test_tick &&
git commit -m initial &&
echo two >>one &&
git add one &&
test_tick &&
git commit --author "nick1 <bugs@company.xx>" -m second
test_commit initial one one &&
test_commit --author "nick1 <bugs@company.xx>" --append second one two
'
test_expect_success 'check-mailmap no arguments' '
@ -436,30 +430,11 @@ test_expect_success 'Shortlog output (complex mapping)' '
Santa Claus <santa.claus@northpole.xx> <me@company.xx>
EOF
echo three >>one &&
git add one &&
test_tick &&
git commit --author "nick2 <bugs@company.xx>" -m third &&
echo four >>one &&
git add one &&
test_tick &&
git commit --author "nick2 <nick2@company.xx>" -m fourth &&
echo five >>one &&
git add one &&
test_tick &&
git commit --author "santa <me@company.xx>" -m fifth &&
echo six >>one &&
git add one &&
test_tick &&
git commit --author "claus <me@company.xx>" -m sixth &&
echo seven >>one &&
git add one &&
test_tick &&
git commit --author "CTO <cto@coompany.xx>" -m seventh &&
test_commit --author "nick2 <bugs@company.xx>" --append third one three &&
test_commit --author "nick2 <nick2@company.xx>" --append fourth one four &&
test_commit --author "santa <me@company.xx>" --append fifth one five &&
test_commit --author "claus <me@company.xx>" --append sixth one six &&
test_commit --author "CTO <cto@coompany.xx>" --append seventh one seven &&
cat >expect <<-EOF &&
$GIT_AUTHOR_NAME <$GIT_AUTHOR_EMAIL> (1):

View File

@ -183,6 +183,9 @@ debug () {
# Run all git commands in directory <dir>
# --notick
# Do not call test_tick before making a commit
# --append
# Use "echo >>" instead of "echo >" when writing "<contents>" to
# "<file>"
# --signoff
# Invoke "git commit" with --signoff
# --author=<author>
@ -195,6 +198,7 @@ debug () {
test_commit () {
notick= &&
append= &&
author= &&
signoff= &&
indir= &&
@ -204,6 +208,9 @@ test_commit () {
--notick)
notick=yes
;;
--append)
append=yes
;;
--author)
author="$2"
shift
@ -223,7 +230,12 @@ test_commit () {
done &&
indir=${indir:+"$indir"/} &&
file=${2:-"$1.t"} &&
echo "${3-$1}" > "$indir$file" &&
if test -n "$append"
then
echo "${3-$1}" >>"$indir$file"
else
echo "${3-$1}" >"$indir$file"
fi &&
git ${indir:+ -C "$indir"} add "$file" &&
if test -z "$notick"
then