Skip to content

Commit 4bb766b

Browse files
committed
added encoder integration test
1 parent ac76100 commit 4bb766b

File tree

1 file changed

+40
-5
lines changed

1 file changed

+40
-5
lines changed

tests/integration_encoding.rs

Lines changed: 40 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,44 @@
1-
use libipt::{ ConfigBuilder, Cpu, Encoder };
1+
use libipt::{ ConfigBuilder, Cpu };
2+
use libipt::packet::*;
23

34
#[test]
4-
fn test_encoder_encode() {
5-
let mut inp = [0; 10];
6-
let mut cfg = ConfigBuilder::new(&mut inp).finish();
7-
let enc = Encoder::new(&mut cfg);
5+
fn test_encoder_all_packets() {
6+
let mut inp = [0; 132];
7+
let mut cfg = ConfigBuilder::new(&mut inp)
8+
.cpu(Cpu::intel(1, 2, 3))
9+
.finish();
810

11+
let mut enc = Encoder::new(&mut cfg).unwrap();
12+
13+
let mut size: u32 = 0;
14+
15+
size += enc.next(Pad::new()).unwrap();
16+
size += enc.next(Psb::new()).unwrap();
17+
size += enc.next(Psbend::new()).unwrap();
18+
size += enc.next(Ovf::new()).unwrap();
19+
20+
size += enc.next(Fup::new(123, Compression::Sext48)).unwrap();
21+
size += enc.next(Tip::new(321, Compression::Full)).unwrap();
22+
size += enc.next(TipPge::new(666, Compression::Suppressed)).unwrap();
23+
size += enc.next(TipPgd::new(888, Compression::Update16)).unwrap();
24+
size += enc.next(Tnt8::new(3, 4)).unwrap();
25+
size += enc.next(Tnt64::new(4, 13)).unwrap();
26+
size += enc.next(Mode::new(Payload::Exec(Exec::CSL | Exec::CSD))).unwrap();
27+
size += enc.next(Pip::new(1337, false)).unwrap();
28+
size += enc.next(Tsc::new(69)).unwrap();
29+
size += enc.next(Cbr::new(5)).unwrap();
30+
size += enc.next(Tma::new(420, 421)).unwrap();
31+
size += enc.next(Mtc::new(0)).unwrap();
32+
size += enc.next(Cyc::new(0xCA7)).unwrap();
33+
size += enc.next(Stop::new()).unwrap();
34+
size += enc.next(Vmcs::new(111)).unwrap();
35+
size += enc.next(Mnt::new(222)).unwrap();
36+
size += enc.next(Exstop::new(true)).unwrap();
37+
size += enc.next(Mwait::new(333, 444)).unwrap();
38+
size += enc.next(Pwre::new(101, 10, false)).unwrap();
39+
size += enc.next(Pwrx::new(1, 2, false, true, false)).unwrap();
40+
size += enc.next(Ptw::new(5, 0, false)).unwrap();
41+
42+
assert_eq!(size, 132);
43+
assert!(enc.next(Pad::new()).is_err());
944
}

0 commit comments

Comments
 (0)