From a1347966afc9adf57c50e6444cf4a86426ed14fc Mon Sep 17 00:00:00 2001 From: Takeshi Yoneda Date: Tue, 18 Feb 2025 18:30:01 -0800 Subject: [PATCH 1/2] Fixes testHostFunctionNumericParameter Signed-off-by: Takeshi Yoneda --- .../integration_test/engine/adhoc_test.go | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/internal/integration_test/engine/adhoc_test.go b/internal/integration_test/engine/adhoc_test.go index 178d61bd24..729fddf68e 100644 --- a/internal/integration_test/engine/adhoc_test.go +++ b/internal/integration_test/engine/adhoc_test.go @@ -502,9 +502,15 @@ func testHostFunctionNumericParameter(t *testing.T, r wazero.Runtime) { "i32": func(ctx context.Context, p uint32) uint32 { return p + 1 }, + "i32n": func(ctx context.Context, p int32) int32 { + return p - 1 + }, "i64": func(ctx context.Context, p uint64) uint64 { return p + 1 }, + "i64n": func(ctx context.Context, p int64) int64 { + return p - 1 + }, "f32": func(ctx context.Context, p float32) float32 { return p + 1 }, @@ -524,12 +530,24 @@ func testHostFunctionNumericParameter(t *testing.T, r wazero.Runtime) { input: math.MaxUint32 - 1, expected: math.MaxUint32, }, + { + name: "i32n", + vt: i32, + input: api.EncodeI32(math.MinInt32 + 1), + expected: api.EncodeI32(math.MinInt32), + }, { name: "i64", vt: i64, input: math.MaxUint64 - 1, expected: math.MaxUint64, }, + { + name: "i64n", + vt: i64, + input: api.EncodeI64(math.MinInt64 + 1), + expected: api.EncodeI64(math.MinInt64), + }, { name: "f32", vt: wasm.ValueTypeF32, @@ -562,7 +580,12 @@ func testHostFunctionNumericParameter(t *testing.T, r wazero.Runtime) { results, err := importing.ExportedFunction("call_return_input").Call(testCtx, test.input) require.NoError(t, err) - require.Equal(t, test.expected, results[0]) + switch test.vt { + case i32, f32: + require.Equal(t, uint32(test.expected), uint32(results[0])) + case i64, f64: + require.Equal(t, test.expected, results[0]) + } }) } } From 78bca75b3daab1014bf2029668f57a22d79ce1f6 Mon Sep 17 00:00:00 2001 From: Takeshi Yoneda Date: Tue, 18 Feb 2025 18:32:09 -0800 Subject: [PATCH 2/2] more Signed-off-by: Takeshi Yoneda --- internal/integration_test/engine/adhoc_test.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/internal/integration_test/engine/adhoc_test.go b/internal/integration_test/engine/adhoc_test.go index 729fddf68e..da098d8301 100644 --- a/internal/integration_test/engine/adhoc_test.go +++ b/internal/integration_test/engine/adhoc_test.go @@ -581,10 +581,14 @@ func testHostFunctionNumericParameter(t *testing.T, r wazero.Runtime) { results, err := importing.ExportedFunction("call_return_input").Call(testCtx, test.input) require.NoError(t, err) switch test.vt { - case i32, f32: - require.Equal(t, uint32(test.expected), uint32(results[0])) - case i64, f64: + case i32: + require.Equal(t, api.DecodeI32(test.expected), api.DecodeI32(results[0])) + case f32: + require.Equal(t, api.DecodeF32(test.expected), api.DecodeF32(results[0])) + case i64: require.Equal(t, test.expected, results[0]) + case f64: + require.Equal(t, api.DecodeF64(test.expected), api.DecodeF64(results[0])) } }) }