use os_id::{ThreadName, ThreadId}; #[test] fn should_use_current_thread() { let thread1 = ThreadId::current(); let thread2 = ThreadId::current(); assert_eq!(thread1, thread2); assert_eq!(thread1.as_raw(), thread2.as_raw()); let another_thread = std::thread::spawn(|| { ThreadId::current() }).join().unwrap(); assert_ne!(thread1, another_thread); assert_ne!(thread1.as_raw(), another_thread.as_raw()); } #[test] fn should_get_current_thread_name() { std::thread::Builder::new().name("test".to_owned()).spawn(|| { let name = os_id::thread::get_current_thread_name(); assert_eq!(name, "test"); }).unwrap().join().unwrap(); let name = os_id::thread::get_current_thread_name(); assert_ne!(name, "test"); assert_ne!(name.as_str(), Ok("test")); } #[test] fn verify_thread_name_struct() { const DATA: &str = "1234567891234567"; for idx in 0..DATA.len() { let mut buf = [0u8; 16]; buf[..idx].copy_from_slice(&DATA.as_bytes()[..idx]); let name = ThreadName::name(buf); assert_eq!(name, &DATA.as_bytes()[..idx]); assert_eq!(name.as_str(), Ok(&DATA[..idx])); } }