From: Aki Tuomi Date: Fri, 29 Jan 2016 08:29:05 +0000 (+0200) Subject: lib: Add tests for str_is_float X-Git-Tag: 2.2.22.rc1~244 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d3a430481a1e072fb55fee8803c16d075bf7bd91;p=thirdparty%2Fdovecot%2Fcore.git lib: Add tests for str_is_float --- diff --git a/src/lib/test-strnum.c b/src/lib/test-strnum.c index 637bdf852a..c2925dc254 100644 --- a/src/lib/test-strnum.c +++ b/src/lib/test-strnum.c @@ -358,6 +358,32 @@ static void test_str_to_i32(void) test_end(); } +static void test_str_is_float(void) +{ + test_begin("str_is_float accepts integer"); + /* accepts integer */ + test_assert(str_is_float("0",'\0')); + test_assert(str_is_float("1234",'\0')); + test_end(); + test_begin("str_is_float accepts float"); + test_assert(str_is_float("0.0",'\0')); + test_assert(str_is_float("1234.0",'\0')); + test_assert(str_is_float("0.1234",'\0')); + test_assert(str_is_float("1234.1234",'\0')); + test_assert(str_is_float("0.1234 ",' ')); + test_assert(str_is_float("1234.1234",'.')); + test_end(); + test_begin("str_is_float refuses invalid values"); + test_assert(!str_is_float(".",'\0')); + test_assert(!str_is_float(".1234",'\0')); + test_assert(!str_is_float("1234.",'\0')); + test_assert(!str_is_float("i am not a float at all",'\0')); + test_assert(!str_is_float("0x1234.0x1234",'\0')); + test_assert(!str_is_float(".0",'\0')); + test_assert(!str_is_float("0.",'\0')); + test_end(); +} + void test_strnum(void) { /* If the above isn't true, then we do expect some failures possibly */ @@ -368,4 +394,5 @@ void test_strnum(void) test_str_to_u32(); test_str_to_llong(); test_str_to_i32(); + test_str_is_float(); }