xref: /third_party/rust/crates/os_str_bytes/tests/random.rs (revision cdb3e2c8)
  • Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
  • only in /third_party/rust/crates/os_str_bytes/tests/
1#![cfg(feature = "checked_conversions")]
2
3use std::borrow::Cow;
4use std::ffi::OsStr;
5
6use getrandom::getrandom;
7
8use os_str_bytes::OsStrBytes;
9use os_str_bytes::OsStringBytes;
10
11mod common;
12
13mod random_common;
14use random_common::ITERATIONS;
15use random_common::SMALL_LENGTH;
16
17const LARGE_LENGTH: usize = 1024;
18
19#[test]
20fn test_bytes() -> Result<(), getrandom::Error> {
21    let os_string = random_common::random_os_string(LARGE_LENGTH)?;
22    let string = os_string.to_raw_bytes();
23    assert_eq!(os_string.len(), string.len());
24    assert_eq!(Ok(Cow::Borrowed(&*os_string)), common::from_bytes(&string));
25    Ok(())
26}
27
28#[test]
29fn test_vec() -> Result<(), getrandom::Error> {
30    let os_string = random_common::random_os_string(LARGE_LENGTH)?;
31    let string = os_string.clone().into_raw_vec();
32    assert_eq!(os_string.len(), string.len());
33    assert_eq!(Ok(os_string), common::from_vec(string));
34    Ok(())
35}
36
37#[test]
38fn test_lossless() -> Result<(), getrandom::Error> {
39    for _ in 0..ITERATIONS {
40        let mut string = vec![0; SMALL_LENGTH];
41        getrandom(&mut string)?;
42        if let Ok(os_string) = OsStr::from_raw_bytes(&string) {
43            assert_eq!(string, &*os_string.to_raw_bytes());
44        }
45    }
46    Ok(())
47}
48

Indexes created Thu Nov 07 10:32:03 CST 2024