@@ -116,55 +116,26 @@ fn memset_nonzero() {
116116
117117#[ test]
118118fn memcmp_eq ( ) {
119- let arr1: [ u8 ; 32 ] = [
120- 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 ,
121- 25 , 26 , 27 , 28 , 29 , 30 , 31 ,
122- ] ;
123- let arr2: [ u8 ; 32 ] = [
124- 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 ,
125- 25 , 26 , 27 , 28 , 29 , 30 , 31 ,
126- ] ;
127- for i in 0 ..32 {
119+ let arr1 @ arr2 = gen_arr :: < 256 > ( ) ;
120+ for i in 0 ..256 {
128121 unsafe {
129- assert_eq ! ( memcmp( arr1. as_ptr( ) , arr2. as_ptr( ) , i) , 0 ) ;
130- assert_eq ! ( memcmp( arr2. as_ptr( ) , arr1. as_ptr( ) , i) , 0 ) ;
122+ assert_eq ! ( memcmp( arr1. 0 . as_ptr( ) , arr2. 0 . as_ptr( ) , i) , 0 ) ;
123+ assert_eq ! ( memcmp( arr2. 0 . as_ptr( ) , arr1. 0 . as_ptr( ) , i) , 0 ) ;
131124 }
132125 }
133126}
134127
135128#[ test]
136129fn memcmp_ne ( ) {
137- let arr1: [ u8 ; 8 ] = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ] ;
138- let arr2: [ u8 ; 8 ] = [ 0 , 1 , 2 , 3 , 4 , 5 , 7 , 7 ] ;
139- unsafe {
140- assert ! ( memcmp( arr1. as_ptr( ) , arr2. as_ptr( ) , 8 ) < 0 ) ;
141- assert ! ( memcmp( arr2. as_ptr( ) , arr1. as_ptr( ) , 8 ) > 0 ) ;
142- }
143- }
144-
145- #[ test]
146- fn memcmp_ne_16 ( ) {
147- let arr1: [ u8 ; 16 ] = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 ] ;
148- let arr2: [ u8 ; 16 ] = [ 0 , 1 , 2 , 3 , 4 , 5 , 7 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 ] ;
149- unsafe {
150- assert ! ( memcmp( arr1. as_ptr( ) , arr2. as_ptr( ) , 16 ) < 0 ) ;
151- assert ! ( memcmp( arr2. as_ptr( ) , arr1. as_ptr( ) , 16 ) > 0 ) ;
152- }
153- }
154-
155- #[ test]
156- fn memcmp_ne_32 ( ) {
157- let arr1: [ u8 ; 32 ] = [
158- 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
159- 0 , 0 , 0 , 0 ,
160- ] ;
161- let arr2: [ u8 ; 32 ] = [
162- 0 , 1 , 2 , 3 , 4 , 5 , 7 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
163- 0 , 0 , 0 , 0 ,
164- ] ;
165- unsafe {
166- assert ! ( memcmp( arr1. as_ptr( ) , arr2. as_ptr( ) , 32 ) < 0 ) ;
167- assert ! ( memcmp( arr2. as_ptr( ) , arr1. as_ptr( ) , 32 ) > 0 ) ;
130+ let arr1 @ arr2 = gen_arr :: < 256 > ( ) ;
131+ for i in 0 ..256 {
132+ let mut diff_arr = arr1;
133+ diff_arr. 0 [ i] = 127 ;
134+ let expect = diff_arr. 0 [ i] . cmp ( & arr2. 0 [ i] ) ;
135+ for k in i + 1 ..256 {
136+ let result = unsafe { memcmp ( diff_arr. 0 . as_ptr ( ) , arr2. 0 . as_ptr ( ) , k) } ;
137+ assert_eq ! ( expect, result. cmp( & 0 ) ) ;
138+ }
168139 }
169140}
170141
0 commit comments