add validation via wabt-rs and fix

This commit is contained in:
NikVolf 2018-02-05 00:40:28 +03:00
parent 24dc9e3f15
commit d220107dab
2 changed files with 12 additions and 1 deletions

View File

@ -14,6 +14,7 @@ byteorder = "1"
[dev-dependencies] [dev-dependencies]
tempdir = "0.3" tempdir = "0.3"
wabt = "0.1"
[lib] [lib]

View File

@ -53,6 +53,7 @@ fn add_grow_counter(module: elements::Module, rules: &rules::Set, gas_func: u32)
GetLocal(1), GetLocal(1),
GrowMemory(0), GrowMemory(0),
GetLocal(0), GetLocal(0),
End,
])) ]))
.build() .build()
.build() .build()
@ -196,7 +197,9 @@ pub fn inject_gas_counter(module: elements::Module, rules: &rules::Set) -> eleme
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use parity_wasm::{builder, elements}; extern crate wabt;
use parity_wasm::{serialize, builder, elements};
use super::*; use super::*;
use rules; use rules;
@ -246,11 +249,15 @@ mod tests {
GetLocal(1), GetLocal(1),
GrowMemory(0), GrowMemory(0),
GetLocal(0), GetLocal(0),
End,
][..], ][..],
injected_module injected_module
.code_section().expect("function section should exist").bodies()[1] .code_section().expect("function section should exist").bodies()[1]
.code().elements() .code().elements()
); );
let binary = serialize(injected_module).expect("serialization failed");
self::wabt::wasm2wat(&binary).unwrap();
} }
#[test] #[test]
@ -291,6 +298,9 @@ mod tests {
); );
assert_eq!(injected_module.functions_space(), 2); assert_eq!(injected_module.functions_space(), 2);
let binary = serialize(injected_module).expect("serialization failed");
self::wabt::wasm2wat(&binary).unwrap();
} }
#[test] #[test]