Skip to content

Commit

Permalink
Add reference test
Browse files Browse the repository at this point in the history
Co-Authored-By: Michael Schmidt <[email protected]>
  • Loading branch information
daxpedda and RunDevelopment committed Dec 6, 2024
1 parent 34818be commit 7b030d6
Show file tree
Hide file tree
Showing 4 changed files with 313 additions and 16 deletions.
16 changes: 16 additions & 0 deletions crates/cli/tests/reference/echo.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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)[];
Expand Down Expand Up @@ -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;
Expand Down
232 changes: 232 additions & 0 deletions crates/cli/tests/reference/echo.js
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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}
Expand Down
17 changes: 17 additions & 0 deletions crates/cli/tests/reference/echo.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
use std::mem::MaybeUninit;
use wasm_bindgen::prelude::*;

#[wasm_bindgen]
Expand Down Expand Up @@ -42,6 +43,14 @@ echo!(
(echo_vec_i32, Vec<i32>),
(echo_vec_u64, Vec<u64>),
(echo_vec_i64, Vec<i64>),
(echo_vec_uninit_u8, Vec<MaybeUninit<u8>>),
(echo_vec_uninit_i8, Vec<MaybeUninit<i8>>),
(echo_vec_uninit_u16, Vec<MaybeUninit<u16>>),
(echo_vec_uninit_i16, Vec<MaybeUninit<i16>>),
(echo_vec_uninit_u32, Vec<MaybeUninit<u32>>),
(echo_vec_uninit_i32, Vec<MaybeUninit<i32>>),
(echo_vec_uninit_u64, Vec<MaybeUninit<u64>>),
(echo_vec_uninit_i64, Vec<MaybeUninit<i64>>),
(echo_vec_string, Vec<String>),
(echo_struct, Foo),
(echo_vec_struct, Vec<Foo>),
Expand Down Expand Up @@ -70,6 +79,14 @@ echo!(
(echo_option_vec_i32, Option<Vec<i32>>),
(echo_option_vec_u64, Option<Vec<u64>>),
(echo_option_vec_i64, Option<Vec<i64>>),
(echo_option_vec_uninit_u8, Option<Vec<MaybeUninit<u8>>>),
(echo_option_vec_uninit_i8, Option<Vec<MaybeUninit<i8>>>),
(echo_option_vec_uninit_u16, Option<Vec<MaybeUninit<u16>>>),
(echo_option_vec_uninit_i16, Option<Vec<MaybeUninit<i16>>>),
(echo_option_vec_uninit_u32, Option<Vec<MaybeUninit<u32>>>),
(echo_option_vec_uninit_i32, Option<Vec<MaybeUninit<i32>>>),
(echo_option_vec_uninit_u64, Option<Vec<MaybeUninit<u64>>>),
(echo_option_vec_uninit_i64, Option<Vec<MaybeUninit<i64>>>),
(echo_option_vec_string, Option<Vec<String>>),
(echo_option_struct, Option<Foo>),
(echo_option_vec_struct, Option<Vec<Foo>>)
Expand Down
64 changes: 48 additions & 16 deletions crates/cli/tests/reference/echo.wat
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand Down Expand Up @@ -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"))
Expand Down Expand Up @@ -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"))
Expand Down

0 comments on commit 7b030d6

Please sign in to comment.