Files

48 lines
1.2 KiB
Rust

#![cfg(feature = "checked_conversions")]
use std::borrow::Cow;
use std::ffi::OsStr;
use getrandom::getrandom;
use os_str_bytes::OsStrBytes;
use os_str_bytes::OsStringBytes;
mod common;
mod random_common;
use random_common::ITERATIONS;
use random_common::SMALL_LENGTH;
const LARGE_LENGTH: usize = 1024;
#[test]
fn test_bytes() -> Result<(), getrandom::Error> {
let os_string = random_common::random_os_string(LARGE_LENGTH)?;
let string = os_string.to_raw_bytes();
assert_eq!(os_string.len(), string.len());
assert_eq!(Ok(Cow::Borrowed(&*os_string)), common::from_bytes(&string));
Ok(())
}
#[test]
fn test_vec() -> Result<(), getrandom::Error> {
let os_string = random_common::random_os_string(LARGE_LENGTH)?;
let string = os_string.clone().into_raw_vec();
assert_eq!(os_string.len(), string.len());
assert_eq!(Ok(os_string), common::from_vec(string));
Ok(())
}
#[test]
fn test_lossless() -> Result<(), getrandom::Error> {
for _ in 0..ITERATIONS {
let mut string = vec![0; SMALL_LENGTH];
getrandom(&mut string)?;
if let Ok(os_string) = OsStr::from_raw_bytes(&string) {
assert_eq!(string, &*os_string.to_raw_bytes());
}
}
Ok(())
}