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