mono-fmt/tests/base.rs
2022-10-02 12:02:59 +02:00

31 lines
687 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);
}