diff options
Diffstat (limited to 'third_party/rust/wast/tests')
110 files changed, 705 insertions, 0 deletions
diff --git a/third_party/rust/wast/tests/annotations.rs b/third_party/rust/wast/tests/annotations.rs new file mode 100644 index 0000000000..0b3a0713f0 --- /dev/null +++ b/third_party/rust/wast/tests/annotations.rs @@ -0,0 +1,200 @@ +use wasmparser::*; + +#[test] +fn name_annotations() -> anyhow::Result<()> { + assert_module_name("foo", r#"(module $foo)"#)?; + assert_module_name("foo", r#"(module (@name "foo"))"#)?; + assert_module_name("foo", r#"(module $bar (@name "foo"))"#)?; + assert_module_name("foo bar", r#"(module $bar (@name "foo bar"))"#)?; + Ok(()) +} + +fn assert_module_name(expected_name: &str, wat: &str) -> anyhow::Result<()> { + let wasm = wat::parse_str(wat)?; + let mut found = false; + for s in get_name_section(&wasm)? { + match s? { + Name::Module { name, .. } => { + assert_eq!(name, expected_name); + found = true; + } + _ => {} + } + } + assert!(found); + Ok(()) +} + +#[test] +fn func_annotations() -> anyhow::Result<()> { + assert_func_name("foo", r#"(module (func $foo))"#)?; + assert_func_name("foo", r#"(module (func (@name "foo")))"#)?; + assert_func_name("foo", r#"(module (func $bar (@name "foo")))"#)?; + assert_func_name("foo bar", r#"(module (func $bar (@name "foo bar")))"#)?; + Ok(()) +} + +fn assert_func_name(name: &str, wat: &str) -> anyhow::Result<()> { + let wasm = wat::parse_str(wat)?; + let mut found = false; + for s in get_name_section(&wasm)? { + match s? { + Name::Function(n) => { + let naming = n.into_iter().next().unwrap()?; + assert_eq!(naming.index, 0); + assert_eq!(naming.name, name); + found = true; + } + _ => {} + } + } + assert!(found); + Ok(()) +} + +#[test] +fn local_annotations() -> anyhow::Result<()> { + assert_local_name("foo", r#"(module (func (param $foo i32)))"#)?; + assert_local_name("foo", r#"(module (func (local $foo i32)))"#)?; + assert_local_name("foo", r#"(module (func (param (@name "foo") i32)))"#)?; + assert_local_name("foo", r#"(module (func (local (@name "foo") i32)))"#)?; + assert_local_name("foo", r#"(module (func (param $bar (@name "foo") i32)))"#)?; + assert_local_name("foo", r#"(module (func (local $bar (@name "foo") i32)))"#)?; + assert_local_name( + "foo bar", + r#"(module (func (param $bar (@name "foo bar") i32)))"#, + )?; + assert_local_name( + "foo bar", + r#"(module (func (local $bar (@name "foo bar") i32)))"#, + )?; + Ok(()) +} + +fn assert_local_name(name: &str, wat: &str) -> anyhow::Result<()> { + let wasm = wat::parse_str(wat)?; + let mut found = false; + for s in get_name_section(&wasm)? { + match s? { + Name::Local(n) => { + let naming = n + .into_iter() + .next() + .unwrap()? + .names + .into_iter() + .next() + .unwrap()?; + assert_eq!(naming.index, 0); + assert_eq!(naming.name, name); + found = true; + } + _ => {} + } + } + assert!(found); + Ok(()) +} + +fn get_name_section(wasm: &[u8]) -> anyhow::Result<NameSectionReader<'_>> { + for payload in Parser::new(0).parse_all(&wasm) { + if let Payload::CustomSection(c) = payload? { + if c.name() == "name" { + return Ok(NameSectionReader::new(c.data(), c.data_offset())?); + } + } + } + panic!("no name section found"); +} + +#[test] +fn custom_section_order() -> anyhow::Result<()> { + let bytes = wat::parse_str( + r#" + (module + (@custom "A" "aaa") + (type (func)) + (@custom "B" (after func) "bbb") + (@custom "C" (before func) "ccc") + (@custom "D" (after last) "ddd") + (table 10 funcref) + (func (type 0)) + (@custom "E" (after import) "eee") + (@custom "F" (before type) "fff") + (@custom "G" (after data) "ggg") + (@custom "H" (after code) "hhh") + (@custom "I" (after func) "iii") + (@custom "J" (before func) "jjj") + (@custom "K" (before first) "kkk") + ) + "#, + )?; + macro_rules! assert_matches { + ($a:expr, $b:pat $(if $cond:expr)? $(,)?) => { + match &$a { + $b $(if $cond)? => {} + a => panic!("`{:?}` doesn't match `{}`", a, stringify!($b)), + } + }; + } + let wasm = Parser::new(0) + .parse_all(&bytes) + .collect::<Result<Vec<_>>>()?; + assert_matches!(wasm[0], Payload::Version { .. }); + assert_matches!( + wasm[1], + Payload::CustomSection(c) if c.name() == "K" + ); + assert_matches!( + wasm[2], + Payload::CustomSection(c) if c.name() == "F" + ); + assert_matches!(wasm[3], Payload::TypeSection(_)); + assert_matches!( + wasm[4], + Payload::CustomSection(c) if c.name() == "E" + ); + assert_matches!( + wasm[5], + Payload::CustomSection(c) if c.name() == "C" + ); + assert_matches!( + wasm[6], + Payload::CustomSection(c) if c.name() == "J" + ); + assert_matches!(wasm[7], Payload::FunctionSection(_)); + assert_matches!( + wasm[8], + Payload::CustomSection(c) if c.name() == "B" + ); + assert_matches!( + wasm[9], + Payload::CustomSection(c) if c.name() == "I" + ); + assert_matches!(wasm[10], Payload::TableSection(_)); + assert_matches!(wasm[11], Payload::CodeSectionStart { .. }); + assert_matches!(wasm[12], Payload::CodeSectionEntry { .. }); + assert_matches!( + wasm[13], + Payload::CustomSection(c) if c.name() == "H" + ); + assert_matches!( + wasm[14], + Payload::CustomSection(c) if c.name() == "G" + ); + assert_matches!( + wasm[15], + Payload::CustomSection(c) if c.name() == "A" + ); + assert_matches!( + wasm[16], + Payload::CustomSection(c) if c.name() == "D" + ); + + match &wasm[17] { + Payload::End(x) if *x == bytes.len() => {} + p => panic!("`{:?}` doesn't match expected length of {}", p, bytes.len()), + } + + Ok(()) +} diff --git a/third_party/rust/wast/tests/comments.rs b/third_party/rust/wast/tests/comments.rs new file mode 100644 index 0000000000..97252650be --- /dev/null +++ b/third_party/rust/wast/tests/comments.rs @@ -0,0 +1,76 @@ +use wast::parser::{self, Parse, ParseBuffer, Parser, Result}; + +pub struct Comments<'a> { + comments: Vec<&'a str>, +} + +impl<'a> Parse<'a> for Comments<'a> { + fn parse(parser: Parser<'a>) -> Result<Comments<'a>> { + let comments = parser.step(|mut cursor| { + let mut comments = Vec::new(); + loop { + let (comment, c) = match cursor.comment() { + Some(pair) => pair, + None => break, + }; + cursor = c; + comments.push(if comment.starts_with(";;") { + &comment[2..] + } else { + &comment[2..comment.len() - 2] + }); + } + Ok((comments, cursor)) + })?; + Ok(Comments { comments }) + } +} + +pub struct Documented<'a, T> { + comments: Comments<'a>, + item: T, +} + +impl<'a, T: Parse<'a>> Parse<'a> for Documented<'a, T> { + fn parse(parser: Parser<'a>) -> Result<Self> { + let comments = parser.parse()?; + let item = parser.parens(T::parse)?; + Ok(Documented { comments, item }) + } +} + +#[test] +fn parse_comments() -> anyhow::Result<()> { + let buf = ParseBuffer::new( + r#" +;; hello +(; again ;) +(module) + "#, + )?; + + let d: Documented<wast::core::Module> = parser::parse(&buf)?; + assert_eq!(d.comments.comments, vec![" hello", " again "]); + drop(d.item); + + let buf = ParseBuffer::new( + r#" +;; this +(; is +on +multiple;) + + +;; lines +(func) + "#, + )?; + + let d: Documented<wast::core::Func> = parser::parse(&buf)?; + assert_eq!( + d.comments.comments, + vec![" this", " is\non\nmultiple", " lines"] + ); + drop(d.item); + Ok(()) +} diff --git a/third_party/rust/wast/tests/parse-fail.rs b/third_party/rust/wast/tests/parse-fail.rs new file mode 100644 index 0000000000..3ae1817a4a --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail.rs @@ -0,0 +1,98 @@ +//! A test suite to parse everything in `parse-fail` and assert that it matches +//! the `*.err` file it generates. +//! +//! Use `BLESS=1` in the environment to auto-update `*.err` files. Be sure to +//! look at the diff! + +use rayon::prelude::*; +use std::env; +use std::path::{Path, PathBuf}; + +fn main() { + let mut tests = Vec::new(); + find_tests("tests/parse-fail".as_ref(), &mut tests); + let filter = std::env::args().nth(1); + + let bless = env::var("BLESS").is_ok(); + let tests = tests + .iter() + .filter(|test| { + if let Some(filter) = &filter { + if let Some(s) = test.file_name().and_then(|s| s.to_str()) { + if !s.contains(filter) { + return false; + } + } + } + true + }) + .collect::<Vec<_>>(); + + println!("running {} tests\n", tests.len()); + + let errors = tests + .par_iter() + .filter_map(|test| run_test(test, bless).err()) + .collect::<Vec<_>>(); + + if !errors.is_empty() { + for msg in errors.iter() { + eprintln!("{}", msg); + } + + panic!("{} tests failed", errors.len()) + } + + println!("test result: ok. {} passed\n", tests.len()); +} + +fn run_test(test: &Path, bless: bool) -> anyhow::Result<()> { + let err = match wat::parse_file(test) { + Ok(_) => anyhow::bail!("{} parsed successfully", test.display()), + Err(e) => e.to_string() + "\n", + }; + let assert = test.with_extension("wat.err"); + if bless { + std::fs::write(assert, err.to_string())?; + return Ok(()); + } + + // Ignore CRLF line ending and force always `\n` + let assert = std::fs::read_to_string(assert) + .unwrap_or(String::new()) + .replace("\r\n", "\n"); + + // Compare normalize verisons which handles weirdness like path differences + if normalize(&assert) == normalize(&err) { + return Ok(()); + } + + anyhow::bail!( + "errors did not match:\n\nexpected:\n\t{}\nactual:\n\t{}\n", + tab(&assert), + tab(&err), + ); + + fn normalize(s: &str) -> String { + s.replace("\\", "/") + } + + fn tab(s: &str) -> String { + s.replace("\n", "\n\t") + } +} + +fn find_tests(path: &Path, tests: &mut Vec<PathBuf>) { + for f in path.read_dir().unwrap() { + let f = f.unwrap(); + if f.file_type().unwrap().is_dir() { + find_tests(&f.path(), tests); + continue; + } + match f.path().extension().and_then(|s| s.to_str()) { + Some("wat") => {} + _ => continue, + } + tests.push(f.path()); + } +} diff --git a/third_party/rust/wast/tests/parse-fail/bad-index.wat b/third_party/rust/wast/tests/parse-fail/bad-index.wat new file mode 100644 index 0000000000..34262539a5 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/bad-index.wat @@ -0,0 +1 @@ +(func br_on_null $s) diff --git a/third_party/rust/wast/tests/parse-fail/bad-index.wat.err b/third_party/rust/wast/tests/parse-fail/bad-index.wat.err new file mode 100644 index 0000000000..f380bddec1 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/bad-index.wat.err @@ -0,0 +1,5 @@ +unknown label: failed to find name `$s` + --> tests/parse-fail/bad-index.wat:1:18 + | + 1 | (func br_on_null $s) + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/bad-name.wat b/third_party/rust/wast/tests/parse-fail/bad-name.wat new file mode 100644 index 0000000000..ce74a7d1cf --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/bad-name.wat @@ -0,0 +1 @@ +(module (@name)) diff --git a/third_party/rust/wast/tests/parse-fail/bad-name.wat.err b/third_party/rust/wast/tests/parse-fail/bad-name.wat.err new file mode 100644 index 0000000000..f20e2039b1 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/bad-name.wat.err @@ -0,0 +1,5 @@ +expected a string + --> tests/parse-fail/bad-name.wat:1:15 + | + 1 | (module (@name)) + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/bad-name2.wat b/third_party/rust/wast/tests/parse-fail/bad-name2.wat new file mode 100644 index 0000000000..7786f25ac6 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/bad-name2.wat @@ -0,0 +1,2 @@ +(module (@name 2)) + diff --git a/third_party/rust/wast/tests/parse-fail/bad-name2.wat.err b/third_party/rust/wast/tests/parse-fail/bad-name2.wat.err new file mode 100644 index 0000000000..f937e98bfd --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/bad-name2.wat.err @@ -0,0 +1,5 @@ +expected a string + --> tests/parse-fail/bad-name2.wat:1:16 + | + 1 | (module (@name 2)) + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/bad-name3.wat b/third_party/rust/wast/tests/parse-fail/bad-name3.wat new file mode 100644 index 0000000000..02c8c5de04 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/bad-name3.wat @@ -0,0 +1 @@ +(module (func (@name 2))) diff --git a/third_party/rust/wast/tests/parse-fail/bad-name3.wat.err b/third_party/rust/wast/tests/parse-fail/bad-name3.wat.err new file mode 100644 index 0000000000..43c57e7591 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/bad-name3.wat.err @@ -0,0 +1,5 @@ +expected a string + --> tests/parse-fail/bad-name3.wat:1:22 + | + 1 | (module (func (@name 2))) + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/block1.wat b/third_party/rust/wast/tests/parse-fail/block1.wat new file mode 100644 index 0000000000..2c1d238e10 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/block1.wat @@ -0,0 +1 @@ +(; diff --git a/third_party/rust/wast/tests/parse-fail/block1.wat.err b/third_party/rust/wast/tests/parse-fail/block1.wat.err new file mode 100644 index 0000000000..8544f334ac --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/block1.wat.err @@ -0,0 +1,5 @@ +unterminated block comment + --> tests/parse-fail/block1.wat:1:1 + | + 1 | (; + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/block2.wat b/third_party/rust/wast/tests/parse-fail/block2.wat new file mode 100644 index 0000000000..5bfa511a19 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/block2.wat @@ -0,0 +1 @@ +(; (;;) diff --git a/third_party/rust/wast/tests/parse-fail/block2.wat.err b/third_party/rust/wast/tests/parse-fail/block2.wat.err new file mode 100644 index 0000000000..fdf1ce27a2 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/block2.wat.err @@ -0,0 +1,5 @@ +unterminated block comment + --> tests/parse-fail/block2.wat:1:1 + | + 1 | (; (;;) + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/block3.wat b/third_party/rust/wast/tests/parse-fail/block3.wat new file mode 100644 index 0000000000..beab65b9a3 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/block3.wat @@ -0,0 +1 @@ +(; ; diff --git a/third_party/rust/wast/tests/parse-fail/block3.wat.err b/third_party/rust/wast/tests/parse-fail/block3.wat.err new file mode 100644 index 0000000000..d12a534110 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/block3.wat.err @@ -0,0 +1,5 @@ +unterminated block comment + --> tests/parse-fail/block3.wat:1:1 + | + 1 | (; ; + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/confusing-block-comment0.wat b/third_party/rust/wast/tests/parse-fail/confusing-block-comment0.wat new file mode 100644 index 0000000000..d336f4ce97 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-block-comment0.wat @@ -0,0 +1 @@ +(module) (; ;) diff --git a/third_party/rust/wast/tests/parse-fail/confusing-block-comment0.wat.err b/third_party/rust/wast/tests/parse-fail/confusing-block-comment0.wat.err new file mode 100644 index 0000000000..964cb84eb2 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-block-comment0.wat.err @@ -0,0 +1,5 @@ +likely-confusing unicode character found '\u{202a}' + --> tests/parse-fail/confusing-block-comment0.wat:1:13 + | + 1 | (module) (; ;) + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/confusing-block-comment1.wat b/third_party/rust/wast/tests/parse-fail/confusing-block-comment1.wat new file mode 100644 index 0000000000..29d83f46da --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-block-comment1.wat @@ -0,0 +1 @@ +(module) (; ;) diff --git a/third_party/rust/wast/tests/parse-fail/confusing-block-comment1.wat.err b/third_party/rust/wast/tests/parse-fail/confusing-block-comment1.wat.err new file mode 100644 index 0000000000..5f6a8670e9 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-block-comment1.wat.err @@ -0,0 +1,5 @@ +likely-confusing unicode character found '\u{202b}' + --> tests/parse-fail/confusing-block-comment1.wat:1:13 + | + 1 | (module) (; ;) + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/confusing-block-comment2.wat b/third_party/rust/wast/tests/parse-fail/confusing-block-comment2.wat new file mode 100644 index 0000000000..ee0d705a8c --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-block-comment2.wat @@ -0,0 +1 @@ +(module) (; ;) diff --git a/third_party/rust/wast/tests/parse-fail/confusing-block-comment2.wat.err b/third_party/rust/wast/tests/parse-fail/confusing-block-comment2.wat.err new file mode 100644 index 0000000000..08f77e4244 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-block-comment2.wat.err @@ -0,0 +1,5 @@ +likely-confusing unicode character found '\u{202d}' + --> tests/parse-fail/confusing-block-comment2.wat:1:13 + | + 1 | (module) (; ;) + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/confusing-block-comment3.wat b/third_party/rust/wast/tests/parse-fail/confusing-block-comment3.wat new file mode 100644 index 0000000000..cd849f21bb --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-block-comment3.wat @@ -0,0 +1 @@ +(module) (; ;) diff --git a/third_party/rust/wast/tests/parse-fail/confusing-block-comment3.wat.err b/third_party/rust/wast/tests/parse-fail/confusing-block-comment3.wat.err new file mode 100644 index 0000000000..5da080d3b7 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-block-comment3.wat.err @@ -0,0 +1,5 @@ +likely-confusing unicode character found '\u{202e}' + --> tests/parse-fail/confusing-block-comment3.wat:1:13 + | + 1 | (module) (; ;) + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/confusing-block-comment4.wat b/third_party/rust/wast/tests/parse-fail/confusing-block-comment4.wat new file mode 100644 index 0000000000..6c64d834ad --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-block-comment4.wat @@ -0,0 +1 @@ +(module) (; ;) diff --git a/third_party/rust/wast/tests/parse-fail/confusing-block-comment4.wat.err b/third_party/rust/wast/tests/parse-fail/confusing-block-comment4.wat.err new file mode 100644 index 0000000000..3f3aacf9fa --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-block-comment4.wat.err @@ -0,0 +1,5 @@ +likely-confusing unicode character found '\u{2066}' + --> tests/parse-fail/confusing-block-comment4.wat:1:13 + | + 1 | (module) (; ;) + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/confusing-block-comment5.wat b/third_party/rust/wast/tests/parse-fail/confusing-block-comment5.wat new file mode 100644 index 0000000000..f354821595 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-block-comment5.wat @@ -0,0 +1 @@ +(module) (; ;) diff --git a/third_party/rust/wast/tests/parse-fail/confusing-block-comment5.wat.err b/third_party/rust/wast/tests/parse-fail/confusing-block-comment5.wat.err new file mode 100644 index 0000000000..547c85961b --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-block-comment5.wat.err @@ -0,0 +1,5 @@ +likely-confusing unicode character found '\u{2067}' + --> tests/parse-fail/confusing-block-comment5.wat:1:13 + | + 1 | (module) (; ;) + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/confusing-block-comment6.wat b/third_party/rust/wast/tests/parse-fail/confusing-block-comment6.wat new file mode 100644 index 0000000000..c394085a6c --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-block-comment6.wat @@ -0,0 +1 @@ +(module) (; ;) diff --git a/third_party/rust/wast/tests/parse-fail/confusing-block-comment6.wat.err b/third_party/rust/wast/tests/parse-fail/confusing-block-comment6.wat.err new file mode 100644 index 0000000000..0cbc9d70bf --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-block-comment6.wat.err @@ -0,0 +1,5 @@ +likely-confusing unicode character found '\u{2068}' + --> tests/parse-fail/confusing-block-comment6.wat:1:13 + | + 1 | (module) (; ;) + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/confusing-block-comment7.wat b/third_party/rust/wast/tests/parse-fail/confusing-block-comment7.wat new file mode 100644 index 0000000000..2977dcf187 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-block-comment7.wat @@ -0,0 +1 @@ +(module) (; ;) diff --git a/third_party/rust/wast/tests/parse-fail/confusing-block-comment7.wat.err b/third_party/rust/wast/tests/parse-fail/confusing-block-comment7.wat.err new file mode 100644 index 0000000000..5242574415 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-block-comment7.wat.err @@ -0,0 +1,5 @@ +likely-confusing unicode character found '\u{206c}' + --> tests/parse-fail/confusing-block-comment7.wat:1:13 + | + 1 | (module) (; ;) + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/confusing-block-comment8.wat b/third_party/rust/wast/tests/parse-fail/confusing-block-comment8.wat new file mode 100644 index 0000000000..3d44c01486 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-block-comment8.wat @@ -0,0 +1 @@ +(module) (; ;) diff --git a/third_party/rust/wast/tests/parse-fail/confusing-block-comment8.wat.err b/third_party/rust/wast/tests/parse-fail/confusing-block-comment8.wat.err new file mode 100644 index 0000000000..fe89af152e --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-block-comment8.wat.err @@ -0,0 +1,5 @@ +likely-confusing unicode character found '\u{2069}' + --> tests/parse-fail/confusing-block-comment8.wat:1:13 + | + 1 | (module) (; ;) + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/confusing-line-comment0.wat b/third_party/rust/wast/tests/parse-fail/confusing-line-comment0.wat new file mode 100644 index 0000000000..72e8caa7dd --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-line-comment0.wat @@ -0,0 +1 @@ +(module) ;; diff --git a/third_party/rust/wast/tests/parse-fail/confusing-line-comment0.wat.err b/third_party/rust/wast/tests/parse-fail/confusing-line-comment0.wat.err new file mode 100644 index 0000000000..1d665d7f74 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-line-comment0.wat.err @@ -0,0 +1,5 @@ +likely-confusing unicode character found '\u{202a}' + --> tests/parse-fail/confusing-line-comment0.wat:1:13 + | + 1 | (module) ;; + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/confusing-line-comment1.wat b/third_party/rust/wast/tests/parse-fail/confusing-line-comment1.wat new file mode 100644 index 0000000000..af7e5e6341 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-line-comment1.wat @@ -0,0 +1 @@ +(module) ;; diff --git a/third_party/rust/wast/tests/parse-fail/confusing-line-comment1.wat.err b/third_party/rust/wast/tests/parse-fail/confusing-line-comment1.wat.err new file mode 100644 index 0000000000..e614bad736 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-line-comment1.wat.err @@ -0,0 +1,5 @@ +likely-confusing unicode character found '\u{202b}' + --> tests/parse-fail/confusing-line-comment1.wat:1:13 + | + 1 | (module) ;; + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/confusing-line-comment2.wat b/third_party/rust/wast/tests/parse-fail/confusing-line-comment2.wat new file mode 100644 index 0000000000..ac67c0e6be --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-line-comment2.wat @@ -0,0 +1 @@ +(module) ;; diff --git a/third_party/rust/wast/tests/parse-fail/confusing-line-comment2.wat.err b/third_party/rust/wast/tests/parse-fail/confusing-line-comment2.wat.err new file mode 100644 index 0000000000..e5f1fda5ee --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-line-comment2.wat.err @@ -0,0 +1,5 @@ +likely-confusing unicode character found '\u{202d}' + --> tests/parse-fail/confusing-line-comment2.wat:1:13 + | + 1 | (module) ;; + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/confusing-line-comment3.wat b/third_party/rust/wast/tests/parse-fail/confusing-line-comment3.wat new file mode 100644 index 0000000000..57e38b223c --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-line-comment3.wat @@ -0,0 +1 @@ +(module) ;; diff --git a/third_party/rust/wast/tests/parse-fail/confusing-line-comment3.wat.err b/third_party/rust/wast/tests/parse-fail/confusing-line-comment3.wat.err new file mode 100644 index 0000000000..787c019767 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-line-comment3.wat.err @@ -0,0 +1,5 @@ +likely-confusing unicode character found '\u{202e}' + --> tests/parse-fail/confusing-line-comment3.wat:1:13 + | + 1 | (module) ;; + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/confusing-line-comment4.wat b/third_party/rust/wast/tests/parse-fail/confusing-line-comment4.wat new file mode 100644 index 0000000000..d066d64be2 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-line-comment4.wat @@ -0,0 +1 @@ +(module) ;; diff --git a/third_party/rust/wast/tests/parse-fail/confusing-line-comment4.wat.err b/third_party/rust/wast/tests/parse-fail/confusing-line-comment4.wat.err new file mode 100644 index 0000000000..9c5951c743 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-line-comment4.wat.err @@ -0,0 +1,5 @@ +likely-confusing unicode character found '\u{2066}' + --> tests/parse-fail/confusing-line-comment4.wat:1:13 + | + 1 | (module) ;; + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/confusing-line-comment5.wat b/third_party/rust/wast/tests/parse-fail/confusing-line-comment5.wat new file mode 100644 index 0000000000..02ca3e2336 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-line-comment5.wat @@ -0,0 +1 @@ +(module) ;; diff --git a/third_party/rust/wast/tests/parse-fail/confusing-line-comment5.wat.err b/third_party/rust/wast/tests/parse-fail/confusing-line-comment5.wat.err new file mode 100644 index 0000000000..f0d96fdba7 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-line-comment5.wat.err @@ -0,0 +1,5 @@ +likely-confusing unicode character found '\u{2067}' + --> tests/parse-fail/confusing-line-comment5.wat:1:13 + | + 1 | (module) ;; + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/confusing-line-comment6.wat b/third_party/rust/wast/tests/parse-fail/confusing-line-comment6.wat new file mode 100644 index 0000000000..7d5f48f789 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-line-comment6.wat @@ -0,0 +1 @@ +(module) ;; diff --git a/third_party/rust/wast/tests/parse-fail/confusing-line-comment6.wat.err b/third_party/rust/wast/tests/parse-fail/confusing-line-comment6.wat.err new file mode 100644 index 0000000000..9e92eeb69e --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-line-comment6.wat.err @@ -0,0 +1,5 @@ +likely-confusing unicode character found '\u{2068}' + --> tests/parse-fail/confusing-line-comment6.wat:1:13 + | + 1 | (module) ;; + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/confusing-line-comment7.wat b/third_party/rust/wast/tests/parse-fail/confusing-line-comment7.wat new file mode 100644 index 0000000000..21f589d9d8 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-line-comment7.wat @@ -0,0 +1 @@ +(module) ;; diff --git a/third_party/rust/wast/tests/parse-fail/confusing-line-comment7.wat.err b/third_party/rust/wast/tests/parse-fail/confusing-line-comment7.wat.err new file mode 100644 index 0000000000..2e8dc1837c --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-line-comment7.wat.err @@ -0,0 +1,5 @@ +likely-confusing unicode character found '\u{206c}' + --> tests/parse-fail/confusing-line-comment7.wat:1:13 + | + 1 | (module) ;; + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/confusing-line-comment8.wat b/third_party/rust/wast/tests/parse-fail/confusing-line-comment8.wat new file mode 100644 index 0000000000..03c2c18c2e --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-line-comment8.wat @@ -0,0 +1 @@ +(module) ;; diff --git a/third_party/rust/wast/tests/parse-fail/confusing-line-comment8.wat.err b/third_party/rust/wast/tests/parse-fail/confusing-line-comment8.wat.err new file mode 100644 index 0000000000..41f28156f5 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-line-comment8.wat.err @@ -0,0 +1,5 @@ +likely-confusing unicode character found '\u{2069}' + --> tests/parse-fail/confusing-line-comment8.wat:1:13 + | + 1 | (module) ;; + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/confusing-string0.wat b/third_party/rust/wast/tests/parse-fail/confusing-string0.wat new file mode 100644 index 0000000000..e582b23320 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-string0.wat @@ -0,0 +1 @@ +(module (export "" (func 0))) diff --git a/third_party/rust/wast/tests/parse-fail/confusing-string0.wat.err b/third_party/rust/wast/tests/parse-fail/confusing-string0.wat.err new file mode 100644 index 0000000000..13a567b958 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-string0.wat.err @@ -0,0 +1,5 @@ +likely-confusing unicode character found '\u{202a}' + --> tests/parse-fail/confusing-string0.wat:1:18 + | + 1 | (module (export "" (func 0))) + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/confusing-string1.wat b/third_party/rust/wast/tests/parse-fail/confusing-string1.wat new file mode 100644 index 0000000000..a294d96131 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-string1.wat @@ -0,0 +1 @@ +(module (export "" (func 0))) diff --git a/third_party/rust/wast/tests/parse-fail/confusing-string1.wat.err b/third_party/rust/wast/tests/parse-fail/confusing-string1.wat.err new file mode 100644 index 0000000000..5afd670e24 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-string1.wat.err @@ -0,0 +1,5 @@ +likely-confusing unicode character found '\u{202b}' + --> tests/parse-fail/confusing-string1.wat:1:18 + | + 1 | (module (export "" (func 0))) + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/confusing-string2.wat b/third_party/rust/wast/tests/parse-fail/confusing-string2.wat new file mode 100644 index 0000000000..7ba6b04b85 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-string2.wat @@ -0,0 +1 @@ +(module (export "" (func 0))) diff --git a/third_party/rust/wast/tests/parse-fail/confusing-string2.wat.err b/third_party/rust/wast/tests/parse-fail/confusing-string2.wat.err new file mode 100644 index 0000000000..a40ddec831 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-string2.wat.err @@ -0,0 +1,5 @@ +likely-confusing unicode character found '\u{202d}' + --> tests/parse-fail/confusing-string2.wat:1:18 + | + 1 | (module (export "" (func 0))) + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/confusing-string3.wat b/third_party/rust/wast/tests/parse-fail/confusing-string3.wat new file mode 100644 index 0000000000..4b71b620f4 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-string3.wat @@ -0,0 +1 @@ +(module (export "" (func 0))) diff --git a/third_party/rust/wast/tests/parse-fail/confusing-string3.wat.err b/third_party/rust/wast/tests/parse-fail/confusing-string3.wat.err new file mode 100644 index 0000000000..e3e04e8f5a --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-string3.wat.err @@ -0,0 +1,5 @@ +likely-confusing unicode character found '\u{202e}' + --> tests/parse-fail/confusing-string3.wat:1:18 + | + 1 | (module (export "" (func 0))) + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/confusing-string4.wat b/third_party/rust/wast/tests/parse-fail/confusing-string4.wat new file mode 100644 index 0000000000..b4261ae2fe --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-string4.wat @@ -0,0 +1 @@ +(module (export "" (func 0))) diff --git a/third_party/rust/wast/tests/parse-fail/confusing-string4.wat.err b/third_party/rust/wast/tests/parse-fail/confusing-string4.wat.err new file mode 100644 index 0000000000..dde3f003a6 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-string4.wat.err @@ -0,0 +1,5 @@ +likely-confusing unicode character found '\u{2066}' + --> tests/parse-fail/confusing-string4.wat:1:18 + | + 1 | (module (export "" (func 0))) + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/confusing-string5.wat b/third_party/rust/wast/tests/parse-fail/confusing-string5.wat new file mode 100644 index 0000000000..1e0316b592 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-string5.wat @@ -0,0 +1 @@ +(module (export "" (func 0))) diff --git a/third_party/rust/wast/tests/parse-fail/confusing-string5.wat.err b/third_party/rust/wast/tests/parse-fail/confusing-string5.wat.err new file mode 100644 index 0000000000..ee4cdc4c37 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-string5.wat.err @@ -0,0 +1,5 @@ +likely-confusing unicode character found '\u{2067}' + --> tests/parse-fail/confusing-string5.wat:1:18 + | + 1 | (module (export "" (func 0))) + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/confusing-string6.wat b/third_party/rust/wast/tests/parse-fail/confusing-string6.wat new file mode 100644 index 0000000000..e0a4a84e8e --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-string6.wat @@ -0,0 +1 @@ +(module (export "" (func 0))) diff --git a/third_party/rust/wast/tests/parse-fail/confusing-string6.wat.err b/third_party/rust/wast/tests/parse-fail/confusing-string6.wat.err new file mode 100644 index 0000000000..d30342556a --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-string6.wat.err @@ -0,0 +1,5 @@ +likely-confusing unicode character found '\u{2068}' + --> tests/parse-fail/confusing-string6.wat:1:18 + | + 1 | (module (export "" (func 0))) + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/confusing-string7.wat b/third_party/rust/wast/tests/parse-fail/confusing-string7.wat new file mode 100644 index 0000000000..c920e2df7b --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-string7.wat @@ -0,0 +1 @@ +(module (export "" (func 0))) diff --git a/third_party/rust/wast/tests/parse-fail/confusing-string7.wat.err b/third_party/rust/wast/tests/parse-fail/confusing-string7.wat.err new file mode 100644 index 0000000000..015fb5cf79 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-string7.wat.err @@ -0,0 +1,5 @@ +likely-confusing unicode character found '\u{206c}' + --> tests/parse-fail/confusing-string7.wat:1:18 + | + 1 | (module (export "" (func 0))) + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/confusing-string8.wat b/third_party/rust/wast/tests/parse-fail/confusing-string8.wat new file mode 100644 index 0000000000..4ae212db2c --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-string8.wat @@ -0,0 +1 @@ +(module (export "" (func 0))) diff --git a/third_party/rust/wast/tests/parse-fail/confusing-string8.wat.err b/third_party/rust/wast/tests/parse-fail/confusing-string8.wat.err new file mode 100644 index 0000000000..197e0dad10 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/confusing-string8.wat.err @@ -0,0 +1,5 @@ +likely-confusing unicode character found '\u{2069}' + --> tests/parse-fail/confusing-string8.wat:1:18 + | + 1 | (module (export "" (func 0))) + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/inline1.wat b/third_party/rust/wast/tests/parse-fail/inline1.wat new file mode 100644 index 0000000000..3d338d34aa --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/inline1.wat @@ -0,0 +1,4 @@ +(type $sig (func)) +(table 0 funcref) +(func (result i32) + (call_indirect (type $sig) (result i32) (i32.const 0))) diff --git a/third_party/rust/wast/tests/parse-fail/inline1.wat.err b/third_party/rust/wast/tests/parse-fail/inline1.wat.err new file mode 100644 index 0000000000..c9d96acf7e --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/inline1.wat.err @@ -0,0 +1,5 @@ +inline function type doesn't match type reference + --> tests/parse-fail/inline1.wat:4:24 + | + 4 | (call_indirect (type $sig) (result i32) (i32.const 0))) + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/newline-in-string.wat b/third_party/rust/wast/tests/parse-fail/newline-in-string.wat new file mode 100644 index 0000000000..1cc80efa6f --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/newline-in-string.wat @@ -0,0 +1 @@ +" diff --git a/third_party/rust/wast/tests/parse-fail/newline-in-string.wat.err b/third_party/rust/wast/tests/parse-fail/newline-in-string.wat.err new file mode 100644 index 0000000000..528be7e0e0 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/newline-in-string.wat.err @@ -0,0 +1,5 @@ +invalid character in string '\n' + --> tests/parse-fail/newline-in-string.wat:1:2 + | + 1 | " + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/string1.wat b/third_party/rust/wast/tests/parse-fail/string1.wat new file mode 100644 index 0000000000..b950069525 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/string1.wat @@ -0,0 +1,2 @@ +(module + (import "
\ No newline at end of file diff --git a/third_party/rust/wast/tests/parse-fail/string1.wat.err b/third_party/rust/wast/tests/parse-fail/string1.wat.err new file mode 100644 index 0000000000..94de4fd608 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/string1.wat.err @@ -0,0 +1,5 @@ +unexpected end-of-file + --> tests/parse-fail/string1.wat:2:12 + | + 2 | (import " + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/string10.wat b/third_party/rust/wast/tests/parse-fail/string10.wat new file mode 100644 index 0000000000..62a551a1bc --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/string10.wat @@ -0,0 +1 @@ +"\u{1_}" diff --git a/third_party/rust/wast/tests/parse-fail/string10.wat.err b/third_party/rust/wast/tests/parse-fail/string10.wat.err new file mode 100644 index 0000000000..62d635a58a --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/string10.wat.err @@ -0,0 +1,5 @@ +bare underscore in numeric literal + --> tests/parse-fail/string10.wat:1:6 + | + 1 | "\u{1_}" + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/string11.wat b/third_party/rust/wast/tests/parse-fail/string11.wat new file mode 100644 index 0000000000..3be622718f --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/string11.wat @@ -0,0 +1 @@ +"\u{fffffffffffffffff}" diff --git a/third_party/rust/wast/tests/parse-fail/string11.wat.err b/third_party/rust/wast/tests/parse-fail/string11.wat.err new file mode 100644 index 0000000000..fdf4d37fa2 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/string11.wat.err @@ -0,0 +1,5 @@ +number is too big to parse + --> tests/parse-fail/string11.wat:1:13 + | + 1 | "\u{fffffffffffffffff}" + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/string12.wat b/third_party/rust/wast/tests/parse-fail/string12.wat new file mode 100644 index 0000000000..1720d5bb46 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/string12.wat @@ -0,0 +1 @@ +"\u{ffffffff}" diff --git a/third_party/rust/wast/tests/parse-fail/string12.wat.err b/third_party/rust/wast/tests/parse-fail/string12.wat.err new file mode 100644 index 0000000000..743a21500e --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/string12.wat.err @@ -0,0 +1,5 @@ +invalid unicode scalar value 0xffffffff + --> tests/parse-fail/string12.wat:1:12 + | + 1 | "\u{ffffffff}" + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/string13.wat b/third_party/rust/wast/tests/parse-fail/string13.wat new file mode 100644 index 0000000000..f7eac8fea1 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/string13.wat @@ -0,0 +1 @@ +"\u" diff --git a/third_party/rust/wast/tests/parse-fail/string13.wat.err b/third_party/rust/wast/tests/parse-fail/string13.wat.err new file mode 100644 index 0000000000..509b94791f --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/string13.wat.err @@ -0,0 +1,5 @@ +expected '{' but found '"' + --> tests/parse-fail/string13.wat:1:4 + | + 1 | "\u" + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/string14.wat b/third_party/rust/wast/tests/parse-fail/string14.wat new file mode 100644 index 0000000000..936dbf8b67 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/string14.wat @@ -0,0 +1 @@ +"\u{" diff --git a/third_party/rust/wast/tests/parse-fail/string14.wat.err b/third_party/rust/wast/tests/parse-fail/string14.wat.err new file mode 100644 index 0000000000..2eba9bafb1 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/string14.wat.err @@ -0,0 +1,5 @@ +invalid hex digit '"' + --> tests/parse-fail/string14.wat:1:5 + | + 1 | "\u{" + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/string15.wat b/third_party/rust/wast/tests/parse-fail/string15.wat new file mode 100644 index 0000000000..58e0e36227 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/string15.wat @@ -0,0 +1 @@ +"\u{3" diff --git a/third_party/rust/wast/tests/parse-fail/string15.wat.err b/third_party/rust/wast/tests/parse-fail/string15.wat.err new file mode 100644 index 0000000000..cdd89397f7 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/string15.wat.err @@ -0,0 +1,5 @@ +expected '}' but found '"' + --> tests/parse-fail/string15.wat:1:6 + | + 1 | "\u{3" + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/string16.wat b/third_party/rust/wast/tests/parse-fail/string16.wat new file mode 100644 index 0000000000..aa3d8aa06a --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/string16.wat @@ -0,0 +1 @@ +"\u{3
\ No newline at end of file diff --git a/third_party/rust/wast/tests/parse-fail/string16.wat.err b/third_party/rust/wast/tests/parse-fail/string16.wat.err new file mode 100644 index 0000000000..874241b197 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/string16.wat.err @@ -0,0 +1,5 @@ +unexpected end-of-file + --> tests/parse-fail/string16.wat:1:6 + | + 1 | "\u{3 + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/string2.wat b/third_party/rust/wast/tests/parse-fail/string2.wat new file mode 100644 index 0000000000..9cd719ea0f --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/string2.wat @@ -0,0 +1,2 @@ +(module + (import "\x")) diff --git a/third_party/rust/wast/tests/parse-fail/string2.wat.err b/third_party/rust/wast/tests/parse-fail/string2.wat.err new file mode 100644 index 0000000000..bb7a7166ce --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/string2.wat.err @@ -0,0 +1,5 @@ +invalid string escape 'x' + --> tests/parse-fail/string2.wat:2:13 + | + 2 | (import "\x")) + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/string3.wat b/third_party/rust/wast/tests/parse-fail/string3.wat new file mode 100644 index 0000000000..d518f71599 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/string3.wat @@ -0,0 +1,3 @@ +(module + (import "\0")) + diff --git a/third_party/rust/wast/tests/parse-fail/string3.wat.err b/third_party/rust/wast/tests/parse-fail/string3.wat.err new file mode 100644 index 0000000000..0937725c09 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/string3.wat.err @@ -0,0 +1,5 @@ +invalid hex digit '"' + --> tests/parse-fail/string3.wat:2:14 + | + 2 | (import "\0")) + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/string4.wat b/third_party/rust/wast/tests/parse-fail/string4.wat new file mode 100644 index 0000000000..3c417c1f4f --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/string4.wat @@ -0,0 +1,2 @@ +(module + (import "\0
\ No newline at end of file diff --git a/third_party/rust/wast/tests/parse-fail/string4.wat.err b/third_party/rust/wast/tests/parse-fail/string4.wat.err new file mode 100644 index 0000000000..3e3f684f74 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/string4.wat.err @@ -0,0 +1,5 @@ +unexpected end-of-file + --> tests/parse-fail/string4.wat:2:14 + | + 2 | (import "\0 + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/string5.wat b/third_party/rust/wast/tests/parse-fail/string5.wat new file mode 100644 index 0000000000..00a2584008 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/string5.wat @@ -0,0 +1 @@ +"\
\ No newline at end of file diff --git a/third_party/rust/wast/tests/parse-fail/string5.wat.err b/third_party/rust/wast/tests/parse-fail/string5.wat.err new file mode 100644 index 0000000000..6e53ef4038 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/string5.wat.err @@ -0,0 +1,5 @@ +unexpected end-of-file + --> tests/parse-fail/string5.wat:1:3 + | + 1 | "\ + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/string6.wat b/third_party/rust/wast/tests/parse-fail/string6.wat Binary files differnew file mode 100644 index 0000000000..67a8d48922 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/string6.wat diff --git a/third_party/rust/wast/tests/parse-fail/string6.wat.err b/third_party/rust/wast/tests/parse-fail/string6.wat.err Binary files differnew file mode 100644 index 0000000000..4ae317c08c --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/string6.wat.err diff --git a/third_party/rust/wast/tests/parse-fail/string7.wat b/third_party/rust/wast/tests/parse-fail/string7.wat new file mode 100644 index 0000000000..2e40e03cd5 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/string7.wat @@ -0,0 +1 @@ +"" diff --git a/third_party/rust/wast/tests/parse-fail/string7.wat.err b/third_party/rust/wast/tests/parse-fail/string7.wat.err new file mode 100644 index 0000000000..d7ba1a11a4 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/string7.wat.err @@ -0,0 +1,5 @@ +invalid character in string '\u{7f}' + --> tests/parse-fail/string7.wat:1:2 + | + 1 | "" + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/string8.wat b/third_party/rust/wast/tests/parse-fail/string8.wat new file mode 100644 index 0000000000..5fe9abf854 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/string8.wat @@ -0,0 +1 @@ +"" diff --git a/third_party/rust/wast/tests/parse-fail/string8.wat.err b/third_party/rust/wast/tests/parse-fail/string8.wat.err new file mode 100644 index 0000000000..68e6d2e550 --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/string8.wat.err @@ -0,0 +1,5 @@ +invalid character in string '\u{1f}' + --> tests/parse-fail/string8.wat:1:2 + | + 1 | "" + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/string9.wat b/third_party/rust/wast/tests/parse-fail/string9.wat new file mode 100644 index 0000000000..702916047d --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/string9.wat @@ -0,0 +1 @@ +"\u{x}" diff --git a/third_party/rust/wast/tests/parse-fail/string9.wat.err b/third_party/rust/wast/tests/parse-fail/string9.wat.err new file mode 100644 index 0000000000..ff3ec4ac1d --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/string9.wat.err @@ -0,0 +1,5 @@ +invalid hex digit 'x' + --> tests/parse-fail/string9.wat:1:5 + | + 1 | "\u{x}" + | ^ diff --git a/third_party/rust/wast/tests/parse-fail/unbalanced.wat b/third_party/rust/wast/tests/parse-fail/unbalanced.wat new file mode 100644 index 0000000000..49eaf835ad --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/unbalanced.wat @@ -0,0 +1,3 @@ +(module) + +) diff --git a/third_party/rust/wast/tests/parse-fail/unbalanced.wat.err b/third_party/rust/wast/tests/parse-fail/unbalanced.wat.err new file mode 100644 index 0000000000..c4eff2c09d --- /dev/null +++ b/third_party/rust/wast/tests/parse-fail/unbalanced.wat.err @@ -0,0 +1,5 @@ +extra tokens remaining after parse + --> tests/parse-fail/unbalanced.wat:3:1 + | + 3 | ) + | ^ diff --git a/third_party/rust/wast/tests/recursive.rs b/third_party/rust/wast/tests/recursive.rs new file mode 100644 index 0000000000..e06e78385e --- /dev/null +++ b/third_party/rust/wast/tests/recursive.rs @@ -0,0 +1,8 @@ +#[test] +fn no_stack_overflow() { + let mut s = format!("(module (func \n"); + for _ in 0..10_000 { + s.push_str("(i32.add\n"); + } + assert!(wat::parse_str(&s).is_err()); +} |