1
- use libipt:: { ConfigBuilder , Cpu , Encoder } ;
1
+ use libipt:: { ConfigBuilder , Cpu } ;
2
+ use libipt:: packet:: * ;
2
3
3
4
#[ 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 ( ) ;
8
10
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( ) ) ;
9
44
}
0 commit comments