From e36290ec0a8ef3199c8fb9e97f30db8bd148f3c3 Mon Sep 17 00:00:00 2001 From: daxpedda Date: Fri, 6 Dec 2024 16:57:32 +0100 Subject: [PATCH] Add reference test Co-Authored-By: Michael Schmidt --- crates/cli/tests/reference/echo.d.ts | 16 ++ crates/cli/tests/reference/echo.js | 232 +++++++++++++++++++++++++++ crates/cli/tests/reference/echo.rs | 17 ++ crates/cli/tests/reference/echo.wat | 64 ++++++-- 4 files changed, 313 insertions(+), 16 deletions(-) diff --git a/crates/cli/tests/reference/echo.d.ts b/crates/cli/tests/reference/echo.d.ts index 7f72b5e2d34..c318f636c11 100644 --- a/crates/cli/tests/reference/echo.d.ts +++ b/crates/cli/tests/reference/echo.d.ts @@ -25,6 +25,14 @@ export function echo_vec_u32(a: Uint32Array): Uint32Array; export function echo_vec_i32(a: Int32Array): Int32Array; export function echo_vec_u64(a: BigUint64Array): BigUint64Array; export function echo_vec_i64(a: BigInt64Array): BigInt64Array; +export function echo_vec_uninit_u8(a: Uint8Array): Uint8Array; +export function echo_vec_uninit_i8(a: Int8Array): Int8Array; +export function echo_vec_uninit_u16(a: Uint16Array): Uint16Array; +export function echo_vec_uninit_i16(a: Int16Array): Int16Array; +export function echo_vec_uninit_u32(a: Uint32Array): Uint32Array; +export function echo_vec_uninit_i32(a: Int32Array): Int32Array; +export function echo_vec_uninit_u64(a: BigUint64Array): BigUint64Array; +export function echo_vec_uninit_i64(a: BigInt64Array): BigInt64Array; export function echo_vec_string(a: (string)[]): (string)[]; export function echo_struct(a: Foo): Foo; export function echo_vec_struct(a: (Foo)[]): (Foo)[]; @@ -53,6 +61,14 @@ export function echo_option_vec_u32(a?: Uint32Array): Uint32Array | undefined; export function echo_option_vec_i32(a?: Int32Array): Int32Array | undefined; export function echo_option_vec_u64(a?: BigUint64Array): BigUint64Array | undefined; export function echo_option_vec_i64(a?: BigInt64Array): BigInt64Array | undefined; +export function echo_option_vec_uninit_u8(a?: Uint8Array): Uint8Array | undefined; +export function echo_option_vec_uninit_i8(a?: Int8Array): Int8Array | undefined; +export function echo_option_vec_uninit_u16(a?: Uint16Array): Uint16Array | undefined; +export function echo_option_vec_uninit_i16(a?: Int16Array): Int16Array | undefined; +export function echo_option_vec_uninit_u32(a?: Uint32Array): Uint32Array | undefined; +export function echo_option_vec_uninit_i32(a?: Int32Array): Int32Array | undefined; +export function echo_option_vec_uninit_u64(a?: BigUint64Array): BigUint64Array | undefined; +export function echo_option_vec_uninit_i64(a?: BigInt64Array): BigInt64Array | undefined; export function echo_option_vec_string(a?: (string)[]): (string)[] | undefined; export function echo_option_struct(a?: Foo): Foo | undefined; export function echo_option_vec_struct(a?: (Foo)[]): (Foo)[] | undefined; diff --git a/crates/cli/tests/reference/echo.js b/crates/cli/tests/reference/echo.js index f2eb7da3e3b..1809b0e8618 100644 --- a/crates/cli/tests/reference/echo.js +++ b/crates/cli/tests/reference/echo.js @@ -554,6 +554,110 @@ export function echo_vec_i64(a) { return v2; } +/** + * @param {Uint8Array} a + * @returns {Uint8Array} + */ +export function echo_vec_uninit_u8(a) { + const ptr0 = passArray8ToWasm0(a, wasm.__wbindgen_malloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.echo_vec_uninit_u8(ptr0, len0); + var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice(); + wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); + return v2; +} + +/** + * @param {Int8Array} a + * @returns {Int8Array} + */ +export function echo_vec_uninit_i8(a) { + const ptr0 = passArray8ToWasm0(a, wasm.__wbindgen_malloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.echo_vec_uninit_i8(ptr0, len0); + var v2 = getArrayI8FromWasm0(ret[0], ret[1]).slice(); + wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); + return v2; +} + +/** + * @param {Uint16Array} a + * @returns {Uint16Array} + */ +export function echo_vec_uninit_u16(a) { + const ptr0 = passArray16ToWasm0(a, wasm.__wbindgen_malloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.echo_vec_uninit_u16(ptr0, len0); + var v2 = getArrayU16FromWasm0(ret[0], ret[1]).slice(); + wasm.__wbindgen_free(ret[0], ret[1] * 2, 2); + return v2; +} + +/** + * @param {Int16Array} a + * @returns {Int16Array} + */ +export function echo_vec_uninit_i16(a) { + const ptr0 = passArray16ToWasm0(a, wasm.__wbindgen_malloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.echo_vec_uninit_i16(ptr0, len0); + var v2 = getArrayI16FromWasm0(ret[0], ret[1]).slice(); + wasm.__wbindgen_free(ret[0], ret[1] * 2, 2); + return v2; +} + +/** + * @param {Uint32Array} a + * @returns {Uint32Array} + */ +export function echo_vec_uninit_u32(a) { + const ptr0 = passArray32ToWasm0(a, wasm.__wbindgen_malloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.echo_vec_uninit_u32(ptr0, len0); + var v2 = getArrayU32FromWasm0(ret[0], ret[1]).slice(); + wasm.__wbindgen_free(ret[0], ret[1] * 4, 4); + return v2; +} + +/** + * @param {Int32Array} a + * @returns {Int32Array} + */ +export function echo_vec_uninit_i32(a) { + const ptr0 = passArray32ToWasm0(a, wasm.__wbindgen_malloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.echo_vec_uninit_i32(ptr0, len0); + var v2 = getArrayI32FromWasm0(ret[0], ret[1]).slice(); + wasm.__wbindgen_free(ret[0], ret[1] * 4, 4); + return v2; +} + +/** + * @param {BigUint64Array} a + * @returns {BigUint64Array} + */ +export function echo_vec_uninit_u64(a) { + const ptr0 = passArray64ToWasm0(a, wasm.__wbindgen_malloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.echo_vec_uninit_u64(ptr0, len0); + var v2 = getArrayU64FromWasm0(ret[0], ret[1]).slice(); + wasm.__wbindgen_free(ret[0], ret[1] * 8, 8); + return v2; +} + +/** + * @param {BigInt64Array} a + * @returns {BigInt64Array} + */ +export function echo_vec_uninit_i64(a) { + const ptr0 = passArray64ToWasm0(a, wasm.__wbindgen_malloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.echo_vec_uninit_i64(ptr0, len0); + var v2 = getArrayI64FromWasm0(ret[0], ret[1]).slice(); + wasm.__wbindgen_free(ret[0], ret[1] * 8, 8); + return v2; +} + function addToExternrefTable0(obj) { const idx = wasm.__externref_table_alloc(); wasm.__wbindgen_export_2.set(idx, obj); @@ -912,6 +1016,134 @@ export function echo_option_vec_i64(a) { return v2; } +/** + * @param {Uint8Array | undefined} [a] + * @returns {Uint8Array | undefined} + */ +export function echo_option_vec_uninit_u8(a) { + var ptr0 = isLikeNone(a) ? 0 : passArray8ToWasm0(a, wasm.__wbindgen_malloc); + var len0 = WASM_VECTOR_LEN; + const ret = wasm.echo_option_vec_uninit_u8(ptr0, len0); + let v2; + if (ret[0] !== 0) { + v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice(); + wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); + } + return v2; +} + +/** + * @param {Int8Array | undefined} [a] + * @returns {Int8Array | undefined} + */ +export function echo_option_vec_uninit_i8(a) { + var ptr0 = isLikeNone(a) ? 0 : passArray8ToWasm0(a, wasm.__wbindgen_malloc); + var len0 = WASM_VECTOR_LEN; + const ret = wasm.echo_option_vec_uninit_i8(ptr0, len0); + let v2; + if (ret[0] !== 0) { + v2 = getArrayI8FromWasm0(ret[0], ret[1]).slice(); + wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); + } + return v2; +} + +/** + * @param {Uint16Array | undefined} [a] + * @returns {Uint16Array | undefined} + */ +export function echo_option_vec_uninit_u16(a) { + var ptr0 = isLikeNone(a) ? 0 : passArray16ToWasm0(a, wasm.__wbindgen_malloc); + var len0 = WASM_VECTOR_LEN; + const ret = wasm.echo_option_vec_uninit_u16(ptr0, len0); + let v2; + if (ret[0] !== 0) { + v2 = getArrayU16FromWasm0(ret[0], ret[1]).slice(); + wasm.__wbindgen_free(ret[0], ret[1] * 2, 2); + } + return v2; +} + +/** + * @param {Int16Array | undefined} [a] + * @returns {Int16Array | undefined} + */ +export function echo_option_vec_uninit_i16(a) { + var ptr0 = isLikeNone(a) ? 0 : passArray16ToWasm0(a, wasm.__wbindgen_malloc); + var len0 = WASM_VECTOR_LEN; + const ret = wasm.echo_option_vec_uninit_i16(ptr0, len0); + let v2; + if (ret[0] !== 0) { + v2 = getArrayI16FromWasm0(ret[0], ret[1]).slice(); + wasm.__wbindgen_free(ret[0], ret[1] * 2, 2); + } + return v2; +} + +/** + * @param {Uint32Array | undefined} [a] + * @returns {Uint32Array | undefined} + */ +export function echo_option_vec_uninit_u32(a) { + var ptr0 = isLikeNone(a) ? 0 : passArray32ToWasm0(a, wasm.__wbindgen_malloc); + var len0 = WASM_VECTOR_LEN; + const ret = wasm.echo_option_vec_uninit_u32(ptr0, len0); + let v2; + if (ret[0] !== 0) { + v2 = getArrayU32FromWasm0(ret[0], ret[1]).slice(); + wasm.__wbindgen_free(ret[0], ret[1] * 4, 4); + } + return v2; +} + +/** + * @param {Int32Array | undefined} [a] + * @returns {Int32Array | undefined} + */ +export function echo_option_vec_uninit_i32(a) { + var ptr0 = isLikeNone(a) ? 0 : passArray32ToWasm0(a, wasm.__wbindgen_malloc); + var len0 = WASM_VECTOR_LEN; + const ret = wasm.echo_option_vec_uninit_i32(ptr0, len0); + let v2; + if (ret[0] !== 0) { + v2 = getArrayI32FromWasm0(ret[0], ret[1]).slice(); + wasm.__wbindgen_free(ret[0], ret[1] * 4, 4); + } + return v2; +} + +/** + * @param {BigUint64Array | undefined} [a] + * @returns {BigUint64Array | undefined} + */ +export function echo_option_vec_uninit_u64(a) { + var ptr0 = isLikeNone(a) ? 0 : passArray64ToWasm0(a, wasm.__wbindgen_malloc); + var len0 = WASM_VECTOR_LEN; + const ret = wasm.echo_option_vec_uninit_u64(ptr0, len0); + let v2; + if (ret[0] !== 0) { + v2 = getArrayU64FromWasm0(ret[0], ret[1]).slice(); + wasm.__wbindgen_free(ret[0], ret[1] * 8, 8); + } + return v2; +} + +/** + * @param {BigInt64Array | undefined} [a] + * @returns {BigInt64Array | undefined} + */ +export function echo_option_vec_uninit_i64(a) { + var ptr0 = isLikeNone(a) ? 0 : passArray64ToWasm0(a, wasm.__wbindgen_malloc); + var len0 = WASM_VECTOR_LEN; + const ret = wasm.echo_option_vec_uninit_i64(ptr0, len0); + let v2; + if (ret[0] !== 0) { + v2 = getArrayI64FromWasm0(ret[0], ret[1]).slice(); + wasm.__wbindgen_free(ret[0], ret[1] * 8, 8); + } + return v2; +} + /** * @param {(string)[] | undefined} [a] * @returns {(string)[] | undefined} diff --git a/crates/cli/tests/reference/echo.rs b/crates/cli/tests/reference/echo.rs index bee663ec508..815db98c363 100644 --- a/crates/cli/tests/reference/echo.rs +++ b/crates/cli/tests/reference/echo.rs @@ -1,3 +1,4 @@ +use std::mem::MaybeUninit; use wasm_bindgen::prelude::*; #[wasm_bindgen] @@ -42,6 +43,14 @@ echo!( (echo_vec_i32, Vec), (echo_vec_u64, Vec), (echo_vec_i64, Vec), + (echo_vec_uninit_u8, Vec>), + (echo_vec_uninit_i8, Vec>), + (echo_vec_uninit_u16, Vec>), + (echo_vec_uninit_i16, Vec>), + (echo_vec_uninit_u32, Vec>), + (echo_vec_uninit_i32, Vec>), + (echo_vec_uninit_u64, Vec>), + (echo_vec_uninit_i64, Vec>), (echo_vec_string, Vec), (echo_struct, Foo), (echo_vec_struct, Vec), @@ -70,6 +79,14 @@ echo!( (echo_option_vec_i32, Option>), (echo_option_vec_u64, Option>), (echo_option_vec_i64, Option>), + (echo_option_vec_uninit_u8, Option>>), + (echo_option_vec_uninit_i8, Option>>), + (echo_option_vec_uninit_u16, Option>>), + (echo_option_vec_uninit_i16, Option>>), + (echo_option_vec_uninit_u32, Option>>), + (echo_option_vec_uninit_i32, Option>>), + (echo_option_vec_uninit_u64, Option>>), + (echo_option_vec_uninit_i64, Option>>), (echo_option_vec_string, Option>), (echo_option_struct, Option), (echo_option_vec_struct, Option>) diff --git a/crates/cli/tests/reference/echo.wat b/crates/cli/tests/reference/echo.wat index f73b23625f6..aff42b9dcdc 100644 --- a/crates/cli/tests/reference/echo.wat +++ b/crates/cli/tests/reference/echo.wat @@ -61,22 +61,38 @@ (func $"echo_vec_i32 multivalue shim" (;44;) (type 5) (param i32 i32) (result i32 i32)) (func $"echo_vec_u64 multivalue shim" (;45;) (type 5) (param i32 i32) (result i32 i32)) (func $"echo_vec_i64 multivalue shim" (;46;) (type 5) (param i32 i32) (result i32 i32)) - (func $"echo_vec_string multivalue shim" (;47;) (type 5) (param i32 i32) (result i32 i32)) - (func $"echo_vec_struct multivalue shim" (;48;) (type 5) (param i32 i32) (result i32 i32)) - (func $"echo_option_u64 multivalue shim" (;49;) (type 8) (param i32 i64) (result i32 i64)) - (func $"echo_option_i64 multivalue shim" (;50;) (type 8) (param i32 i64) (result i32 i64)) - (func $"echo_option_f64 multivalue shim" (;51;) (type 10) (param i32 f64) (result i32 f64)) - (func $"echo_option_string multivalue shim" (;52;) (type 5) (param i32 i32) (result i32 i32)) - (func $"echo_option_vec_u8 multivalue shim" (;53;) (type 5) (param i32 i32) (result i32 i32)) - (func $"echo_option_vec_i8 multivalue shim" (;54;) (type 5) (param i32 i32) (result i32 i32)) - (func $"echo_option_vec_u16 multivalue shim" (;55;) (type 5) (param i32 i32) (result i32 i32)) - (func $"echo_option_vec_i16 multivalue shim" (;56;) (type 5) (param i32 i32) (result i32 i32)) - (func $"echo_option_vec_u32 multivalue shim" (;57;) (type 5) (param i32 i32) (result i32 i32)) - (func $"echo_option_vec_i32 multivalue shim" (;58;) (type 5) (param i32 i32) (result i32 i32)) - (func $"echo_option_vec_u64 multivalue shim" (;59;) (type 5) (param i32 i32) (result i32 i32)) - (func $"echo_option_vec_i64 multivalue shim" (;60;) (type 5) (param i32 i32) (result i32 i32)) - (func $"echo_option_vec_string multivalue shim" (;61;) (type 5) (param i32 i32) (result i32 i32)) - (func $"echo_option_vec_struct multivalue shim" (;62;) (type 5) (param i32 i32) (result i32 i32)) + (func $"echo_vec_uninit_u8 multivalue shim" (;47;) (type 5) (param i32 i32) (result i32 i32)) + (func $"echo_vec_uninit_i8 multivalue shim" (;48;) (type 5) (param i32 i32) (result i32 i32)) + (func $"echo_vec_uninit_u16 multivalue shim" (;49;) (type 5) (param i32 i32) (result i32 i32)) + (func $"echo_vec_uninit_i16 multivalue shim" (;50;) (type 5) (param i32 i32) (result i32 i32)) + (func $"echo_vec_uninit_u32 multivalue shim" (;51;) (type 5) (param i32 i32) (result i32 i32)) + (func $"echo_vec_uninit_i32 multivalue shim" (;52;) (type 5) (param i32 i32) (result i32 i32)) + (func $"echo_vec_uninit_u64 multivalue shim" (;53;) (type 5) (param i32 i32) (result i32 i32)) + (func $"echo_vec_uninit_i64 multivalue shim" (;54;) (type 5) (param i32 i32) (result i32 i32)) + (func $"echo_vec_string multivalue shim" (;55;) (type 5) (param i32 i32) (result i32 i32)) + (func $"echo_vec_struct multivalue shim" (;56;) (type 5) (param i32 i32) (result i32 i32)) + (func $"echo_option_u64 multivalue shim" (;57;) (type 8) (param i32 i64) (result i32 i64)) + (func $"echo_option_i64 multivalue shim" (;58;) (type 8) (param i32 i64) (result i32 i64)) + (func $"echo_option_f64 multivalue shim" (;59;) (type 10) (param i32 f64) (result i32 f64)) + (func $"echo_option_string multivalue shim" (;60;) (type 5) (param i32 i32) (result i32 i32)) + (func $"echo_option_vec_u8 multivalue shim" (;61;) (type 5) (param i32 i32) (result i32 i32)) + (func $"echo_option_vec_i8 multivalue shim" (;62;) (type 5) (param i32 i32) (result i32 i32)) + (func $"echo_option_vec_u16 multivalue shim" (;63;) (type 5) (param i32 i32) (result i32 i32)) + (func $"echo_option_vec_i16 multivalue shim" (;64;) (type 5) (param i32 i32) (result i32 i32)) + (func $"echo_option_vec_u32 multivalue shim" (;65;) (type 5) (param i32 i32) (result i32 i32)) + (func $"echo_option_vec_i32 multivalue shim" (;66;) (type 5) (param i32 i32) (result i32 i32)) + (func $"echo_option_vec_u64 multivalue shim" (;67;) (type 5) (param i32 i32) (result i32 i32)) + (func $"echo_option_vec_i64 multivalue shim" (;68;) (type 5) (param i32 i32) (result i32 i32)) + (func $"echo_option_vec_uninit_u8 multivalue shim" (;69;) (type 5) (param i32 i32) (result i32 i32)) + (func $"echo_option_vec_uninit_i8 multivalue shim" (;70;) (type 5) (param i32 i32) (result i32 i32)) + (func $"echo_option_vec_uninit_u16 multivalue shim" (;71;) (type 5) (param i32 i32) (result i32 i32)) + (func $"echo_option_vec_uninit_i16 multivalue shim" (;72;) (type 5) (param i32 i32) (result i32 i32)) + (func $"echo_option_vec_uninit_u32 multivalue shim" (;73;) (type 5) (param i32 i32) (result i32 i32)) + (func $"echo_option_vec_uninit_i32 multivalue shim" (;74;) (type 5) (param i32 i32) (result i32 i32)) + (func $"echo_option_vec_uninit_u64 multivalue shim" (;75;) (type 5) (param i32 i32) (result i32 i32)) + (func $"echo_option_vec_uninit_i64 multivalue shim" (;76;) (type 5) (param i32 i32) (result i32 i32)) + (func $"echo_option_vec_string multivalue shim" (;77;) (type 5) (param i32 i32) (result i32 i32)) + (func $"echo_option_vec_struct multivalue shim" (;78;) (type 5) (param i32 i32) (result i32 i32)) (table (;0;) 128 externref) (memory (;0;) 17) (export "memory" (memory 0)) @@ -106,6 +122,14 @@ (export "echo_vec_i32" (func $"echo_vec_i32 multivalue shim")) (export "echo_vec_u64" (func $"echo_vec_u64 multivalue shim")) (export "echo_vec_i64" (func $"echo_vec_i64 multivalue shim")) + (export "echo_vec_uninit_u8" (func $"echo_vec_uninit_u8 multivalue shim")) + (export "echo_vec_uninit_i8" (func $"echo_vec_uninit_i8 multivalue shim")) + (export "echo_vec_uninit_u16" (func $"echo_vec_uninit_u16 multivalue shim")) + (export "echo_vec_uninit_i16" (func $"echo_vec_uninit_i16 multivalue shim")) + (export "echo_vec_uninit_u32" (func $"echo_vec_uninit_u32 multivalue shim")) + (export "echo_vec_uninit_i32" (func $"echo_vec_uninit_i32 multivalue shim")) + (export "echo_vec_uninit_u64" (func $"echo_vec_uninit_u64 multivalue shim")) + (export "echo_vec_uninit_i64" (func $"echo_vec_uninit_i64 multivalue shim")) (export "echo_vec_string" (func $"echo_vec_string multivalue shim")) (export "echo_struct" (func $echo_struct)) (export "echo_vec_struct" (func $"echo_vec_struct multivalue shim")) @@ -134,6 +158,14 @@ (export "echo_option_vec_i32" (func $"echo_option_vec_i32 multivalue shim")) (export "echo_option_vec_u64" (func $"echo_option_vec_u64 multivalue shim")) (export "echo_option_vec_i64" (func $"echo_option_vec_i64 multivalue shim")) + (export "echo_option_vec_uninit_u8" (func $"echo_option_vec_uninit_u8 multivalue shim")) + (export "echo_option_vec_uninit_i8" (func $"echo_option_vec_uninit_i8 multivalue shim")) + (export "echo_option_vec_uninit_u16" (func $"echo_option_vec_uninit_u16 multivalue shim")) + (export "echo_option_vec_uninit_i16" (func $"echo_option_vec_uninit_i16 multivalue shim")) + (export "echo_option_vec_uninit_u32" (func $"echo_option_vec_uninit_u32 multivalue shim")) + (export "echo_option_vec_uninit_i32" (func $"echo_option_vec_uninit_i32 multivalue shim")) + (export "echo_option_vec_uninit_u64" (func $"echo_option_vec_uninit_u64 multivalue shim")) + (export "echo_option_vec_uninit_i64" (func $"echo_option_vec_uninit_i64 multivalue shim")) (export "echo_option_vec_string" (func $"echo_option_vec_string multivalue shim")) (export "echo_option_struct" (func $echo_option_struct)) (export "echo_option_vec_struct" (func $"echo_option_vec_struct multivalue shim"))