From 88cce3303b5b0e0c69604c6d6d9ac603f083a540 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Sat, 13 Mar 2021 14:14:58 -0500 Subject: better test error messages --- tests/fixtures/mod.rs | 2 ++ tests/input.rs | 18 ++++++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) (limited to 'tests') diff --git a/tests/fixtures/mod.rs b/tests/fixtures/mod.rs index ef5a742..08f09c1 100644 --- a/tests/fixtures/mod.rs +++ b/tests/fixtures/mod.rs @@ -99,6 +99,7 @@ impl BuiltFixture { } #[allow(dead_code)] +#[track_caller] pub fn read(f: &mut std::fs::File) -> Vec { assert!(read_ready(f.as_raw_fd())); let mut buf = vec![0u8; 1024]; @@ -108,6 +109,7 @@ pub fn read(f: &mut std::fs::File) -> Vec { } #[allow(dead_code)] +#[track_caller] pub fn read_line(f: &mut std::io::BufReader<&mut std::fs::File>) -> Vec { assert!(!f.buffer().is_empty() || read_ready(f.get_ref().as_raw_fd())); let mut buf = vec![]; diff --git a/tests/input.rs b/tests/input.rs index b2a8b28..033499f 100644 --- a/tests/input.rs +++ b/tests/input.rs @@ -198,14 +198,17 @@ fn run_input_test( }); } +#[track_caller] fn write(f: &mut std::fs::File, key: textmode::Key) { f.write_all(&key.into_bytes()).unwrap(); } +#[track_caller] fn read(f: &mut std::io::BufReader<&mut std::fs::File>) -> String { std::string::String::from_utf8(fixtures::read_line(f)).unwrap() } +#[track_caller] fn assert_line( f: &mut std::io::BufReader<&mut std::fs::File>, expected: &str, @@ -213,7 +216,18 @@ fn assert_line( assert_eq!(read(f), format!("{}\r\n", expected)); } +#[track_caller] fn assert_no_more_lines(f: &mut std::io::BufReader<&mut std::fs::File>) { - assert!(!fixtures::read_ready(f.get_ref().as_raw_fd())); - assert!(f.buffer().is_empty()); + if fixtures::read_ready(f.get_ref().as_raw_fd()) || !f.buffer().is_empty() + { + use std::io::Read as _; + let mut buf = vec![0; 4096]; + let bytes = f.read(&mut buf).unwrap(); + buf.truncate(bytes); + panic!( + "got bytes: \"{}\"({:?})", + std::string::String::from_utf8_lossy(&buf), + buf + ); + } } -- cgit v1.2.3-54-g00ecf