Skip to content

Commit 266864f

Browse files
committed
Show more error details in parse tests failures
1 parent a07590c commit 266864f

File tree

4 files changed

+13
-15
lines changed

4 files changed

+13
-15
lines changed

gix-actor/src/signature/decode.rs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -86,9 +86,7 @@ mod tests {
8686

8787
use crate::{signature, SignatureRef, Time};
8888

89-
fn decode<'i>(
90-
i: &mut &'i [u8],
91-
) -> PResult<SignatureRef<'i>, winnow::error::VerboseError<&'i [u8], &'static str>> {
89+
fn decode<'i>(i: &mut &'i [u8]) -> PResult<SignatureRef<'i>, winnow::error::TreeError<&'i [u8], &'static str>> {
9290
signature::decode.parse_next(i)
9391
}
9492

@@ -165,7 +163,7 @@ mod tests {
165163
.map_err(to_bstr_err)
166164
.expect_err("parse fails as > is missing")
167165
.to_string(),
168-
"Parse error:\nslice at: 12345 -1215\nin section '<email>', at: 12345 -1215\nin section '<name> <<email>>', at: 12345 -1215\nin section '<name> <<email>> <timestamp> <+|-><HHMM>', at: 12345 -1215\n"
166+
"in slice at ' 12345 -1215'\n 0: <email> at ' 12345 -1215'\n 1: <name> <<email>> at ' 12345 -1215'\n 2: <name> <<email>> <timestamp> <+|-><HHMM> at ' 12345 -1215'\n"
169167
);
170168
}
171169

@@ -176,7 +174,7 @@ mod tests {
176174
.map_err(to_bstr_err)
177175
.expect_err("parse fails as > is missing")
178176
.to_string(),
179-
"Parse error:\npredicate verification at: abc -1215\nin section '<timestamp>', at: abc -1215\nin section '<name> <<email>> <timestamp> <+|-><HHMM>', at: abc -1215\n"
177+
"in predicate verification at 'abc -1215'\n 0: <timestamp> at 'abc -1215'\n 1: <name> <<email>> <timestamp> <+|-><HHMM> at 'abc -1215'\n"
180178
);
181179
}
182180
}

gix-ref/src/store/file/log/line.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -181,14 +181,14 @@ pub mod decode {
181181

182182
mod invalid {
183183
use gix_testtools::to_bstr_err;
184-
use winnow::error::VerboseError;
184+
use winnow::error::TreeError;
185185
use winnow::prelude::*;
186186

187187
use super::one;
188188

189189
#[test]
190190
fn completely_bogus_shows_error_with_context() {
191-
let err = one::<VerboseError<&[u8], &'static str>>
191+
let err = one::<TreeError<&[u8], &'static str>>
192192
.parse_peek(b"definitely not a log entry")
193193
.map_err(to_bstr_err)
194194
.expect_err("this should fail");
@@ -198,7 +198,7 @@ pub mod decode {
198198
#[test]
199199
fn missing_whitespace_between_signature_and_message() {
200200
let line = "0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 one <[email protected]> 1234567890 -0000message";
201-
let err = one::<VerboseError<&[u8], &'static str>>
201+
let err = one::<TreeError<&[u8], &'static str>>
202202
.parse_peek(line.as_bytes())
203203
.map_err(to_bstr_err)
204204
.expect_err("this should fail");

gix-ref/src/store/packed/decode/tests.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
type Result = std::result::Result<(), Box<dyn std::error::Error>>;
22

33
mod reference {
4-
use winnow::error::VerboseError;
4+
use winnow::error::TreeError;
55
use winnow::prelude::*;
66

77
use super::Result;
@@ -32,7 +32,7 @@ mod reference {
3232
fn two_refs_in_a_row() -> Result {
3333
let input: &[u8] = b"d53c4b0f91f1b29769c9430f2d1c0bcab1170c75 refs/heads/alternates-after-packs-and-loose
3434
^e9cdc958e7ce2290e2d7958cdb5aa9323ef35d37\neaae9c1bc723209d793eb93f5587fa2604d5cd92 refs/heads/avoid-double-lookup\n";
35-
let (input, parsed) = decode::reference::<VerboseError<_>>.parse_peek(input).unwrap();
35+
let (input, parsed) = decode::reference::<TreeError<_>>.parse_peek(input).unwrap();
3636

3737
assert_eq!(
3838
parsed,
@@ -45,7 +45,7 @@ mod reference {
4545
assert_eq!(parsed.target(), hex_to_id("d53c4b0f91f1b29769c9430f2d1c0bcab1170c75"));
4646
assert_eq!(parsed.object(), hex_to_id("e9cdc958e7ce2290e2d7958cdb5aa9323ef35d37"));
4747

48-
let (input, parsed) = decode::reference::<VerboseError<_>>.parse_peek(input).unwrap();
48+
let (input, parsed) = decode::reference::<TreeError<_>>.parse_peek(input).unwrap();
4949
assert!(input.is_empty(), "exhausted");
5050
assert_eq!(
5151
parsed.name,
@@ -87,7 +87,7 @@ mod header {
8787
#[test]
8888
fn valid_fully_peeled_stored() -> Result {
8989
let input: &[u8] = b"# pack-refs with: peeled fully-peeled sorted \nsomething else";
90-
let (rest, header) = decode::header::<winnow::error::VerboseError<_, &'static str>>
90+
let (rest, header) = decode::header::<winnow::error::TreeError<_, &'static str>>
9191
.parse_peek(input)
9292
.map_err(to_bstr_err)?;
9393

tests/tools/src/lib.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ pub use once_cell;
1919
use once_cell::sync::Lazy;
2020
use parking_lot::Mutex;
2121
pub use tempfile;
22-
use winnow::error::VerboseError;
22+
use winnow::error::TreeError;
2323

2424
/// A result type to allow using the try operator `?` in unit tests.
2525
///
@@ -693,8 +693,8 @@ fn extract_archive(
693693

694694
/// Transform a verbose bom errors from raw bytes into a `BStr` to make printing/debugging human-readable.
695695
pub fn to_bstr_err<'i>(
696-
err: winnow::error::ErrMode<VerboseError<&'i [u8], &'static str>>,
697-
) -> VerboseError<&'i BStr, &'static str> {
696+
err: winnow::error::ErrMode<TreeError<&'i [u8], &'static str>>,
697+
) -> TreeError<&'i BStr, &'static str> {
698698
let err = err.into_inner().expect("not a streaming parser");
699699
err.map_input(ByteSlice::as_bstr)
700700
}

0 commit comments

Comments
 (0)