]> git.ipfire.org Git - thirdparty/git.git/commitdiff
test-lib functions: add an --annotated option to "test_commit"
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Mon, 10 May 2021 14:19:04 +0000 (16:19 +0200)
committerJunio C Hamano <gitster@pobox.com>
Tue, 11 May 2021 03:45:18 +0000 (12:45 +0900)
Add an --annotated option to test_commit to create annotated tags. The
tag will share the same message as the commit, and we'll call
test_tick before creating it (unless --notick) is provided.

There's quite a few tests that could be simplified with this
construct. I've picked one to convert in this change as a
demonstration.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t1403-show-ref.sh
t/test-lib-functions.sh

index 6ce62f878c358dbfec9223c1857a0168e2806e96..17d3cc14050695d42bc19d043e9c3c5f4ab000e4 100755 (executable)
@@ -7,11 +7,9 @@ export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
 . ./test-lib.sh
 
 test_expect_success setup '
-       test_commit A &&
-       git tag -f -a -m "annotated A" A &&
+       test_commit --annotate A &&
        git checkout -b side &&
-       test_commit B &&
-       git tag -f -a -m "annotated B" B &&
+       test_commit --annotate B &&
        git checkout main &&
        test_commit C &&
        git branch B A^0
index d0f4f3885d62ddf507e7e974aafbaeb613035017..6e2332a324a6a144e54790e93b542af308772a7e 100644 (file)
@@ -179,6 +179,10 @@ debug () {
 #      Invoke "git commit" with --author <author>
 #   --no-tag
 #      Do not tag the resulting commit
+#   --annotate
+#      Create an annotated tag with "--annotate -m <message>". Calls
+#      test_tick between making the commit and tag, unless --notick
+#      is given.
 #
 # This will commit a file with the given contents and the given commit
 # message, and tag the resulting commit with the given tag name.
@@ -191,7 +195,7 @@ test_commit () {
        author= &&
        signoff= &&
        indir= &&
-       no_tag= &&
+       tag=light &&
        while test $# != 0
        do
                case "$1" in
@@ -219,7 +223,10 @@ test_commit () {
                        shift
                        ;;
                --no-tag)
-                       no_tag=yes
+                       tag=none
+                       ;;
+               --annotate)
+                       tag=annotate
                        ;;
                *)
                        break
@@ -243,10 +250,20 @@ test_commit () {
        git ${indir:+ -C "$indir"} commit \
            ${author:+ --author "$author"} \
            $signoff -m "$1" &&
-       if test -z "$no_tag"
-       then
+       case "$tag" in
+       none)
+               ;;
+       light)
                git ${indir:+ -C "$indir"} tag "${4:-$1}"
-       fi
+               ;;
+       annotate)
+               if test -z "$notick"
+               then
+                       test_tick
+               fi &&
+               git ${indir:+ -C "$indir"} tag -a -m "$1" "${4:-$1}"
+               ;;
+       esac
 }
 
 # Call test_merge with the arguments "<message> <commit>", where <commit>