git rev-parse --parseopt tests: add more usagestr tests
Add tests for the "usagestr" passed to parse-options.c usage_with_options_internal() through cmd_parseopt(). These test for edge cases in the existing behavior related to the "--parseopt" interface doing its own line-splitting with strbuf_getline(), and the native C interface expecting and potentially needing to handle newlines within the strings in the array it accepts. The results are probably something that wasn't anticipated, but let's make sure we stay backwards compatible with it. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
78a509190d
commit
84122ecdbf
@ -282,4 +282,58 @@ test_expect_success 'test --parseopt --stuck-long and short option with unset op
|
||||
test_cmp expect output
|
||||
'
|
||||
|
||||
test_expect_success 'test --parseopt help output: "wrapped" options normal "or:" lines' '
|
||||
sed -e "s/^|//" >spec <<-\EOF &&
|
||||
|cmd [--some-option]
|
||||
| [--another-option]
|
||||
|cmd [--yet-another-option]
|
||||
|--
|
||||
|h,help show the help
|
||||
EOF
|
||||
|
||||
sed -e "s/^|//" >expect <<-\END_EXPECT &&
|
||||
|cat <<\EOF
|
||||
|usage: cmd [--some-option]
|
||||
| or: [--another-option]
|
||||
| or: cmd [--yet-another-option]
|
||||
|
|
||||
| -h, --help show the help
|
||||
|
|
||||
|EOF
|
||||
END_EXPECT
|
||||
|
||||
test_must_fail git rev-parse --parseopt -- -h >out <spec >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success 'test --parseopt help output: multi-line blurb after empty line' '
|
||||
sed -e "s/^|//" >spec <<-\EOF &&
|
||||
|cmd [--some-option]
|
||||
| [--another-option]
|
||||
|
|
||||
|multi
|
||||
|line
|
||||
|blurb
|
||||
|--
|
||||
|h,help show the help
|
||||
EOF
|
||||
|
||||
sed -e "s/^|//" >expect <<-\END_EXPECT &&
|
||||
|cat <<\EOF
|
||||
|usage: cmd [--some-option]
|
||||
| or: [--another-option]
|
||||
|
|
||||
| multi
|
||||
| line
|
||||
| blurb
|
||||
|
|
||||
| -h, --help show the help
|
||||
|
|
||||
|EOF
|
||||
END_EXPECT
|
||||
|
||||
test_must_fail git rev-parse --parseopt -- -h >out <spec >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_done
|
||||
|
Loading…
Reference in New Issue
Block a user