cyb/wysm/crates/cli/src/tests.rs

use crate::display::DisplayFuncType;
use core::borrow::Borrow;
use wasmi::{FuncType, ValType};

fn assert_display(func_type: impl Borrow<FuncType>, expected: &str) {
    assert_eq!(
        format!("{}", DisplayFuncType::from(func_type.borrow())),
        String::from(expected),
    );
}

macro_rules! func_ty {
    ($params:expr, $results:expr $(,)?) => {{ FuncType::new($params, $results) }};
}

#[test]
fn display_0in_0out() {
    assert_display(func_ty!([], []), "fn()");
}

#[test]
fn display_1in_0out() {
    assert_display(func_ty!([ValType::I32], []), "fn(i32)");
}

#[test]
fn display_0in_1out() {
    assert_display(func_ty!([], [ValType::I32]), "fn() -> i32");
}

#[test]
fn display_1in_1out() {
    assert_display(func_ty!([ValType::I32], [ValType::I32]), "fn(i32) -> i32");
}

#[test]
fn display_4in_0out() {
    assert_display(
        func_ty!([ValType::I32, ValType::I64, ValType::F32, ValType::F64], []),
        "fn(i32, i64, f32, f64)",
    );
}

#[test]
fn display_0in_4out() {
    assert_display(
        func_ty!([], [ValType::I32, ValType::I64, ValType::F32, ValType::F64]),
        "fn() -> (i32, i64, f32, f64)",
    );
}

#[test]
fn display_4in_4out() {
    assert_display(
        func_ty!(
            [ValType::I32, ValType::I64, ValType::F32, ValType::F64],
            [ValType::I32, ValType::I64, ValType::F32, ValType::F64],
        ),
        "fn(i32, i64, f32, f64) -> (i32, i64, f32, f64)",
    );
}

Homonyms

neural/trident/src/deploy/tests.rs
soft3/radio/iroh-blobs/src/tests.rs
cyb/honeycrisp/aruminium/src/tests.rs
neural/trident/src/package/store/tests.rs
neural/trident/src/lsp/util/tests.rs
neural/trident/src/ir/lir/tests.rs
neural/trident/src/verify/sym/tests.rs
cyb/wysm/crates/collections/src/tests.rs
neural/trident/src/cost/stack_verifier/tests.rs
neural/trident/src/package/registry/tests.rs
neural/trident/src/syntax/lexer/tests.rs
neural/trident/src/syntax/format/tests.rs
neural/trident/src/verify/smt/tests.rs
neural/trident/src/syntax/grammar/tests.rs
cyb/wysm/crates/wasmi/src/tests.rs
neural/trident/src/verify/report/tests.rs
neural/trident/src/config/scaffold/tests.rs
neural/trident/src/lsp/semantic/tests.rs
neural/trident/src/verify/equiv/tests.rs
neural/trident/src/verify/solve/tests.rs
neural/trident/src/verify/synthesize/tests.rs
neural/trident/src/config/resolve/tests.rs
cyb/honeycrisp/aruminium/src/render/tests.rs
neural/trident/src/package/manifest/tests.rs
neural/trident/src/package/hash/tests.rs
cyb/wysm/crates/wasmi/src/instance/tests.rs
neural/trident/src/ir/tir/optimize/tests.rs
neural/trident/src/ir/tir/lower/tests.rs
bootloader/go-cyber/cw/contracts/graph-filter/src/tests.rs
cyb/wysm/crates/core/src/table/tests.rs
cyb/evy/forks/bevy_ecs/src/bundle/tests.rs
neural/trident/src/neural/data/tir_graph/tests.rs
cyb/wysm/crates/core/src/memory/tests.rs
neural/trident/src/ir/tir/stack/tests.rs
cyb/wysm/crates/wasmi/src/engine/limits/tests.rs
cyb/wysm/crates/wasmi/src/module/instantiate/tests.rs
cyb/evy/forks/naga/src/front/wgsl/tests.rs

Graph