Run yaml-test-suite over both input variants.

This commit is contained in:
Ethiraric 2024-10-20 16:09:29 +02:00
parent 6069e1d0e3
commit 0f71c8e68a
2 changed files with 18 additions and 1 deletions

View file

@ -209,6 +209,7 @@ pub trait Input {
);
}
'#' => {
self.skip(); // Skip over '#'
while !is_breakz(self.look_ch()) {
self.skip();
chars_consumed += 1;

View file

@ -137,9 +137,25 @@ fn load_tests_from_file(entry: &DirEntry) -> Result<Vec<Test<YamlTest>>> {
}
fn parse_to_events(source: &str) -> Result<EventReporter, ScanError> {
let mut reporter = EventReporter::default();
// Parse as string
let mut str_events = vec![];
for x in Parser::new_from_str(source) {
let x = x?;
str_events.push(x);
}
// Parse as iter
let mut iter_events = vec![];
for x in Parser::new_from_iter(source.chars()) {
let x = x?;
iter_events.push(x);
}
// No matter the input, we should parse into the same events.
assert_eq!(str_events, iter_events);
// Put events into the reporter, for comparison with the test suite.
let mut reporter = EventReporter::default();
for x in str_events {
reporter.on_event(x.0, x.1);
}
Ok(reporter)