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]
tempdir = "0.3"
wabt = "0.1"
[lib]

View File

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