From c67e00cc1b8523c59f3654e22ce34d8ad40bbf8e Mon Sep 17 00:00:00 2001 From: prataprc Date: Mon, 21 May 2018 14:00:16 +0530 Subject: [PATCH 1/2] test case to check opt_present() panic for undefined options #51. At later point, if opt_present() decide to return gracefully with false, instead of panic, we can just remove #[should_panic] attribute on the test case. --- src/lib.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index fa804bfc..20a5e404 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -2006,4 +2006,17 @@ Options: let mut opts = Options::new(); opts.optflag("", "a", "Oops, long option too short"); } + + #[test] + #[should_panic] + fn test_undefined_opt_present() { + let mut opts = Options::new(); + opts.optflag("h", "help", "Description"); + let args = vec!["-h"]; + let matches = &match opts.parse(args) { + Ok(m) => m, + Err(e) => panic!("{}", e) + }; + assert!(!matches.opt_present("undefined")); + } } From dd5db9487c77287c8f68e90de769f4c209b0a9d5 Mon Sep 17 00:00:00 2001 From: prataprc Date: Wed, 23 May 2018 14:31:00 +0530 Subject: [PATCH 2/2] improve test case for #51. --- src/lib.rs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 20a5e404..0a81c40e 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -2013,10 +2013,9 @@ Options: let mut opts = Options::new(); opts.optflag("h", "help", "Description"); let args = vec!["-h"]; - let matches = &match opts.parse(args) { - Ok(m) => m, + match opts.parse(args) { + Ok(matches) => assert!(!matches.opt_present("undefined")), Err(e) => panic!("{}", e) - }; - assert!(!matches.opt_present("undefined")); + } } }