| use crate::config::native_libs::{NativeLibParts, split_native_lib_value}; | |
| #[test] | |
| fn split() { | |
| // This is a unit test for some implementation details, so consider deleting | |
| // it if it gets in the way. | |
| use NativeLibParts as P; | |
| let examples = &[ | |
| ("", P { kind: None, modifiers: None, name: "", new_name: None }), | |
| ("foo", P { kind: None, modifiers: None, name: "foo", new_name: None }), | |
| ("foo:", P { kind: None, modifiers: None, name: "foo", new_name: Some("") }), | |
| ("foo:bar", P { kind: None, modifiers: None, name: "foo", new_name: Some("bar") }), | |
| (":bar", P { kind: None, modifiers: None, name: "", new_name: Some("bar") }), | |
| ("kind=foo", P { kind: Some("kind"), modifiers: None, name: "foo", new_name: None }), | |
| (":mods=foo", P { kind: Some(""), modifiers: Some("mods"), name: "foo", new_name: None }), | |
| ( | |
| ":mods=:bar", | |
| P { kind: Some(""), modifiers: Some("mods"), name: "", new_name: Some("bar") }, | |
| ), | |
| ( | |
| "kind=foo:bar", | |
| P { kind: Some("kind"), modifiers: None, name: "foo", new_name: Some("bar") }, | |
| ), | |
| ( | |
| "kind:mods=foo", | |
| P { kind: Some("kind"), modifiers: Some("mods"), name: "foo", new_name: None }, | |
| ), | |
| ( | |
| "kind:mods=foo:bar", | |
| P { kind: Some("kind"), modifiers: Some("mods"), name: "foo", new_name: Some("bar") }, | |
| ), | |
| ("::==::", P { kind: Some(""), modifiers: Some(":"), name: "=", new_name: Some(":") }), | |
| ("==::==", P { kind: Some(""), modifiers: None, name: "=", new_name: Some(":==") }), | |
| ]; | |
| for &(value, ref expected) in examples { | |
| println!("{value:?}"); | |
| let actual = split_native_lib_value(value); | |
| assert_eq!(&actual, expected); | |
| } | |
| } |