diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:47:29 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:47:29 +0000 |
commit | 0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d (patch) | |
tree | a31f07c9bcca9d56ce61e9a1ffd30ef350d513aa /third_party/rust/wasmparser/tests | |
parent | Initial commit. (diff) | |
download | firefox-esr-0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d.tar.xz firefox-esr-0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d.zip |
Adding upstream version 115.8.0esr.upstream/115.8.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/rust/wasmparser/tests')
-rw-r--r-- | third_party/rust/wasmparser/tests/big-module.rs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/third_party/rust/wasmparser/tests/big-module.rs b/third_party/rust/wasmparser/tests/big-module.rs new file mode 100644 index 0000000000..d5cf37f4a4 --- /dev/null +++ b/third_party/rust/wasmparser/tests/big-module.rs @@ -0,0 +1,32 @@ +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.function([], []); + } + module.section(&types); + let mut funcs = FunctionSection::new(); + funcs.function(N - 1); + module.section(&funcs); + + let mut elems = ElementSection::new(); + elems.declared(RefType::FUNCREF, Elements::Functions(&[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(); +} |