From 9990439829f8e852d6f570eef1c5319ac7ac4632 Mon Sep 17 00:00:00 2001 From: Rob Bradford Date: Mon, 8 Aug 2022 13:46:47 +0100 Subject: [PATCH] option_parser: Enhance test_option_parser In particular include tests for bracket ([]) syntax grouping. Signed-off-by: Rob Bradford --- option_parser/src/lib.rs | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/option_parser/src/lib.rs b/option_parser/src/lib.rs index b675bcb6f..0653d2dec 100644 --- a/option_parser/src/lib.rs +++ b/option_parser/src/lib.rs @@ -346,15 +346,37 @@ mod tests { .add("size") .add("mergeable") .add("hotplug_method") - .add("hotplug_size"); + .add("hotplug_size") + .add("topology"); assert!(parser.parse("size=128M,hanging_param").is_err()); assert!(parser.parse("size=128M,too_many_equals=foo=bar").is_err()); assert!(parser.parse("size=128M,file=/dev/shm").is_err()); - assert!(parser.parse("size=128M").is_ok()); + assert!(parser.parse("size=128M").is_ok()); assert_eq!(parser.get("size"), Some("128M".to_owned())); assert!(!parser.is_set("mergeable")); assert!(parser.is_set("size")); + + assert!(parser.parse("size=128M,mergeable=on").is_ok()); + assert_eq!(parser.get("size"), Some("128M".to_owned())); + assert_eq!(parser.get("mergeable"), Some("on".to_owned())); + + assert!(parser + .parse("size=128M,mergeable=on,topology=[1,2]") + .is_ok()); + assert_eq!(parser.get("size"), Some("128M".to_owned())); + assert_eq!(parser.get("mergeable"), Some("on".to_owned())); + assert_eq!(parser.get("topology"), Some("[1,2]".to_owned())); + + assert!(parser + .parse("size=128M,mergeable=on,topology=[[1,2],[3,4]]") + .is_ok()); + assert_eq!(parser.get("size"), Some("128M".to_owned())); + assert_eq!(parser.get("mergeable"), Some("on".to_owned())); + assert_eq!(parser.get("topology"), Some("[[1,2],[3,4]]".to_owned())); + + assert!(parser.parse("topology=[").is_err()); + assert!(parser.parse("topology=[[[]]]]").is_err()) } }