mirror of
https://github.com/fluencelabs/parity-wasm
synced 2025-05-22 20:21:33 +00:00
add edge case for i64.const
This commit is contained in:
parent
a4e2ec0adb
commit
5f1cf258cc
Binary file not shown.
@ -1,6 +1,8 @@
|
|||||||
(module
|
(module
|
||||||
(type (;0;) (func (result i32)))
|
(type (;0;) (func (result i32)))
|
||||||
(func (;0;) (type 0) (result i32)
|
(func (;0;) (type 0) (result i32)
|
||||||
|
i64.const 9223372036854775807
|
||||||
|
i64.const -9223372036854775808
|
||||||
i32.const 1024
|
i32.const 1024
|
||||||
i32.const 2048
|
i32.const 2048
|
||||||
i32.const 4096
|
i32.const 4096
|
||||||
|
@ -22,7 +22,7 @@ impl Default for Module {
|
|||||||
magic: 0x6d736100,
|
magic: 0x6d736100,
|
||||||
version: 1,
|
version: 1,
|
||||||
sections: Vec::with_capacity(16),
|
sections: Vec::with_capacity(16),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -83,7 +83,7 @@ impl Module {
|
|||||||
for section in self.sections() {
|
for section in self.sections() {
|
||||||
if let &Section::Global(ref section) = section { return Some(section); }
|
if let &Section::Global(ref section) = section { return Some(section); }
|
||||||
}
|
}
|
||||||
None
|
None
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Exports section, if any.
|
/// Exports section, if any.
|
||||||
@ -131,7 +131,7 @@ impl Module {
|
|||||||
for section in self.sections() {
|
for section in self.sections() {
|
||||||
if let &Section::Function(ref sect) = section { return Some(sect); }
|
if let &Section::Function(ref sect) = section { return Some(sect); }
|
||||||
}
|
}
|
||||||
None
|
None
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Start section, if any.
|
/// Start section, if any.
|
||||||
@ -169,12 +169,12 @@ impl Deserialize for Module {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(Module {
|
Ok(Module {
|
||||||
magic: LittleEndian::read_u32(&magic),
|
magic: LittleEndian::read_u32(&magic),
|
||||||
version: version,
|
version: version,
|
||||||
sections: sections,
|
sections: sections,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Serialize for Module {
|
impl Serialize for Module {
|
||||||
@ -249,7 +249,7 @@ mod integration_tests {
|
|||||||
module_new.import_section().expect("import section exists").entries().len(),
|
module_new.import_section().expect("import section exists").entries().len(),
|
||||||
"There should be equal amount of import entries before and after serialization"
|
"There should be equal amount of import entries before and after serialization"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn serde_code() {
|
fn serde_code() {
|
||||||
@ -275,20 +275,22 @@ mod integration_tests {
|
|||||||
|
|
||||||
let module = deserialize_file("./res/cases/v1/const.wasm").expect("Should be deserialized");
|
let module = deserialize_file("./res/cases/v1/const.wasm").expect("Should be deserialized");
|
||||||
let func = &module.code_section().expect("Code section to exist").bodies()[0];
|
let func = &module.code_section().expect("Code section to exist").bodies()[0];
|
||||||
assert_eq!(func.code().elements().len(), 14);
|
assert_eq!(func.code().elements().len(), 16);
|
||||||
|
|
||||||
assert_eq!(I32Const(1024), func.code().elements()[0]);
|
assert_eq!(I64Const(9223372036854775807), func.code().elements()[0]);
|
||||||
assert_eq!(I32Const(2048), func.code().elements()[1]);
|
assert_eq!(I64Const(-9223372036854775808), func.code().elements()[1]);
|
||||||
assert_eq!(I32Const(4096), func.code().elements()[2]);
|
assert_eq!(I32Const(1024), func.code().elements()[2]);
|
||||||
assert_eq!(I32Const(8192), func.code().elements()[3]);
|
assert_eq!(I32Const(2048), func.code().elements()[3]);
|
||||||
assert_eq!(I32Const(16384), func.code().elements()[4]);
|
assert_eq!(I32Const(4096), func.code().elements()[4]);
|
||||||
assert_eq!(I32Const(32767), func.code().elements()[5]);
|
assert_eq!(I32Const(8192), func.code().elements()[5]);
|
||||||
assert_eq!(I32Const(-1024), func.code().elements()[6]);
|
assert_eq!(I32Const(16384), func.code().elements()[6]);
|
||||||
assert_eq!(I32Const(-2048), func.code().elements()[7]);
|
assert_eq!(I32Const(32767), func.code().elements()[7]);
|
||||||
assert_eq!(I32Const(-4096), func.code().elements()[8]);
|
assert_eq!(I32Const(-1024), func.code().elements()[8]);
|
||||||
assert_eq!(I32Const(-8192), func.code().elements()[9]);
|
assert_eq!(I32Const(-2048), func.code().elements()[9]);
|
||||||
assert_eq!(I32Const(-16384), func.code().elements()[10]);
|
assert_eq!(I32Const(-4096), func.code().elements()[10]);
|
||||||
assert_eq!(I32Const(-32768), func.code().elements()[11]);
|
assert_eq!(I32Const(-8192), func.code().elements()[11]);
|
||||||
|
assert_eq!(I32Const(-16384), func.code().elements()[12]);
|
||||||
|
assert_eq!(I32Const(-32768), func.code().elements()[13]);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user