1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
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);
}
}
|