Skip to content

Commit

Permalink
test(clap): add automated tests
Browse files Browse the repository at this point in the history
  • Loading branch information
kbknapp committed Apr 1, 2015
1 parent 9e8c1fb commit 3834433
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 4 deletions.
1 change: 1 addition & 0 deletions claptests/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
51 changes: 48 additions & 3 deletions claptests/run_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,26 +12,71 @@
'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']]}
Expand Down
2 changes: 1 addition & 1 deletion claptests/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down

0 comments on commit 3834433

Please sign in to comment.