File tree Expand file tree Collapse file tree 1 file changed +18
-0
lines changed Expand file tree Collapse file tree 1 file changed +18
-0
lines changed Original file line number Diff line number Diff line change @@ -476,6 +476,24 @@ pub(crate) mod tests {
476476 assert ! ( !q. is_valid( m) ) ;
477477 q. size = q. max_size ;
478478
479+ // or when avail_idx - next_avail > max_size
480+ q. next_avail = Wrapping ( 5 ) ;
481+ assert ! ( !q. is_valid( m) ) ;
482+ // avail_ring + 2 is the address of avail_idx in guest mem
483+ m. write_obj :: < u16 > ( 64 as u16 , q. avail_ring . unchecked_add ( 2 ) )
484+ . unwrap ( ) ;
485+ assert ! ( !q. is_valid( m) ) ;
486+ m. write_obj :: < u16 > ( 5 as u16 , q. avail_ring . unchecked_add ( 2 ) )
487+ . unwrap ( ) ;
488+ q. max_size = 2 ;
489+ assert ! ( !q. is_valid( m) ) ;
490+
491+ // reset dirtied values
492+ q. max_size = 16 ;
493+ q. next_avail = Wrapping ( 0 ) ;
494+ m. write_obj :: < u16 > ( 0 , q. avail_ring . unchecked_add ( 2 ) )
495+ . unwrap ( ) ;
496+
479497 // or if the various addresses are off
480498
481499 q. desc_table = GuestAddress ( 0xffff_ffff ) ;
You can’t perform that action at this time.
0 commit comments