@@ -156,6 +156,82 @@ pub unsafe fn test_strlen_5() {
156156 assert ! ( ( ( libc:: strlen( b"hello\0 " . as_ptr( ) as * const i8 ) as u64 ) == ( 5_u64 ) ) ) ;
157157 assert ! ( ( ( libc:: strlen( b"hello world\0 " . as_ptr( ) as * const i8 ) as u64 ) == ( 11_u64 ) ) ) ;
158158}
159+ pub unsafe fn test_strcmp_6 ( ) {
160+ assert ! (
161+ ( ( libc:: strcmp(
162+ b"abc\0 " . as_ptr( ) as * const i8 ,
163+ b"abc\0 " . as_ptr( ) as * const i8
164+ ) ) == ( 0 ) )
165+ ) ;
166+ assert ! (
167+ ( ( libc:: strcmp(
168+ b"abc\0 " . as_ptr( ) as * const i8 ,
169+ b"abd\0 " . as_ptr( ) as * const i8
170+ ) ) < ( 0 ) )
171+ ) ;
172+ assert ! (
173+ ( ( libc:: strcmp(
174+ b"abd\0 " . as_ptr( ) as * const i8 ,
175+ b"abc\0 " . as_ptr( ) as * const i8
176+ ) ) > ( 0 ) )
177+ ) ;
178+ let mut p: * const u8 = b"abc\0 " . as_ptr ( ) ;
179+ let mut q: * const u8 = b"abd\0 " . as_ptr ( ) ;
180+ let mut buf: [ u8 ; 4 ] = [ ( 'a' as u8 ) , ( 'b' as u8 ) , ( 'c' as u8 ) , ( '\0' as u8 ) ] ;
181+ assert ! ( ( ( libc:: strcmp( p as * const i8 , p as * const i8 ) ) == ( 0 ) ) ) ;
182+ assert ! ( ( ( libc:: strcmp( p as * const i8 , q as * const i8 ) ) < ( 0 ) ) ) ;
183+ assert ! ( ( ( libc:: strcmp( ( buf. as_mut_ptr( ) ) . cast_const( ) as * const i8 , p as * const i8 ) ) == ( 0 ) ) ) ;
184+ }
185+ pub unsafe fn test_strncmp_7 ( ) {
186+ assert ! (
187+ ( ( libc:: strncmp(
188+ b"abcdef\0 " . as_ptr( ) as * const i8 ,
189+ b"abcxyz\0 " . as_ptr( ) as * const i8 ,
190+ 3_u64 as usize
191+ ) ) == ( 0 ) )
192+ ) ;
193+ assert ! (
194+ ( ( libc:: strncmp(
195+ b"abcdef\0 " . as_ptr( ) as * const i8 ,
196+ b"abcxyz\0 " . as_ptr( ) as * const i8 ,
197+ 4_u64 as usize
198+ ) ) < ( 0 ) )
199+ ) ;
200+ assert ! (
201+ ( ( libc:: strncmp(
202+ b"abcxyz\0 " . as_ptr( ) as * const i8 ,
203+ b"abcdef\0 " . as_ptr( ) as * const i8 ,
204+ 4_u64 as usize
205+ ) ) > ( 0 ) )
206+ ) ;
207+ let mut p: * const u8 = b"abcdef\0 " . as_ptr ( ) ;
208+ let mut q: * const u8 = b"abcxyz\0 " . as_ptr ( ) ;
209+ let mut buf: [ u8 ; 7 ] = [
210+ ( 'a' as u8 ) ,
211+ ( 'b' as u8 ) ,
212+ ( 'c' as u8 ) ,
213+ ( 'd' as u8 ) ,
214+ ( 'e' as u8 ) ,
215+ ( 'f' as u8 ) ,
216+ ( '\0' as u8 ) ,
217+ ] ;
218+ let mut n: u64 = 3_u64 ;
219+ assert ! ( ( ( libc:: strncmp( p as * const i8 , q as * const i8 , n as usize ) ) == ( 0 ) ) ) ;
220+ assert ! (
221+ ( ( libc:: strncmp(
222+ p as * const i8 ,
223+ q as * const i8 ,
224+ ( n) . wrapping_add( 1_u64 ) as usize
225+ ) ) < ( 0 ) )
226+ ) ;
227+ assert ! (
228+ ( ( libc:: strncmp(
229+ ( buf. as_mut_ptr( ) ) . cast_const( ) as * const i8 ,
230+ p as * const i8 ,
231+ 6_u64 as usize
232+ ) ) == ( 0 ) )
233+ ) ;
234+ }
159235pub fn main ( ) {
160236 unsafe {
161237 std:: process:: exit ( main_0 ( ) as i32 ) ;
@@ -168,5 +244,7 @@ unsafe fn main_0() -> i32 {
168244 ( unsafe { test_memmove_3 ( ) } ) ;
169245 ( unsafe { test_strchr_4 ( ) } ) ;
170246 ( unsafe { test_strlen_5 ( ) } ) ;
247+ ( unsafe { test_strcmp_6 ( ) } ) ;
248+ ( unsafe { test_strncmp_7 ( ) } ) ;
171249 return 0 ;
172250}
0 commit comments