mirror of
https://github.com/Noratrieb/mono-fmt.git
synced 2026-01-14 15:25:08 +01:00
38 lines
815 B
Rust
38 lines
815 B
Rust
use std::cell::Cell;
|
|
|
|
#[macro_use]
|
|
extern crate mono_fmt;
|
|
|
|
#[test]
|
|
fn test_format_flags() {
|
|
// No residual flags left by pointer formatting
|
|
let p = "".as_ptr();
|
|
assert_eq!(format!("{:p} {:x}", p, 16), format!("{p:p} 10"));
|
|
|
|
assert_eq!(format!("{: >3}", 'a'), " a");
|
|
}
|
|
|
|
#[test]
|
|
fn test_pointer_formats_data_pointer() {
|
|
let b: &[u8] = b"";
|
|
let s: &str = "";
|
|
assert_eq!(format!("{s:p}"), format!("{:p}", s.as_ptr()));
|
|
assert_eq!(format!("{b:p}"), format!("{:p}", b.as_ptr()));
|
|
}
|
|
|
|
#[test]
|
|
fn only_eval_once() {
|
|
let evil = Cell::new(0);
|
|
let _ = format!("{0} {0}", {
|
|
evil.set(evil.get() + 1);
|
|
0
|
|
});
|
|
assert_eq!(evil.get(), 1);
|
|
}
|
|
|
|
#[test]
|
|
fn dont_move() {
|
|
let string = "uwu".to_string();
|
|
let _ = format!("{string}");
|
|
assert_eq!("uwu", string);
|
|
}
|