1
0
Fork 0
firefox/third_party/rust/wasmparser/tests/big-module.rs
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00

34 lines
887 B
Rust

use std::borrow::Cow;
use wasm_encoder::*;
#[test]
fn big_type_indices() {
const N: u32 = 100_000;
let mut module = Module::new();
let mut types = TypeSection::new();
for _ in 0..N {
types.ty().function([], []);
}
module.section(&types);
let mut funcs = FunctionSection::new();
funcs.function(N - 1);
module.section(&funcs);
let mut elems = ElementSection::new();
elems.declared(Elements::Functions(Cow::Borrowed(&[0])));
module.section(&elems);
let mut code = CodeSection::new();
let mut body = Function::new([]);
body.instruction(&Instruction::RefFunc(0));
body.instruction(&Instruction::Drop);
body.instruction(&Instruction::End);
code.function(&body);
module.section(&code);
let wasm = module.finish();
wasmparser::Validator::default()
.validate_all(&wasm)
.unwrap();
}