]> git.ipfire.org Git - thirdparty/git.git/commitdiff
test-lib functions: add an --append option to test_commit
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Tue, 12 Jan 2021 20:17:59 +0000 (21:17 +0100)
committerJunio C Hamano <gitster@pobox.com>
Tue, 12 Jan 2021 22:04:41 +0000 (14:04 -0800)
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>
t/t4203-mailmap.sh
t/test-lib-functions.sh

index 2b342d7f7cbdf33b6978a859e1602bc235fcf668..5d92880a5ae917f05ccaadb2e258848f9c4c4c58 100755 (executable)
@@ -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):
index 529f6264fe6142122fcfdaef80e55186d89d467a..b0a5d74dc7af01142351a6cb639807c4e28bba7a 100644 (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