t7421: introduce a test script for verifying 'summary' output

't7401-submodule-summary.sh' uses 'git add' to add submodules. Therefore,
some commands such as 'git submodule init' and 'git submodule deinit'
do not work as expected.

So, introduce a test script for verifying the 'summary' output for
submodules added using 'git submodule add' and notify regarding the
above mentioned behaviour in t7401 itself.

Mentored-by: Christian Couder <chriscool@tuxfamily.org>
Mentored-by: Kaartic Sivaraam <kaartic.sivaraam@gmail.com>
Signed-off-by: Shourya Shukla <shouryashukla.oo@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Shourya Shukla 2020-08-13 01:14:03 +05:30 коммит произвёл Junio C Hamano
Родитель 180b154b09
Коммит ede8a5bb6b
2 изменённых файлов: 73 добавлений и 0 удалений

Просмотреть файл

@ -7,6 +7,10 @@ test_description='Summary support for submodules
This test tries to verify the sanity of summary subcommand of git submodule.
'
# NOTE: This test script uses 'git add' instead of 'git submodule add' to add
# submodules to the superproject. Some submodule subcommands such as init and
# deinit might not work as expected in this script. t7421 does not have this
# caveat.
. ./test-lib.sh

Просмотреть файл

@ -0,0 +1,69 @@
#!/bin/sh
#
# Copyright (C) 2020 Shourya Shukla
#
test_description='Summary support for submodules, adding them using git submodule add
This test script tries to verify the sanity of summary subcommand of git submodule
while making sure to add submodules using `git submodule add` instead of
`git add` as done in t7401.
'
. ./test-lib.sh
test_expect_success 'summary test environment setup' '
git init sm &&
test_commit -C sm "add file" file file-content file-tag &&
git submodule add ./sm my-subm &&
test_tick &&
git commit -m "add submodule"
'
test_expect_success 'submodule summary output for initialized submodule' '
test_commit -C sm "add file2" file2 file2-content file2-tag &&
git submodule update --remote &&
test_tick &&
git commit -m "update submodule" my-subm &&
git submodule summary HEAD^ >actual &&
rev1=$(git -C sm rev-parse --short HEAD^) &&
rev2=$(git -C sm rev-parse --short HEAD) &&
cat >expected <<-EOF &&
* my-subm ${rev1}...${rev2} (1):
> add file2
EOF
test_cmp expected actual
'
test_expect_success 'submodule summary output for deinitialized submodule' '
git submodule deinit my-subm &&
git submodule summary HEAD^ >actual &&
test_must_be_empty actual &&
git submodule update --init my-subm &&
git submodule summary HEAD^ >actual &&
rev1=$(git -C sm rev-parse --short HEAD^) &&
rev2=$(git -C sm rev-parse --short HEAD) &&
cat >expected <<-EOF &&
* my-subm ${rev1}...${rev2} (1):
> add file2
EOF
test_cmp expected actual
'
test_expect_success 'submodule summary output for submodules with changed paths' '
git mv my-subm subm &&
git commit -m "change submodule path" &&
rev=$(git -C sm rev-parse --short HEAD^) &&
git submodule summary HEAD^^ -- my-subm >actual 2>err &&
test_i18ngrep "fatal:.*my-subm" err &&
cat >expected <<-EOF &&
* my-subm ${rev}...0000000:
EOF
test_cmp expected actual
'
test_done