]> git.proxmox.com Git - rustc.git/blob - src/librustc_incremental/persist/fs/tests.rs
New upstream version 1.47.0+dfsg1
[rustc.git] / src / librustc_incremental / persist / fs / tests.rs
1 use super::*;
2
3 #[test]
4 fn test_all_except_most_recent() {
5 assert_eq!(
6 all_except_most_recent(vec![
7 (UNIX_EPOCH + Duration::new(4, 0), PathBuf::from("4"), None),
8 (UNIX_EPOCH + Duration::new(1, 0), PathBuf::from("1"), None),
9 (UNIX_EPOCH + Duration::new(5, 0), PathBuf::from("5"), None),
10 (UNIX_EPOCH + Duration::new(3, 0), PathBuf::from("3"), None),
11 (UNIX_EPOCH + Duration::new(2, 0), PathBuf::from("2"), None),
12 ])
13 .keys()
14 .cloned()
15 .collect::<FxHashSet<PathBuf>>(),
16 vec![PathBuf::from("1"), PathBuf::from("2"), PathBuf::from("3"), PathBuf::from("4"),]
17 .into_iter()
18 .collect::<FxHashSet<PathBuf>>()
19 );
20
21 assert_eq!(
22 all_except_most_recent(vec![]).keys().cloned().collect::<FxHashSet<PathBuf>>(),
23 FxHashSet::default()
24 );
25 }
26
27 #[test]
28 fn test_timestamp_serialization() {
29 for i in 0..1_000u64 {
30 let time = UNIX_EPOCH + Duration::new(i * 1_434_578, (i as u32) * 239_000);
31 let s = timestamp_to_string(time);
32 assert_eq!(Ok(time), string_to_timestamp(&s));
33 }
34 }
35
36 #[test]
37 fn test_find_source_directory_in_iter() {
38 let already_visited = FxHashSet::default();
39
40 // Find newest
41 assert_eq!(
42 find_source_directory_in_iter(
43 vec![
44 PathBuf::from("crate-dir/s-3234-0000-svh"),
45 PathBuf::from("crate-dir/s-2234-0000-svh"),
46 PathBuf::from("crate-dir/s-1234-0000-svh")
47 ]
48 .into_iter(),
49 &already_visited
50 ),
51 Some(PathBuf::from("crate-dir/s-3234-0000-svh"))
52 );
53
54 // Filter out "-working"
55 assert_eq!(
56 find_source_directory_in_iter(
57 vec![
58 PathBuf::from("crate-dir/s-3234-0000-working"),
59 PathBuf::from("crate-dir/s-2234-0000-svh"),
60 PathBuf::from("crate-dir/s-1234-0000-svh")
61 ]
62 .into_iter(),
63 &already_visited
64 ),
65 Some(PathBuf::from("crate-dir/s-2234-0000-svh"))
66 );
67
68 // Handle empty
69 assert_eq!(find_source_directory_in_iter(vec![].into_iter(), &already_visited), None);
70
71 // Handle only working
72 assert_eq!(
73 find_source_directory_in_iter(
74 vec![
75 PathBuf::from("crate-dir/s-3234-0000-working"),
76 PathBuf::from("crate-dir/s-2234-0000-working"),
77 PathBuf::from("crate-dir/s-1234-0000-working")
78 ]
79 .into_iter(),
80 &already_visited
81 ),
82 None
83 );
84 }