about summary refs log tree commit diff
path: root/compiler/rustc_session/src/config/native_libs/tests.rs
blob: 287c98fe7ebe64a86b84e4ee1ebe5ad75d7563a2 (plain)
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);
    }
}