add unit test to bootstrap:util:cache:tests
This commit is contained in:
parent
8a0a4df0c6
commit
24150eb3c0
2 changed files with 55 additions and 0 deletions
|
@ -298,3 +298,6 @@ impl Cache {
|
|||
self.0.borrow().contains_key(&TypeId::of::<S>())
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests;
|
||||
|
|
52
src/bootstrap/src/utils/cache/tests.rs
vendored
Normal file
52
src/bootstrap/src/utils/cache/tests.rs
vendored
Normal file
|
@ -0,0 +1,52 @@
|
|||
use std::path::PathBuf;
|
||||
|
||||
use crate::utils::cache::{INTERNER, Internable, TyIntern};
|
||||
|
||||
#[test]
|
||||
fn test_string_interning() {
|
||||
let s1 = INTERNER.intern_str("Hello");
|
||||
let s2 = INTERNER.intern_str("Hello");
|
||||
let s3 = INTERNER.intern_str("world");
|
||||
|
||||
assert_eq!(s1, s2, "Same strings should be interned to the same instance");
|
||||
assert_ne!(s1, s3, "Different strings should have different interned values");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_path_interning() {
|
||||
let p1 = PathBuf::from("/tmp/file").intern();
|
||||
let p2 = PathBuf::from("/tmp/file").intern();
|
||||
let p3 = PathBuf::from("/tmp/other").intern();
|
||||
|
||||
assert_eq!(p1, p2);
|
||||
assert_ne!(p1, p3);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_vec_interning() {
|
||||
let v1 = vec!["a".to_string(), "b".to_string()].intern();
|
||||
let v2 = vec!["a".to_string(), "b".to_string()].intern();
|
||||
let v3 = vec!["c".to_string()].intern();
|
||||
|
||||
assert_eq!(v1, v2);
|
||||
assert_ne!(v1, v3);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_interned_equality() {
|
||||
let s1 = INTERNER.intern_str("test");
|
||||
let s2 = INTERNER.intern_str("test");
|
||||
|
||||
assert_eq!(s1, s2);
|
||||
assert_eq!(s1, "test");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_ty_intern_intern_borrow() {
|
||||
let mut interner = TyIntern::default();
|
||||
let s1 = interner.intern_borrow("borrowed");
|
||||
let s2 = interner.intern("borrowed".to_string());
|
||||
|
||||
assert_eq!(s1, s2);
|
||||
assert_eq!(interner.get(s1), "borrowed");
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue