- Properly mask constant values down to appropriate width when generating a constant value directly in aarch64 backend. This was a miscompilation introduced in the new-isel refactor. In combination with failure to respect NarrowValueMode, this resulted in a very subtle bug when an `i32` constant was used in bit-twiddling logic. - Add support for `iadd_ifcout` in aarch64 backend as used in explicit heap-check mode. With this change, we no longer fail heap-related tests with the huge-heap-region mode disabled. - Remove a panic that was occurring in some tests that are currently ignored on aarch64, by simply returning empty/default information in `value_label` functionality rather than touching unimplemented APIs. This is not a bugfix per-se, but removes confusing panic messages from `cargo test` output that might otherwise mislead.
31 lines
1.0 KiB
Rust
31 lines
1.0 KiB
Rust
//! Regression tests for bugs found via fuzzing.
|
|
//!
|
|
//! The `#[test]` goes in here, the Wasm binary goes in
|
|
//! `./fuzzing/some-descriptive-name.wasm`, and then the `#[test]` should
|
|
//! use the Wasm binary by including it via
|
|
//! `include_bytes!("./fuzzing/some-descriptive-name.wasm")`.
|
|
|
|
use wasmtime::{Config, Strategy};
|
|
use wasmtime_fuzzing::oracles;
|
|
|
|
#[test]
|
|
fn instantiate_empty_module() {
|
|
let data = wat::parse_str(include_str!("./fuzzing/empty.wat")).unwrap();
|
|
oracles::instantiate(&data, Strategy::Auto);
|
|
}
|
|
|
|
#[test]
|
|
fn instantiate_empty_module_with_memory() {
|
|
let data = wat::parse_str(include_str!("./fuzzing/empty_with_memory.wat")).unwrap();
|
|
oracles::instantiate(&data, Strategy::Auto);
|
|
}
|
|
|
|
#[test]
|
|
#[cfg_attr(target_arch = "aarch64", ignore)] // FIXME(#1523)
|
|
fn instantiate_module_that_compiled_to_x64_has_register_32() {
|
|
let mut config = Config::new();
|
|
config.debug_info(true);
|
|
let data = wat::parse_str(include_str!("./fuzzing/issue694.wat")).unwrap();
|
|
oracles::instantiate_with_config(&data, config);
|
|
}
|