| 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); |
| } |
| } |