@@ -1028,3 +1028,49 @@ fn drain_keep_rest() {
10281028
10291029 assert_eq ! ( a, SmallVec :: <i32 , 3 >:: from_slice( & [ 1i32 , 3 , 5 , 6 , 7 , 8 ] ) ) ;
10301030}
1031+
1032+ #[ cfg( all( feature = "get-size" , target_pointer_width = "64" ) ) ]
1033+ #[ test]
1034+ fn get_size_end_to_end1 ( ) {
1035+ use :: get_size:: GetSize ;
1036+
1037+ assert_eq ! ( SmallVec :: <i32 , 2 >:: get_stack_size( ) , 24 ) ;
1038+ assert_eq ! ( SmallVec :: <i32 , 10 >:: get_stack_size( ) , 48 ) ;
1039+
1040+ let mut a: SmallVec < i32 , 2 > = smallvec ! [ ] ;
1041+ assert ! ( !a. spilled( ) ) ;
1042+ assert_eq ! ( a. len( ) , 0 ) ;
1043+ assert_eq ! ( a. get_size( ) , 24 ) ;
1044+ assert_eq ! ( a. get_heap_size( ) , 0 ) ;
1045+
1046+ a. push ( 0 ) ;
1047+ assert_eq ! ( a. len( ) , 1 ) ;
1048+ assert ! ( !a. spilled( ) ) ;
1049+ assert_eq ! ( a. get_size( ) , 24 ) ;
1050+ assert_eq ! ( a. get_heap_size( ) , 0 ) ;
1051+
1052+ a. push ( 1 ) ;
1053+ assert_eq ! ( a. len( ) , 2 ) ;
1054+ assert ! ( !a. spilled( ) ) ;
1055+ assert_eq ! ( a. get_size( ) , 24 ) ;
1056+ assert_eq ! ( a. get_heap_size( ) , 0 ) ;
1057+
1058+ a. push ( 2 ) ;
1059+ assert_eq ! ( a. len( ) , 3 ) ;
1060+ assert ! ( a. spilled( ) ) ;
1061+ assert_eq ! ( a. get_size( ) , 40 ) ;
1062+ assert_eq ! ( a. get_heap_size( ) , 16 ) ;
1063+
1064+ a. push ( 3 ) ;
1065+ assert_eq ! ( a. len( ) , 4 ) ;
1066+ assert ! ( a. spilled( ) ) ;
1067+ assert_eq ! ( a. get_size( ) , 40 ) ;
1068+ assert_eq ! ( a. get_heap_size( ) , 16 ) ;
1069+
1070+ a. push ( 4 ) ;
1071+ assert_eq ! ( a. len( ) , 5 ) ;
1072+ assert ! ( a. spilled( ) ) ;
1073+ assert_eq ! ( a. get_size( ) , 56 ) ;
1074+ assert_eq ! ( a. get_heap_size( ) , 32 ) ;
1075+
1076+ }
0 commit comments