Skip to content

Commit 79d2495

Browse files
committed
Add disasm mode setting test
1 parent 260a478 commit 79d2495

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

sleighcraft/tests/mod.rs

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
use sleighcraft::prelude::*;
2+
use sleighcraft::Mode::{Mode32, Mode64};
23

34
// #[test]
45
// fn test_custom_spec() {
@@ -48,3 +49,45 @@ fn test_x86_case_ignoring() {
4849
println!("{:?}", asm_emit.asms);
4950
println!("{:?}", pcode_emit.pcode_asms);
5051
}
52+
53+
#[test]
54+
fn test_x86_32_bit() {
55+
let mut sleigh_builder = SleighBuilder::default();
56+
let spec = arch("x86").unwrap();
57+
let buf = [0x90, 0x32, 0x31];
58+
let mut loader = PlainLoadImage::from_buf(&buf, 0);
59+
sleigh_builder.loader(&mut loader);
60+
sleigh_builder.spec(spec);
61+
sleigh_builder.mode(Mode32);
62+
let mut asm_emit = CollectingAssemblyEmit::default();
63+
let mut pcode_emit = CollectingPcodeEmit::default();
64+
sleigh_builder.asm_emit(&mut asm_emit);
65+
sleigh_builder.pcode_emit(&mut pcode_emit);
66+
let mut sleigh = sleigh_builder.try_build().unwrap();
67+
68+
sleigh.decode(0).unwrap();
69+
70+
println!("{:?}", asm_emit.asms);
71+
println!("{:?}", pcode_emit.pcode_asms);
72+
}
73+
74+
#[test]
75+
fn test_x86_64_bit() {
76+
let mut sleigh_builder = SleighBuilder::default();
77+
let spec = arch("x86-64").unwrap();
78+
let buf = [72, 49, 192];
79+
let mut loader = PlainLoadImage::from_buf(&buf, 0);
80+
sleigh_builder.loader(&mut loader);
81+
sleigh_builder.spec(spec);
82+
sleigh_builder.mode(Mode64);
83+
let mut asm_emit = CollectingAssemblyEmit::default();
84+
let mut pcode_emit = CollectingPcodeEmit::default();
85+
sleigh_builder.asm_emit(&mut asm_emit);
86+
sleigh_builder.pcode_emit(&mut pcode_emit);
87+
let mut sleigh = sleigh_builder.try_build().unwrap();
88+
89+
sleigh.decode(0).unwrap();
90+
91+
println!("{:?}", asm_emit.asms);
92+
println!("{:?}", pcode_emit.pcode_asms);
93+
}

0 commit comments

Comments
 (0)