From 1586f7c7ef5b21077c3f7ca8e71781b9486364fa Mon Sep 17 00:00:00 2001 From: Nick Fitzgerald Date: Mon, 18 Dec 2023 10:41:42 -0800 Subject: [PATCH 1/3] Exercise `array.get_s` in `array.wast` Previously `array.get_s` was not exercised by the test suite at all. `array.wast` exercises `array.get_u` and has been updated to also exercise `array.get_s`. --- test/core/gc/array.wast | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/test/core/gc/array.wast b/test/core/gc/array.wast index 73d215ad6..a8cb0e274 100644 --- a/test/core/gc/array.wast +++ b/test/core/gc/array.wast @@ -152,17 +152,24 @@ (type $vec (array i8)) (type $mvec (array (mut i8))) - (data $d "\00\01\02\03\04") + (data $d "\00\01\02\0ff\04") (func $new (export "new") (result (ref $vec)) (array.new_data $vec $d (i32.const 1) (i32.const 3)) ) - (func $get (param $i i32) (param $v (ref $vec)) (result i32) + (func $get_u (param $i i32) (param $v (ref $vec)) (result i32) (array.get_u $vec (local.get $v) (local.get $i)) ) - (func (export "get") (param $i i32) (result i32) - (call $get (local.get $i) (call $new)) + (func (export "get_u") (param $i i32) (result i32) + (call $get_u (local.get $i) (call $new)) + ) + + (func $get_s (param $i i32) (param $v (ref $vec)) (result i32) + (array.get_s $vec (local.get $v) (local.get $i)) + ) + (func (export "get_s") (param $i i32) (result i32) + (call $get_s (local.get $i) (call $new)) ) (func $set_get (param $i i32) (param $v (ref $mvec)) (param $y i32) (result i32) @@ -186,11 +193,13 @@ (assert_return (invoke "new") (ref.array)) (assert_return (invoke "new") (ref.eq)) -(assert_return (invoke "get" (i32.const 0)) (i32.const 1)) +(assert_return (invoke "get_u" (i32.const 0)) (i32.const 1)) +(assert_return (invoke "get_s" (i32.const 2)) (i32.const -1)) (assert_return (invoke "set_get" (i32.const 1) (i32.const 7)) (i32.const 7)) (assert_return (invoke "len") (i32.const 3)) -(assert_trap (invoke "get" (i32.const 10)) "out of bounds array access") +(assert_trap (invoke "get_u" (i32.const 10)) "out of bounds array access") +(assert_trap (invoke "get_s" (i32.const 10)) "out of bounds array access") (assert_trap (invoke "set_get" (i32.const 10) (i32.const 7)) "out of bounds array access") (module From 7a490a9c63a80ea6dd86bbd183bf8ff9e84f8bdf Mon Sep 17 00:00:00 2001 From: Nick Fitzgerald Date: Tue, 19 Dec 2023 09:19:15 -0800 Subject: [PATCH 2/3] Test get_s and get_u on the same element --- test/core/gc/array.wast | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/core/gc/array.wast b/test/core/gc/array.wast index a8cb0e274..08bc7ced8 100644 --- a/test/core/gc/array.wast +++ b/test/core/gc/array.wast @@ -193,7 +193,7 @@ (assert_return (invoke "new") (ref.array)) (assert_return (invoke "new") (ref.eq)) -(assert_return (invoke "get_u" (i32.const 0)) (i32.const 1)) +(assert_return (invoke "get_u" (i32.const 2)) (i32.const 0xff)) (assert_return (invoke "get_s" (i32.const 2)) (i32.const -1)) (assert_return (invoke "set_get" (i32.const 1) (i32.const 7)) (i32.const 7)) (assert_return (invoke "len") (i32.const 3)) From 14d3e727b9d8f06ca7c3c020562a435eac4ce07d Mon Sep 17 00:00:00 2001 From: Nick Fitzgerald Date: Tue, 19 Dec 2023 11:10:35 -0800 Subject: [PATCH 3/3] Fix typo of leftover 0 --- test/core/gc/array.wast | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/core/gc/array.wast b/test/core/gc/array.wast index 08bc7ced8..6ad95c087 100644 --- a/test/core/gc/array.wast +++ b/test/core/gc/array.wast @@ -152,7 +152,7 @@ (type $vec (array i8)) (type $mvec (array (mut i8))) - (data $d "\00\01\02\0ff\04") + (data $d "\00\01\02\ff\04") (func $new (export "new") (result (ref $vec)) (array.new_data $vec $d (i32.const 1) (i32.const 3))