@@ -487,6 +487,37 @@ mod tests {
487487 }
488488 }
489489
490+ #[ test]
491+ fn test_push_compression_inplace_different_position_reverse ( ) {
492+ let mut builder = IndexBuilder :: new ( 1 ) ;
493+ builder. push ( 0 , "nixosTests.pretalx" ) ;
494+ builder. push ( 0 , "pretalx" ) ;
495+ let index: Index = builder. into ( ) ;
496+
497+ assert_eq ! ( index. entries. len( ) , 2 ) ;
498+
499+ assert_eq ! ( index. entries[ 0 ] . labels. len( ) , 2 ) ;
500+ match & index. entries [ 0 ] . labels [ 0 ] {
501+ Label :: Reference ( reference) => {
502+ assert_eq ! ( reference. entry_idx, 0 ) ;
503+ assert_eq ! ( reference. label_idx, 0 ) ;
504+ }
505+ Label :: InPlace ( label) => assert_eq ! ( label, b"nixosTests" ) ,
506+ }
507+ match & index. entries [ 0 ] . labels [ 1 ] {
508+ Label :: InPlace ( label) => assert_eq ! ( label, b"pretalx" ) ,
509+ _ => unreachable ! ( "Expected no InPlace label" ) ,
510+ }
511+
512+ assert_eq ! ( index. entries[ 1 ] . labels. len( ) , 1 ) ;
513+ match & index. entries [ 1 ] . labels [ 0 ] {
514+ Label :: InPlace ( label) => { // TODO!!! this should be a Reference!
515+ assert_eq ! ( label, b"pretalx" ) ;
516+ }
517+ _ => unreachable ! ( "Expected no Reference label" ) ,
518+ }
519+ }
520+
490521 #[ test]
491522 fn test_labels_match_inplace ( ) {
492523 let labels = vec ! [ Label :: InPlace ( b"foo" . to_vec( ) ) , Label :: InPlace ( b"bar" . to_vec( ) ) ] ;
0 commit comments