From 035380318b4da4ec23b5247c499e41dc3bf42510 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20Thei=C3=9Fen?= Date: Wed, 15 Sep 2021 13:26:54 +0200 Subject: [PATCH 1/3] Lines should be 1-indexed --- testsuite/src/run.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/testsuite/src/run.rs b/testsuite/src/run.rs index 8aeb964e9..8c78be829 100644 --- a/testsuite/src/run.rs +++ b/testsuite/src/run.rs @@ -13,7 +13,7 @@ pub fn check(path: &str) { match kind { WastDirective::Module(mut module) => { let (line, _col) = module.span.linecol_in(&source); - println!("Parsing module at line {}", line); + println!("Parsing module at line {}", line + 1); let orig_bytes = module.encode().unwrap(); let parsed = deserialize_buffer::(&orig_bytes).expect("Failed to parse module"); @@ -25,7 +25,7 @@ pub fn check(path: &str) { span, } => { let (line, _col) = span.linecol_in(&source); - println!("Parsing assert_malformed at line {}", line); + println!("Parsing assert_malformed at line {}", line + 1); let parsed = deserialize_buffer::(&module.encode().unwrap()); if parsed.is_ok() { panic!("Module should be malformed because: {}", message); From cbc5a17f298de1624a191f2c56205b177aff62b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20Thei=C3=9Fen?= Date: Wed, 15 Sep 2021 13:27:19 +0200 Subject: [PATCH 2/3] Run threads proposal testsuite --- testsuite/src/lib.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/testsuite/src/lib.rs b/testsuite/src/lib.rs index 8acc7eca7..201a0b531 100644 --- a/testsuite/src/lib.rs +++ b/testsuite/src/lib.rs @@ -21,3 +21,8 @@ fn basic(path: &str) { run::check(path); } } + +#[test_generator::test_resources("testsuite/spec/proposals/threads/*.wast")] +fn threads(path: &str) { + run::check(path); +} From a38e184578a06210652df6f6d26f6a56303611f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20Thei=C3=9Fen?= Date: Wed, 15 Sep 2021 13:27:37 +0200 Subject: [PATCH 3/3] Fix threads proposal parsing --- src/elements/ops.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/elements/ops.rs b/src/elements/ops.rs index 2934ca83b..ebc7edcf1 100644 --- a/src/elements/ops.rs +++ b/src/elements/ops.rs @@ -1434,6 +1434,14 @@ fn deserialize_atomic(reader: &mut R) -> Result I64_ATOMIC_RMW_SUB16U => I64AtomicRmwSub16u(mem), I64_ATOMIC_RMW_SUB32U => I64AtomicRmwSub32u(mem), + I32_ATOMIC_RMW_AND => I32AtomicRmwAnd(mem), + I64_ATOMIC_RMW_AND => I64AtomicRmwAnd(mem), + I32_ATOMIC_RMW_AND8U => I32AtomicRmwAnd8u(mem), + I32_ATOMIC_RMW_AND16U => I32AtomicRmwAnd16u(mem), + I64_ATOMIC_RMW_AND8U => I64AtomicRmwAnd8u(mem), + I64_ATOMIC_RMW_AND16U => I64AtomicRmwAnd16u(mem), + I64_ATOMIC_RMW_AND32U => I64AtomicRmwAnd32u(mem), + I32_ATOMIC_RMW_OR => I32AtomicRmwOr(mem), I64_ATOMIC_RMW_OR => I64AtomicRmwOr(mem), I32_ATOMIC_RMW_OR8U => I32AtomicRmwOr8u(mem),