diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-12 05:43:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-12 05:43:14 +0000 |
commit | 8dd16259287f58f9273002717ec4d27e97127719 (patch) | |
tree | 3863e62a53829a84037444beab3abd4ed9dfc7d0 /third_party/rust/wasm-smith/tests/core.rs | |
parent | Releasing progress-linux version 126.0.1-1~progress7.99u1. (diff) | |
download | firefox-8dd16259287f58f9273002717ec4d27e97127719.tar.xz firefox-8dd16259287f58f9273002717ec4d27e97127719.zip |
Merging upstream version 127.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/rust/wasm-smith/tests/core.rs')
-rw-r--r-- | third_party/rust/wasm-smith/tests/core.rs | 55 |
1 files changed, 5 insertions, 50 deletions
diff --git a/third_party/rust/wasm-smith/tests/core.rs b/third_party/rust/wasm-smith/tests/core.rs index 7286952dc6..9b18fcdeaf 100644 --- a/third_party/rust/wasm-smith/tests/core.rs +++ b/third_party/rust/wasm-smith/tests/core.rs @@ -3,6 +3,9 @@ use rand::{rngs::SmallRng, RngCore, SeedableRng}; use wasm_smith::{Config, Module}; use wasmparser::{Validator, WasmFeatures}; +mod common; +use common::{parser_features_from_config, validate}; + #[test] fn smoke_test_module() { let mut rng = SmallRng::seed_from_u64(0); @@ -66,7 +69,7 @@ fn multi_value_disabled() { if let Ok(module) = Module::new(cfg, &mut u) { let wasm_bytes = module.to_bytes(); let mut features = wasm_features(); - features.multi_value = false; + features.remove(WasmFeatures::MULTI_VALUE); let mut validator = Validator::new_with_features(features); validate(&mut validator, &wasm_bytes); } @@ -140,53 +143,5 @@ fn smoke_test_wasm_gc() { } fn wasm_features() -> WasmFeatures { - WasmFeatures { - multi_memory: true, - relaxed_simd: true, - memory64: true, - exceptions: true, - tail_call: true, - function_references: true, - gc: true, - ..WasmFeatures::default() - } -} - -fn parser_features_from_config(config: &Config) -> WasmFeatures { - WasmFeatures { - mutable_global: true, - saturating_float_to_int: config.saturating_float_to_int_enabled, - sign_extension: config.sign_extension_ops_enabled, - reference_types: config.reference_types_enabled, - multi_value: config.multi_value_enabled, - bulk_memory: config.bulk_memory_enabled, - simd: config.simd_enabled, - relaxed_simd: config.relaxed_simd_enabled, - multi_memory: config.max_memories > 1, - exceptions: config.exceptions_enabled, - memory64: config.memory64_enabled, - tail_call: config.tail_call_enabled, - - threads: false, - floats: true, - extended_const: false, - component_model: false, - function_references: false, - memory_control: false, - gc: false, - component_model_values: false, - component_model_nested_names: false, - } -} - -fn validate(validator: &mut Validator, bytes: &[u8]) { - let err = match validator.validate_all(bytes) { - Ok(_) => return, - Err(e) => e, - }; - drop(std::fs::write("test.wasm", &bytes)); - if let Ok(text) = wasmprinter::print_bytes(bytes) { - drop(std::fs::write("test.wat", &text)); - } - panic!("wasm failed to validate: {}", err); + WasmFeatures::all() } |