t1502: test option negation
Add tests for checking the "git rev-parse --parseopt" flag "!" and whether options can be negated with a "no-" prefix. Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
8dcb49021e
commit
d5dc68f730
|
@ -3,6 +3,22 @@
|
|||
test_description='test git rev-parse --parseopt'
|
||||
. ./test-lib.sh
|
||||
|
||||
check_invalid_long_option () {
|
||||
spec="$1"
|
||||
opt="$2"
|
||||
test_expect_success "test --parseopt invalid switch $opt help output for $spec" '
|
||||
{
|
||||
cat <<-\EOF &&
|
||||
error: unknown option `'${opt#--}\''
|
||||
EOF
|
||||
sed -e 1d -e \$d <"$TEST_DIRECTORY/t1502/$spec.help"
|
||||
} >expect &&
|
||||
test_expect_code 129 git rev-parse --parseopt -- $opt \
|
||||
2>output <"$TEST_DIRECTORY/t1502/$spec" &&
|
||||
test_cmp expect output
|
||||
'
|
||||
}
|
||||
|
||||
test_expect_success 'setup optionspec' '
|
||||
sed -e "s/^|//" >optionspec <<\EOF
|
||||
|some-command [options] <args>...
|
||||
|
@ -278,4 +294,32 @@ test_expect_success 'test --parseopt help output: multi-line blurb after empty l
|
|||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success 'test --parseopt help output for optionspec-neg' '
|
||||
test_expect_code 129 git rev-parse --parseopt -- \
|
||||
-h >output <"$TEST_DIRECTORY/t1502/optionspec-neg" &&
|
||||
test_cmp "$TEST_DIRECTORY/t1502/optionspec-neg.help" output
|
||||
'
|
||||
|
||||
test_expect_success 'test --parseopt valid options for optionspec-neg' '
|
||||
cat >expect <<-\EOF &&
|
||||
set -- --foo --no-foo --no-bar --positive-only --no-negative --
|
||||
EOF
|
||||
git rev-parse --parseopt -- <"$TEST_DIRECTORY/t1502/optionspec-neg" >output \
|
||||
--foo --no-foo --no-bar --positive-only --no-negative &&
|
||||
test_cmp expect output
|
||||
'
|
||||
|
||||
test_expect_success 'test --parseopt positivated option for optionspec-neg' '
|
||||
cat >expect <<-\EOF &&
|
||||
set -- --no-no-bar --no-no-bar --
|
||||
EOF
|
||||
git rev-parse --parseopt -- <"$TEST_DIRECTORY/t1502/optionspec-neg" >output \
|
||||
--no-no-bar --bar &&
|
||||
test_cmp expect output
|
||||
'
|
||||
|
||||
check_invalid_long_option optionspec-neg --no-positive-only
|
||||
check_invalid_long_option optionspec-neg --negative
|
||||
check_invalid_long_option optionspec-neg --no-no-negative
|
||||
|
||||
test_done
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
some-command [options] <args>...
|
||||
|
||||
some-command does foo and bar!
|
||||
--
|
||||
foo can be negated
|
||||
no-bar can be positivated
|
||||
positive-only! cannot be negated
|
||||
no-negative! cannot be positivated
|
|
@ -0,0 +1,11 @@
|
|||
cat <<\EOF
|
||||
usage: some-command [options] <args>...
|
||||
|
||||
some-command does foo and bar!
|
||||
|
||||
--foo can be negated
|
||||
--no-bar can be positivated
|
||||
--positive-only cannot be negated
|
||||
--no-negative cannot be positivated
|
||||
|
||||
EOF
|
Loading…
Reference in New Issue