Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/parser/src/tests.rs')
| -rw-r--r-- | crates/parser/src/tests.rs | 47 |
1 files changed, 27 insertions, 20 deletions
diff --git a/crates/parser/src/tests.rs b/crates/parser/src/tests.rs index b837387be1..e0042fbdec 100644 --- a/crates/parser/src/tests.rs +++ b/crates/parser/src/tests.rs @@ -11,6 +11,9 @@ use expect_test::expect_file; use crate::{Edition, LexedStr, TopEntryPoint}; +#[path = "../test_data/generated/runner.rs"] +mod runner; + #[test] fn lex_ok() { for case in TestCase::list("lexer/ok") { @@ -55,16 +58,6 @@ fn parse_ok() { } #[test] -fn parse_inline_ok() { - for case in TestCase::list("parser/inline/ok") { - let _guard = stdx::panic_context::enter(format!("{:?}", case.rs)); - let (actual, errors) = parse(TopEntryPoint::SourceFile, &case.text); - assert!(!errors, "errors in an OK file {}:\n{actual}", case.rs.display()); - expect_file![case.rast].assert_eq(&actual); - } -} - -#[test] fn parse_err() { for case in TestCase::list("parser/err") { let _guard = stdx::panic_context::enter(format!("{:?}", case.rs)); @@ -74,16 +67,6 @@ fn parse_err() { } } -#[test] -fn parse_inline_err() { - for case in TestCase::list("parser/inline/err") { - let _guard = stdx::panic_context::enter(format!("{:?}", case.rs)); - let (actual, errors) = parse(TopEntryPoint::SourceFile, &case.text); - assert!(errors, "no errors in an ERR file {}:\n{actual}", case.rs.display()); - expect_file![case.rast].assert_eq(&actual) - } -} - fn parse(entry: TopEntryPoint, text: &str) -> (String, bool) { let lexed = LexedStr::new(Edition::CURRENT, text); let input = lexed.to_input(); @@ -167,3 +150,27 @@ impl TestCase { res } } + +#[track_caller] +fn run_and_expect_no_errors(path: &str) { + let path = PathBuf::from(path); + let text = std::fs::read_to_string(&path).unwrap(); + let (actual, errors) = parse(TopEntryPoint::SourceFile, &text); + assert!(!errors, "errors in an OK file {}:\n{actual}", path.display()); + let mut p = PathBuf::from(".."); + p.push(path); + p.set_extension("rast"); + expect_file![p].assert_eq(&actual) +} + +#[track_caller] +fn run_and_expect_errors(path: &str) { + let path = PathBuf::from(path); + let text = std::fs::read_to_string(&path).unwrap(); + let (actual, errors) = parse(TopEntryPoint::SourceFile, &text); + assert!(errors, "no errors in an ERR file {}:\n{actual}", path.display()); + let mut p = PathBuf::from(".."); + p.push(path); + p.set_extension("rast"); + expect_file![p].assert_eq(&actual) +} |