submodule tests: test usage behavior
Test what exit code and output we emit on "git submodule -h", how we handle "--" when no subcommand is specified, and how the top-level "--recursive" option is handled. For "-h" this doesn't make sense, but let's test for it so that any subsequent eventual behavior change will become clear. For "--" this follows up on68cabbfda3
(submodule: document default behavior, 2019-02-15) and tests that "status" doesn't support the "--" delimiter. There's no intrinsically good reason not to support that. We behave this way due to edge cases in git-submodule.sh's implementation, but as with "-h" let's assert our current long-standing behavior for now. For "--recursive" the exclusion of it from the top-level appears to have been an omission in15fc56a853
(git submodule foreach: Add --recursive to recurse into nested submodules, 2009-08-19), there doesn't seem to be a reason not to support it alongside "--quiet" and "--cached", but let's likewise assert our existing behavior for now. I.e. as long as "status" is optional it would make sense to support all of its options when it's omitted, but we only do that with "--quiet" and "--cached", and curiously omit "--recursive". Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Reviewed-by: Glen Choo <chooglen@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
71a8fab31b
commit
89bc7b5c01
@ -14,6 +14,32 @@ export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
|
||||
|
||||
. ./test-lib.sh
|
||||
|
||||
test_expect_success 'submodule usage: -h' '
|
||||
git submodule -h >out 2>err &&
|
||||
grep "^usage: git submodule" out &&
|
||||
test_must_be_empty err
|
||||
'
|
||||
|
||||
test_expect_success 'submodule usage: --recursive' '
|
||||
test_expect_code 1 git submodule --recursive >out 2>err &&
|
||||
grep "^usage: git submodule" err &&
|
||||
test_must_be_empty out
|
||||
'
|
||||
|
||||
test_expect_success 'submodule usage: status --' '
|
||||
test_expect_code 1 git submodule -- &&
|
||||
test_expect_code 1 git submodule --end-of-options
|
||||
'
|
||||
|
||||
for opt in '--quiet' '--cached'
|
||||
do
|
||||
test_expect_success "submodule usage: status $opt" '
|
||||
git submodule $opt &&
|
||||
git submodule status $opt &&
|
||||
git submodule $opt status
|
||||
'
|
||||
done
|
||||
|
||||
test_expect_success 'submodule deinit works on empty repository' '
|
||||
git submodule deinit --all
|
||||
'
|
||||
|
Loading…
Reference in New Issue
Block a user