File: mutability.rs

package info (click to toggle)
rust-search-path 0.1.4-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 148 kB
  • sloc: makefile: 12; sh: 1
file content (66 lines) | stat: -rw-r--r-- 2,351 bytes parent folder | download | duplicates (2)
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
use search_path::SearchPath;
use std::path::PathBuf;

#[cfg(target_family = "windows")]
const SIMPLE_PATH: &str = "a;b;c";
#[cfg(not(target_family = "windows"))]
const SIMPLE_PATH: &str = "a:b:c";

#[test]
fn test_append() {
    let mut search_path = SearchPath::new_or("UNLIKELY_THIS_VAR_EXISTS", SIMPLE_PATH);
    assert!(!search_path.contains(&PathBuf::from("d")));
    search_path.append(PathBuf::from("d"));
    assert!(search_path.contains(&PathBuf::from("d")));
    assert_eq!(search_path.iter().last(), Some(&PathBuf::from("d")));
}

#[test]
fn test_append_cwd() {
    let mut search_path = SearchPath::new_or("UNLIKELY_THIS_VAR_EXISTS", SIMPLE_PATH);
    assert!(!search_path.contains(&PathBuf::from(".")));
    search_path.append_cwd();
    assert!(search_path.contains(&PathBuf::from(".")));
    assert_eq!(search_path.iter().last(), Some(&PathBuf::from(".")));
}

#[test]
fn test_prepend() {
    let mut search_path = SearchPath::new_or("UNLIKELY_THIS_VAR_EXISTS", SIMPLE_PATH);
    assert!(!search_path.contains(&PathBuf::from("d")));
    search_path.prepend(PathBuf::from("d"));
    assert!(search_path.contains(&PathBuf::from("d")));
    assert_eq!(search_path.iter().next(), Some(&PathBuf::from("d")));
}

#[test]
fn test_prepend_cwd() {
    let mut search_path = SearchPath::new_or("UNLIKELY_THIS_VAR_EXISTS", SIMPLE_PATH);
    assert!(!search_path.contains(&PathBuf::from(".")));
    search_path.prepend_cwd();
    assert!(search_path.contains(&PathBuf::from(".")));
    assert_eq!(search_path.iter().next(), Some(&PathBuf::from(".")));
}

#[test]
fn test_remove() {
    let mut search_path = SearchPath::new_or("UNLIKELY_THIS_VAR_EXISTS", SIMPLE_PATH);
    assert!(search_path.contains(&PathBuf::from("a")));
    search_path.remove(&PathBuf::from("a"));
    assert!(!search_path.contains(&PathBuf::from("a")));
}

#[cfg(target_family = "windows")]
const DUPLICATES_PATH: &str = "a;b;a;b;c;a;c";
#[cfg(not(target_family = "windows"))]
const DUPLICATES_PATH: &str = "a:b:a:b:c:a:c";

#[test]
fn test_dedup() {
    let mut search_path = SearchPath::new_or("UNLIKELY_THIS_VAR_EXISTS", DUPLICATES_PATH);
    search_path.dedup();
    assert_eq!(search_path.len(), 3);
    assert!(search_path.contains(&PathBuf::from("a")));
    assert!(search_path.contains(&PathBuf::from("b")));
    assert!(search_path.contains(&PathBuf::from("c")));
}