test(clap): add automated tests

This commit is contained in:
Kevin K 2015-03-26 14:34:31 -04:00
parent 9e8c1fb940
commit 3834433c20
3 changed files with 50 additions and 4 deletions

View file

@ -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

View file

@ -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']]}

View file

@ -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 {