mirror of
https://github.com/clap-rs/clap
synced 2025-03-04 15:27:16 +00:00
test(clap): add automated tests
This commit is contained in:
parent
9e8c1fb940
commit
3834433c20
3 changed files with 50 additions and 4 deletions
|
@ -20,6 +20,7 @@ test:
|
|||
cd "$(THIS_DIR)"
|
||||
(make build) || (make clean && false)
|
||||
cd "$(THIS_DIR)"
|
||||
cargo test
|
||||
(./run_tests.py) || (make clean && false)
|
||||
mv cargo.bak Cargo.toml
|
||||
make clean
|
||||
|
|
|
@ -12,26 +12,71 @@ cmds = {'help short: ': ['{} -h | wc -l'.format(_bin), ['21']],
|
|||
'option NOT present',
|
||||
'positional NOT present',
|
||||
'subcmd NOT present']],
|
||||
'flags short: ': ['{} -ff'.format(_bin), ['flag present 2 times',
|
||||
'option NOT present',
|
||||
'positional NOT present',
|
||||
'subcmd NOT present']],
|
||||
'flags short: ': ['{} -f -f'.format(_bin), ['flag present 2 times',
|
||||
'option NOT present',
|
||||
'positional NOT present',
|
||||
'subcmd NOT present']],
|
||||
'flag long: ': ['{} --flag'.format(_bin), ['flag present 1 times',
|
||||
'option NOT present',
|
||||
'positional NOT present',
|
||||
'subcmd NOT present']],
|
||||
'flags long: ': ['{} --flag --flag'.format(_bin), ['flag present 2 times',
|
||||
'option NOT present',
|
||||
'positional NOT present',
|
||||
'subcmd NOT present']],
|
||||
'flags both: ': ['{} -f --flag'.format(_bin), ['flag present 2 times',
|
||||
'option NOT present',
|
||||
'positional NOT present',
|
||||
'subcmd NOT present']],
|
||||
'flags s/l(cmb):': ['{} -ff --flag'.format(_bin), ['flag present 3 times',
|
||||
'option NOT present',
|
||||
'positional NOT present',
|
||||
'subcmd NOT present']],
|
||||
'positional: ': ['{} some'.format(_bin), ['flag NOT present',
|
||||
'option NOT present',
|
||||
'positional present with value: some',
|
||||
'subcmd NOT present']],
|
||||
'option short: ': ['{} -o some'.format(_bin), ['flag NOT present',
|
||||
'option present with value: some',
|
||||
'option present 1 times with value: some',
|
||||
'An option: some',
|
||||
'positional NOT present',
|
||||
'subcmd NOT present']],
|
||||
'options short:': ['{} -o some -o other'.format(_bin), ['flag NOT present',
|
||||
'option present 2 times with value: some',
|
||||
'An option: some',
|
||||
'An option: other',
|
||||
'positional NOT present',
|
||||
'subcmd NOT present']],
|
||||
'option long: ': ['{} --option some'.format(_bin), ['flag NOT present',
|
||||
'option present with value: some',
|
||||
'option present 1 times with value: some',
|
||||
'An option: some',
|
||||
'positional NOT present',
|
||||
'subcmd NOT present']],
|
||||
'options long: ': ['{} --option some --option other'.format(_bin), ['flag NOT present',
|
||||
'option present 2 times with value: some',
|
||||
'An option: some',
|
||||
'An option: other',
|
||||
'positional NOT present',
|
||||
'subcmd NOT present']],
|
||||
'options long=:': ['{} --option=some --option=other'.format(_bin), ['flag NOT present',
|
||||
'option present 2 times with value: some',
|
||||
'An option: some',
|
||||
'An option: other',
|
||||
'positional NOT present',
|
||||
'subcmd NOT present']],
|
||||
'options 3:': ['{} --option=some --option=other -o opt'.format(_bin), ['flag NOT present',
|
||||
'option present 3 times with value: some',
|
||||
'An option: some',
|
||||
'An option: other',
|
||||
'An option: opt',
|
||||
'positional NOT present',
|
||||
'subcmd NOT present']],
|
||||
'option long=: ': ['{} --option=some'.format(_bin), ['flag NOT present',
|
||||
'option present with value: some',
|
||||
'option present 1 times with value: some',
|
||||
'An option: some',
|
||||
'positional NOT present',
|
||||
'subcmd NOT present']]}
|
||||
|
|
|
@ -54,7 +54,7 @@ fn main() {
|
|||
|
||||
if matches.is_present("option") {
|
||||
if let Some(v) = matches.value_of("option") {
|
||||
println!("option present with value: {}", v);
|
||||
println!("option present {} times with value: {}",matches.occurrences_of("option"), v);
|
||||
}
|
||||
if let Some(ref ov) = matches.values_of("option") {
|
||||
for o in ov {
|
||||
|
|
Loading…
Add table
Reference in a new issue