diff --git a/dev-test/spec b/dev-test/spec index 5fddf13..e25ae15 160000 --- a/dev-test/spec +++ b/dev-test/spec @@ -1 +1 @@ -Subproject commit 5fddf13f296cb08a7a8055f4f6d63632485cab14 +Subproject commit e25ae159357c055b3a6fac99043644e208d26d2a diff --git a/dev-test/tests/luajit_assert.lua b/dev-test/tests/luajit_assert.lua index 872d705..69d449d 100644 --- a/dev-test/tests/luajit_assert.lua +++ b/dev-test/tests/luajit_assert.lua @@ -25,6 +25,16 @@ do end end + do + local old = rt.store.string + + function rt.store.string(memory, addr, data, len) + assert(is_valid_address(memory, addr, #data), "Invalid memory write") + + return old(memory, addr, data, len) + end + end + load_checked("i32_i8", 1) load_checked("i32_u8", 1) load_checked("i32_i16", 2) diff --git a/dev-test/tests/luajit_translate.rs b/dev-test/tests/luajit_translate.rs index 40af167..5f9a4e9 100644 --- a/dev-test/tests/luajit_translate.rs +++ b/dev-test/tests/luajit_translate.rs @@ -161,10 +161,65 @@ impl Target for LuaJIT { } } -static DO_NOT_RUN: [&str; 3] = [ - "conversions.wast", +static DO_NOT_RUN: [&str; 58] = [ "names.wast", "skip-stack-guard-page.wast", + "simd_address.wast", + "simd_align.wast", + "simd_bit_shift.wast", + "simd_bitwise.wast", + "simd_boolean.wast", + "simd_const.wast", + "simd_conversions.wast", + "simd_f32x4_arith.wast", + "simd_f32x4_cmp.wast", + "simd_f32x4_pmin_pmax.wast", + "simd_f32x4_rounding.wast", + "simd_f32x4.wast", + "simd_f64x2_arith.wast", + "simd_f64x2_cmp.wast", + "simd_f64x2_pmin_pmax.wast", + "simd_f64x2_rounding.wast", + "simd_f64x2.wast", + "simd_i16x8_arith.wast", + "simd_i16x8_arith2.wast", + "simd_i16x8_cmp.wast", + "simd_i16x8_extadd_pairwise_i8x16.wast", + "simd_i16x8_extmul_i8x16.wast", + "simd_i16x8_q15mulr_sat_s.wast", + "simd_i16x8_sat_arith.wast", + "simd_i32x4_arith.wast", + "simd_i32x4_arith2.wast", + "simd_i32x4_cmp.wast", + "simd_i32x4_dot_i16x8.wast", + "simd_i32x4_extadd_pairwise_i16x8.wast", + "simd_i32x4_extmul_i16x8.wast", + "simd_i32x4_trunc_sat_f32x4.wast", + "simd_i32x4_trunc_sat_f64x2.wast", + "simd_i64x2_arith.wast", + "simd_i64x2_arith2.wast", + "simd_i64x2_cmp.wast", + "simd_i64x2_extmul_i32x4.wast", + "simd_i8x16_arith.wast", + "simd_i8x16_arith2.wast", + "simd_i8x16_cmp.wast", + "simd_i8x16_sat_arith.wast", + "simd_int_to_int_extend.wast", + "simd_lane.wast", + "simd_load_extend.wast", + "simd_load_splat.wast", + "simd_load_zero.wast", + "simd_load.wast", + "simd_load16_lane.wast", + "simd_load32_lane.wast", + "simd_load64_lane.wast", + "simd_load8_lane.wast", + "simd_splat.wast", + "simd_store.wast", + "simd_store16_lane.wast", + "simd_store32_lane.wast", + "simd_store64_lane.wast", + "simd_store8_lane.wast", ]; #[test_generator::test_resources("dev-test/spec/*.wast")] diff --git a/dev-test/tests/luau_assert.lua b/dev-test/tests/luau_assert.lua index f57e3e8..9dcb897 100644 --- a/dev-test/tests/luau_assert.lua +++ b/dev-test/tests/luau_assert.lua @@ -25,6 +25,16 @@ do end end + do + local old = rt.store.string + + function rt.store.string(memory, addr, data, len) + assert(is_valid_address(memory, addr, #data), "Invalid memory write") + + return old(memory, addr, data, len) + end + end + load_checked("i32_i8", 1) load_checked("i32_u8", 1) load_checked("i32_i16", 2) diff --git a/dev-test/tests/luau_translate.rs b/dev-test/tests/luau_translate.rs index f0c7f19..40d34dc 100644 --- a/dev-test/tests/luau_translate.rs +++ b/dev-test/tests/luau_translate.rs @@ -178,10 +178,65 @@ impl Target for Luau { } } -static DO_NOT_RUN: [&str; 3] = [ - "conversions.wast", +static DO_NOT_RUN: [&str; 58] = [ "names.wast", "skip-stack-guard-page.wast", + "simd_address.wast", + "simd_align.wast", + "simd_bit_shift.wast", + "simd_bitwise.wast", + "simd_boolean.wast", + "simd_const.wast", + "simd_conversions.wast", + "simd_f32x4_arith.wast", + "simd_f32x4_cmp.wast", + "simd_f32x4_pmin_pmax.wast", + "simd_f32x4_rounding.wast", + "simd_f32x4.wast", + "simd_f64x2_arith.wast", + "simd_f64x2_cmp.wast", + "simd_f64x2_pmin_pmax.wast", + "simd_f64x2_rounding.wast", + "simd_f64x2.wast", + "simd_i16x8_arith.wast", + "simd_i16x8_arith2.wast", + "simd_i16x8_cmp.wast", + "simd_i16x8_extadd_pairwise_i8x16.wast", + "simd_i16x8_extmul_i8x16.wast", + "simd_i16x8_q15mulr_sat_s.wast", + "simd_i16x8_sat_arith.wast", + "simd_i32x4_arith.wast", + "simd_i32x4_arith2.wast", + "simd_i32x4_cmp.wast", + "simd_i32x4_dot_i16x8.wast", + "simd_i32x4_extadd_pairwise_i16x8.wast", + "simd_i32x4_extmul_i16x8.wast", + "simd_i32x4_trunc_sat_f32x4.wast", + "simd_i32x4_trunc_sat_f64x2.wast", + "simd_i64x2_arith.wast", + "simd_i64x2_arith2.wast", + "simd_i64x2_cmp.wast", + "simd_i64x2_extmul_i32x4.wast", + "simd_i8x16_arith.wast", + "simd_i8x16_arith2.wast", + "simd_i8x16_cmp.wast", + "simd_i8x16_sat_arith.wast", + "simd_int_to_int_extend.wast", + "simd_lane.wast", + "simd_load_extend.wast", + "simd_load_splat.wast", + "simd_load_zero.wast", + "simd_load.wast", + "simd_load16_lane.wast", + "simd_load32_lane.wast", + "simd_load64_lane.wast", + "simd_load8_lane.wast", + "simd_splat.wast", + "simd_store.wast", + "simd_store16_lane.wast", + "simd_store32_lane.wast", + "simd_store64_lane.wast", + "simd_store8_lane.wast", ]; #[test_generator::test_resources("dev-test/spec/*.wast")]