diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/display.rs | 71 | 
1 files changed, 71 insertions, 0 deletions
diff --git a/tests/display.rs b/tests/display.rs new file mode 100644 index 0000000..9a8ef2e --- /dev/null +++ b/tests/display.rs @@ -0,0 +1,71 @@ +/* +#[test] +fn sinks_are_equivalent() { +    use yaxpeax_arch::display::NoColorsSink; +    use yaxpeax_arch::testkit::DisplaySinkWriteComparator; + +    let mut bare = String::new(); +    let mut through_sink = String::new(); +    for i in 0..u64::MAX { +        bare.clear(); +        through_sink.clear(); +        let mut out = NoColorsSink { +            out: &mut through_sink +        }; +        let mut comparator = DisplaySinkWriteComparator { +            sink1: &mut out, +            sink1_check: |sink| { sink.out.as_str() }, +            sink2: &mut bare, +            sink2_check: |sink| { sink.as_str() }, +        }; +    } +} +*/ + +#[cfg(feature="alloc")] +#[test] +fn display_sink_write_hex_helpers() { +    use yaxpeax_arch::display::{DisplaySink}; + +    // for u8/i8/u16/i16 we can exhaustively test. we'll leave the rest for fuzzers. +    let mut buf = String::new(); +    for i in 0..=u8::MAX { +        buf.clear(); +        buf.write_u8(i).expect("write succeeds"); +        assert_eq!(buf, format!("{:x}", i)); + +        buf.clear(); +        buf.write_prefixed_u8(i).expect("write succeeds"); +        assert_eq!(buf, format!("0x{:x}", i)); + +        let expected = if (i as i8) < 0 { +            format!("-0x{:x}", (i as i8).unsigned_abs()) +        } else { +            format!("0x{:x}", i) +        }; + +        buf.clear(); +        buf.write_prefixed_i8(i as i8).expect("write succeeds"); +        assert_eq!(buf, expected); +    } + +    for i in 0..=u16::MAX { +        buf.clear(); +        buf.write_u16(i).expect("write succeeds"); +        assert_eq!(buf, format!("{:x}", i)); + +        buf.clear(); +        buf.write_prefixed_u16(i).expect("write succeeds"); +        assert_eq!(buf, format!("0x{:x}", i)); + +        let expected = if (i as i16) < 0 { +            format!("-0x{:x}", (i as i16).unsigned_abs()) +        } else { +            format!("0x{:x}", i) +        }; + +        buf.clear(); +        buf.write_prefixed_i16(i as i16).expect("write succeeds"); +        assert_eq!(buf, expected); +    } +}  | 
