@ -9,104 +9,99 @@
# define RUNNING_CHECK 1
START_TEST ( test_is_number ) {
fail_unless ( is_number ( " " ) = = 0 ,
" is_number( \" \" ) returned %d, instead of 0 " , is_number ( " " ) ) ;
fail_unless ( is_number ( " a " ) = = 0 ,
" is_number( \" a \" ) returned %d, instead of 0 " , is_number ( " a " ) ) ;
fail_unless ( is_number ( " XYZ " ) = = 0 ,
" is_number( \" XYZ \" ) returned %d, instead of 0 " , is_number ( " XYZ " ) ) ;
fail_unless ( is_number ( " 10i " ) = = 0 ,
" is_number( \" 10i \" ) returned %d, instead of 0 " , is_number ( " 10i " ) ) ;
fail_unless ( is_number ( " p01 " ) = = 0 ,
" is_number( \" p01 \" ) returned %d, instead of 0 " , is_number ( " p01 " ) ) ;
fail_unless ( is_number ( " p2q " ) = = 0 ,
" is_number( \" p2q \" ) returned %d, instead of 0 " , is_number ( " p2q " ) ) ;
fail_unless ( is_number ( " 1b3 " ) = = 0 ,
" is_number( \" 1b3 \" ) returned %d, instead of 0 " , is_number ( " 1b3 " ) ) ;
fail_unless ( is_number ( " 1 " ) = = 1 ,
" is_number( \" 1 \" ) returned %d, instead of 1 " , is_number ( " 1 " ) ) ;
fail_unless ( is_number ( " 10 " ) = = 1 ,
" is_number( \" 10 \" ) returned %d, instead of 1 " , is_number ( " 10 " ) ) ;
/* failure cases */
fail_unless ( is_number ( " " ) = = 0 , " is_number( \" \" ) returned %d, instead of 0 " , is_number ( " " ) ) ;
fail_unless ( is_number ( " a " ) = = 0 , " is_number( \" a \" ) returned %d, instead of 0 " , is_number ( " a " ) ) ;
fail_unless ( is_number ( " XYZ " ) = = 0 , " is_number( \" XYZ \" ) returned %d, instead of 0 " , is_number ( " XYZ " ) ) ;
fail_unless ( is_number ( " 10i " ) = = 0 , " is_number( \" 10i \" ) returned %d, instead of 0 " , is_number ( " 10i " ) ) ;
fail_unless ( is_number ( " p01 " ) = = 0 , " is_number( \" p01 \" ) returned %d, instead of 0 " , is_number ( " p01 " ) ) ;
fail_unless ( is_number ( " p2q " ) = = 0 , " is_number( \" p2q \" ) returned %d, instead of 0 " , is_number ( " p2q " ) ) ;
fail_unless ( is_number ( " 1b3 " ) = = 0 , " is_number( \" 1b3 \" ) returned %d, instead of 0 " , is_number ( " 1b3 " ) ) ;
/* sucess cases */
fail_unless ( is_number ( " 1 " ) = = 1 , " is_number( \" 1 \" ) returned %d, instead of 1 " , is_number ( " 1 " ) ) ;
fail_unless ( is_number ( " 10 " ) = = 1 , " is_number( \" 10 \" ) returned %d, instead of 1 " , is_number ( " 10 " ) ) ;
}
END_TEST
START_TEST ( test_str_to_int ) {
fail_unless ( str_to_int ( " " ) = = - 2 ,
" str_to_int( \" \" ) returned %d, instead of -2 " , str_to_int ( " " ) ) ;
fail_unless ( str_to_int ( " " ) = = - 2 ,
" str_to_int( \" \" ) returned %d, instead of -2 " , str_to_int ( " " ) ) ;
fail_unless ( str_to_int ( " " ) = = - 2 ,
" str_to_int( \" \\ t \" ) returned %d, instead of -2 " , str_to_int ( " " ) ) ;
fail_unless ( str_to_int ( " " ) = = - 2 ,
" str_to_int( \" \\ t \" ) returned %d, instead of -2 " , str_to_int ( " " ) ) ;
fail_unless ( str_to_int ( " a " ) = = - 2 ,
" str_to_int( \" a \" ) returned %d, instead of -2 " , str_to_int ( " a " ) ) ;
fail_unless ( str_to_int ( " a " ) = = - 2 ,
" str_to_int( \" a \" ) returned %d, instead of -2 " , str_to_int ( " a " ) ) ;
fail_unless ( str_to_int ( " a " ) = = - 2 ,
" str_to_int( \" a \" ) returned %d, instead of -2 " , str_to_int ( " a " ) ) ;
fail_unless ( str_to_int ( " ABC " ) = = - 2 ,
" str_to_int( \" ABC \" ) returned %d, instead of -2 " , str_to_int ( " ABC " ) ) ;
fail_unless ( str_to_int ( " ABC " ) = = - 2 ,
" str_to_int( \" ABC \" ) returned %d, instead of -2 " , str_to_int ( " ABC " ) ) ;
fail_unless ( str_to_int ( " ABC " ) = = - 2 ,
" str_to_int( \" ABC \\ t \" ) returned %d, instead of -2 " , str_to_int ( " ABC " ) ) ;
fail_unless ( str_to_int ( " 1 " ) = = 1 ,
" str_to_int( \" 1 \" ) returned %d, instead of 1 " , str_to_int ( " 1 " ) ) ;
fail_unless ( str_to_int ( " 10 " ) = = 10 ,
" str_to_int( \" 10 \" ) returned %d, instead of 10 " , str_to_int ( " 10 " ) ) ;
fail_unless ( str_to_int ( " 10 " ) = = 10 ,
" str_to_int( \" 10 \" ) returned %d, instead of 10 " , str_to_int ( " 10 " ) ) ;
fail_unless ( str_to_int ( " 10 " ) = = 10 ,
" str_to_int( \" 10 \" ) returned %d, instead of 10 " , str_to_int ( " 10 " ) ) ;
fail_unless ( str_to_int ( " 10 " ) = = 10 ,
" str_to_int( \" \\ t 10 \\ t \" ) returned %d, instead of 10 " , str_to_int ( " 10 " ) ) ;
/* failure because empty */
fail_unless ( str_to_int ( 0 , " " ) = = - 2 , " str_to_int(0, \" \" ) returned %d, instead of -2 " , str_to_int ( 0 , " " ) ) ;
fail_unless ( str_to_int ( 1 , " " ) = = - 2 , " str_to_int(1, \" \" ) returned %d, instead of -2 " , str_to_int ( 1 , " " ) ) ;
fail_unless ( str_to_int ( 0 , " " ) = = - 2 , " str_to_int(0, \" \" ) returned %d, instead of -2 " , str_to_int ( 0 , " " ) ) ;
fail_unless ( str_to_int ( 1 , " " ) = = - 2 , " str_to_int(1, \" \" ) returned %d, instead of -2 " , str_to_int ( 1 , " " ) ) ;
fail_unless ( str_to_int ( 0 , " " ) = = - 2 , " str_to_int(0, \" \\ t \" ) returned %d, instead of -2 " , str_to_int ( 0 , " " ) ) ;
fail_unless ( str_to_int ( 1 , " " ) = = - 2 , " str_to_int(1, \" \\ t \" ) returned %d, instead of -2 " , str_to_int ( 1 , " " ) ) ;
fail_unless ( str_to_int ( 0 , " " ) = = - 2 , " str_to_int(0, \" \\ t \" ) returned %d, instead of -2 " , str_to_int ( 0 , " " ) ) ;
fail_unless ( str_to_int ( 1 , " " ) = = - 2 , " str_to_int(1, \" \\ t \" ) returned %d, instead of -2 " , str_to_int ( 1 , " " ) ) ;
/* failure because non-int */
fail_unless ( str_to_int ( 0 , " a " ) = = - 2 , " str_to_int(0, \" a \" ) returned %d, instead of -2 " , str_to_int ( 0 , " a " ) ) ;
fail_unless ( str_to_int ( 1 , " a " ) = = - 2 , " str_to_int(1, \" a \" ) returned %d, instead of -2 " , str_to_int ( 1 , " a " ) ) ;
fail_unless ( str_to_int ( 0 , " a " ) = = - 2 , " str_to_int(0, \" a \" ) returned %d, instead of -2 " , str_to_int ( 0 , " a " ) ) ;
fail_unless ( str_to_int ( 1 , " a " ) = = - 2 , " str_to_int(1, \" a \" ) returned %d, instead of -2 " , str_to_int ( 1 , " a " ) ) ;
fail_unless ( str_to_int ( 0 , " a " ) = = - 2 , " str_to_int(0, \" a \" ) returned %d, instead of -2 " , str_to_int ( 0 , " a " ) ) ;
fail_unless ( str_to_int ( 1 , " a " ) = = - 2 , " str_to_int(1, \" a \" ) returned %d, instead of -2 " , str_to_int ( 1 , " a " ) ) ;
fail_unless ( str_to_int ( 0 , " ABC " ) = = - 2 , " str_to_int(0, \" ABC \" ) returned %d, instead of -2 " , str_to_int ( 0 , " ABC " ) ) ;
fail_unless ( str_to_int ( 1 , " ABC " ) = = - 2 , " str_to_int(1, \" ABC \" ) returned %d, instead of -2 " , str_to_int ( 1 , " ABC " ) ) ;
fail_unless ( str_to_int ( 0 , " ABC " ) = = - 2 , " str_to_int(0, \" ABC \" ) returned %d, instead of -2 " , str_to_int ( 0 , " ABC " ) ) ;
fail_unless ( str_to_int ( 1 , " ABC " ) = = - 2 , " str_to_int(1, \" ABC \" ) returned %d, instead of -2 " , str_to_int ( 1 , " ABC " ) ) ;
fail_unless ( str_to_int ( 0 , " ABC " ) = = - 2 , " str_to_int(0, \" ABC \\ t \" ) returned %d, instead of -2 " , str_to_int ( 0 , " ABC " ) ) ;
fail_unless ( str_to_int ( 1 , " ABC " ) = = - 2 , " str_to_int(1, \" ABC \\ t \" ) returned %d, instead of -2 " , str_to_int ( 1 , " ABC " ) ) ;
/* success cases */
fail_unless ( str_to_int ( 0 , " 1 " ) = = 1 , " str_to_int(0, \" 1 \" ) returned %d, instead of 1 " , str_to_int ( 0 , " 1 " ) ) ;
fail_unless ( str_to_int ( 1 , " 1 " ) = = 1 , " str_to_int(1, \" 1 \" ) returned %d, instead of 1 " , str_to_int ( 1 , " 1 " ) ) ;
fail_unless ( str_to_int ( 0 , " 10 " ) = = 10 , " str_to_int(0, \" 10 \" ) returned %d, instead of 10 " , str_to_int ( 0 , " 10 " ) ) ;
fail_unless ( str_to_int ( 1 , " 10 " ) = = 10 , " str_to_int(1, \" 10 \" ) returned %d, instead of 10 " , str_to_int ( 1 , " 10 " ) ) ;
fail_unless ( str_to_int ( 0 , " 10 " ) = = 10 , " str_to_int(0, \" 10 \" ) returned %d, instead of 10 " , str_to_int ( 0 , " 10 " ) ) ;
fail_unless ( str_to_int ( 1 , " 10 " ) = = 10 , " str_to_int(1, \" 10 \" ) returned %d, instead of 10 " , str_to_int ( 1 , " 10 " ) ) ;
fail_unless ( str_to_int ( 0 , " 10 " ) = = 10 , " str_to_int(0, \" 10 \" ) returned %d, instead of 10 " , str_to_int ( 0 , " 10 " ) ) ;
fail_unless ( str_to_int ( 1 , " 10 " ) = = 10 , " str_to_int(1, \" 10 \" ) returned %d, instead of 10 " , str_to_int ( 1 , " 10 " ) ) ;
fail_unless ( str_to_int ( 0 , " 10 " ) = = 10 , " str_to_int(0, \" \\ t 10 \\ t \" ) returned %d, instead of 10 " , str_to_int ( 0 , " 10 " ) ) ;
fail_unless ( str_to_int ( 1 , " 10 " ) = = 10 , " str_to_int(1, \" \\ t 10 \\ t \" ) returned %d, instead of 10 " , str_to_int ( 1 , " 10 " ) ) ;
/* success and failures depending on the mode */
fail_unless ( str_to_int ( 0 , " 1 a " ) = = - 2 , " str_to_int(0, \" 1 a \" ) returned %d, instead of -2 " , str_to_int ( 0 , " 1 a " ) ) ;
fail_unless ( str_to_int ( 1 , " 1 a " ) = = 1 , " str_to_int(1, \" 1 a \" ) returned %d, instead of 1 " , str_to_int ( 1 , " 1 " ) ) ;
fail_unless ( str_to_int ( 0 , " 10 B " ) = = - 2 , " str_to_int(0, \" 10 \\ tB \" ) returned %d, instead of -2 " , str_to_int ( 0 , " 10 B " ) ) ;
fail_unless ( str_to_int ( 1 , " 10 B " ) = = 10 , " str_to_int(1, \" 10 \\ tB \" ) returned %d, instead of 10 " , str_to_int ( 1 , " 10 B " ) ) ;
fail_unless ( str_to_int ( 0 , " 100 ABC " ) = = - 2 , " str_to_int(0, \" 100 \\ tABC \" ) returned %d, instead of -2 " , str_to_int ( 0 , " 100 ABC " ) ) ;
fail_unless ( str_to_int ( 1 , " 100 ABC " ) = = 100 , " str_to_int(1, \" 100 \\ tABC \" ) returned %d, instead of 100 " , str_to_int ( 1 , " 100 ABC " ) ) ;
}
END_TEST
START_TEST ( test_is_ip ) {
fail_unless ( is_ip ( " " ) = = 0 ,
" is_ip( \" \" ) returned %d, instead of 0 " , is_ip ( " " ) ) ;
fail_unless ( is_ip ( " 0 " ) = = 0 ,
" is_ip( \" 0 \" ) returned %d, instead of 0 " , is_ip ( " 0 " ) ) ;
fail_unless ( is_ip ( " 100 " ) = = 0 ,
" is_ip( \" 100 \" ) returned %d, instead of 0 " , is_ip ( " 100 " ) ) ;
fail_unless ( is_ip ( " 1000 " ) = = 0 ,
" is_ip( \" 1000 \" ) returned %d, instead of 0 " , is_ip ( " 1000 " ) ) ;
fail_unless ( is_ip ( " 1.0 " ) = = 0 ,
" is_ip( \" 1.0 \" ) returned %d, instead of 0 " , is_ip ( " 1.0 " ) ) ;
fail_unless ( is_ip ( " 1.2.0 " ) = = 0 ,
" is_ip( \" 1.2.0 \" ) returned %d, instead of 0 " , is_ip ( " 1.2.0 " ) ) ;
fail_unless ( is_ip ( " 1.2.3.4.5 " ) = = 0 ,
" is_ip( \" 1.2.3.4.5 \" ) returned %d, instead of 0 " , is_ip ( " 1.2.3.4.5 " ) ) ;
fail_unless ( is_ip ( " 1000.0.0.0 " ) = = 0 ,
" is_ip( \" 1000.0.0.0 \" ) returned %d, instead of 0 " , is_ip ( " 1000.0.0.0 " ) ) ;
fail_unless ( is_ip ( " 0.1000.0.0 " ) = = 0 ,
" is_ip( \" 0.1000.0.0 \" ) returned %d, instead of 0 " , is_ip ( " 0.1000.0.0 " ) ) ;
fail_unless ( is_ip ( " 0.0.1000.0 " ) = = 0 ,
" is_ip( \" 0.0.1000.0 \" ) returned %d, instead of 0 " , is_ip ( " 0.0.1000.0 " ) ) ;
fail_unless ( is_ip ( " 0.0.0.1000 " ) = = 0 ,
" is_ip( \" 0.0.0.1000 \" ) returned %d, instead of 0 " , is_ip ( " 0.0.0.1000 " ) ) ;
fail_unless ( is_ip ( " 0.0.0.0 " ) = = 1 ,
" is_ip( \" 0.0.0.0 \" ) returned %d, instead of 1 " , is_ip ( " 0.0.0.0 " ) ) ;
fail_unless ( is_ip ( " 1.2.3.4 " ) = = 1 ,
" is_ip( \" 1.2.3.4 \" ) returned %d, instead of 1 " , is_ip ( " 1.2.3.4 " ) ) ;
fail_unless ( is_ip ( " 192.168.1.1 " ) = = 1 ,
" is_ip( \" 192.168.1.1 \" ) returned %d, instead of 1 " , is_ip ( " 192.168.1.1 " ) ) ;
// this is a "known bug" ;)
fail_unless ( is_ip ( " 999.999.999.999 " ) = = 1 ,
" is_ip( \" 999.999.999.999 \" ) returned %d, instead of 1 " , is_ip ( " 999.999.999.999 " ) ) ;
/* failure cases */
fail_unless ( is_ip ( " " ) = = 0 , " is_ip( \" \" ) returned %d, instead of 0 " , is_ip ( " " ) ) ;
fail_unless ( is_ip ( " 0 " ) = = 0 , " is_ip( \" 0 \" ) returned %d, instead of 0 " , is_ip ( " 0 " ) ) ;
fail_unless ( is_ip ( " 100 " ) = = 0 , " is_ip( \" 100 \" ) returned %d, instead of 0 " , is_ip ( " 100 " ) ) ;
fail_unless ( is_ip ( " 1000 " ) = = 0 , " is_ip( \" 1000 \" ) returned %d, instead of 0 " , is_ip ( " 1000 " ) ) ;
fail_unless ( is_ip ( " 1.0 " ) = = 0 , " is_ip( \" 1.0 \" ) returned %d, instead of 0 " , is_ip ( " 1.0 " ) ) ;
fail_unless ( is_ip ( " 1.2.0 " ) = = 0 , " is_ip( \" 1.2.0 \" ) returned %d, instead of 0 " , is_ip ( " 1.2.0 " ) ) ;
fail_unless ( is_ip ( " 1.2.3.4.5 " ) = = 0 , " is_ip( \" 1.2.3.4.5 \" ) returned %d, instead of 0 " , is_ip ( " 1.2.3.4.5 " ) ) ;
fail_unless ( is_ip ( " 1000.0.0.0 " ) = = 0 , " is_ip( \" 1000.0.0.0 \" ) returned %d, instead of 0 " , is_ip ( " 1000.0.0.0 " ) ) ;
fail_unless ( is_ip ( " 0.1000.0.0 " ) = = 0 , " is_ip( \" 0.1000.0.0 \" ) returned %d, instead of 0 " , is_ip ( " 0.1000.0.0 " ) ) ;
fail_unless ( is_ip ( " 0.0.1000.0 " ) = = 0 , " is_ip( \" 0.0.1000.0 \" ) returned %d, instead of 0 " , is_ip ( " 0.0.1000.0 " ) ) ;
fail_unless ( is_ip ( " 0.0.0.1000 " ) = = 0 , " is_ip( \" 0.0.0.1000 \" ) returned %d, instead of 0 " , is_ip ( " 0.0.0.1000 " ) ) ;
/* success cases */
fail_unless ( is_ip ( " 0.0.0.0 " ) = = 1 , " is_ip( \" 0.0.0.0 \" ) returned %d, instead of 1 " , is_ip ( " 0.0.0.0 " ) ) ;
fail_unless ( is_ip ( " 1.2.3.4 " ) = = 1 , " is_ip( \" 1.2.3.4 \" ) returned %d, instead of 1 " , is_ip ( " 1.2.3.4 " ) ) ;
fail_unless ( is_ip ( " 192.168.1.1 " ) = = 1 , " is_ip( \" 192.168.1.1 \" ) returned %d, instead of 1 " , is_ip ( " 192.168.1.1 " ) ) ;
/* this is a known limitation ;) */
fail_unless ( is_ip ( " 999.999.999.999 " ) = = 1 , " is_ip( \" 999.999.999.999 \" ) returned %d, instead of 1 " , is_ip ( " 999.999.999.999 " ) ) ;
}
END_TEST
START_TEST ( test_getaddress ) {
fail_unless ( getaddress ( " " ) = = 0 ,
" getaddress( \" \" ) returned %lu, instead of 0 " , getaddress ( " " ) ) ;
fail_unless ( getaddress ( " 127.0.0.1 " ) = = 16777343 ,
" getaddress( \" 127.0.0.1 \" ) returned %lu, instead of 16777343 " , getaddress ( " 127.0.0.1 " ) ) ;
// this should work also without DNS
fail_unless ( getaddress ( " localhost " ) = = 16777343 ,
" getaddress( \" localhost \" ) returned %lu, instead of 16777343 " , getaddress ( " localhost " ) ) ;
/* failure case */
fail_unless ( getaddress ( " " ) = = 0 , " getaddress( \" \" ) returned %lu, instead of 0 " , getaddress ( " " ) ) ;
/* success cases */
fail_unless ( getaddress ( " 127.0.0.1 " ) = = 16777343 , " getaddress( \" 127.0.0.1 \" ) returned %lu, instead of 16777343 " , getaddress ( " 127.0.0.1 " ) ) ;
/* this should work also without DNS */
fail_unless ( getaddress ( " localhost " ) = = 16777343 , " getaddress( \" localhost \" ) returned %lu, instead of 16777343 " , getaddress ( " localhost " ) ) ;
}
END_TEST
@ -115,23 +110,22 @@ START_TEST (test_insert_cr) {
memset ( ta , ' \0 ' , 15 ) ;
insert_cr ( ta ) ;
fail_unless ( memcmp ( ta , " \r \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 " , 15 ) = = 0 ,
" insert_cr( \" \" ) returned '%s', instead of \" \r \n \" " , ta ) ;
fail_unless ( memcmp ( ta , " \r \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 " , 15 ) = = 0 , " insert_cr( \" \" ) returned '%s', instead of \" \r \n \" " , ta ) ;
memset ( ta , ' \0 ' , 15 ) ;
memcpy ( ta , " test " , 4 ) ;
insert_cr ( ta ) ;
fail_unless ( memcmp ( ta , " test \r \n \0 \0 \0 \0 \0 \0 \0 \0 \0 " , 15 ) = = 0 ,
" insert_cr( \" test \" ) returned '%s', instead of \" test \r \n \" " , ta ) ;
fail_unless ( memcmp ( ta , " test \r \n \0 \0 \0 \0 \0 \0 \0 \0 \0 " , 15 ) = = 0 , " insert_cr( \" test \" ) returned '%s', instead of \" test \r \n \" " , ta ) ;
memset ( ta , ' \0 ' , 15 ) ;
memcpy ( ta , " test \n " , 5 ) ;
insert_cr ( ta ) ;
fail_unless ( memcmp ( ta , " test \r \n \r \n \0 \0 \0 \0 \0 \0 \0 " , 15 ) = = 0 ,
" insert_cr( \" test \\ n \" ) returned '%s', instead of \" test \\ r \\ n \" " , ta ) ;
fail_unless ( memcmp ( ta , " test \r \n \r \n \0 \0 \0 \0 \0 \0 \0 " , 15 ) = = 0 , " insert_cr( \" test \\ n \" ) returned '%s', instead of \" test \\ r \\ n \" " , ta ) ;
memset ( ta , ' \0 ' , 15 ) ;
memcpy ( ta , " foo \n bar \n " , 8 ) ;
insert_cr ( ta ) ;
fail_unless ( memcmp ( ta , " foo \r \n bar \r \n \r \n \0 \0 \0 " , 15 ) = = 0 ,
" insert_cr( \" foo \\ nbar \\ n \" ) returned '%s', instead of \" foo \\ r \\ nbar \\ r \\ n \" " , ta ) ;
fail_unless ( memcmp ( ta , " foo \r \n bar \r \n \r \n \0 \0 \0 " , 15 ) = = 0 , " insert_cr( \" foo \\ nbar \\ n \" ) returned '%s', instead of \" foo \\ r \\ nbar \\ r \\ n \" " , ta ) ;
}
END_TEST