# HG changeset patch # User Aki Tuomi # Date 1454056145 -7200 # Node ID 286e4218fb07787eb0f3bc47c6c85d70124adb5d # Parent 364874711d5b8576755e753f68884ef45123b8db lib: Add tests for str_is_float diff -r 364874711d5b -r 286e4218fb07 src/lib/test-strnum.c --- a/src/lib/test-strnum.c Fri Jan 29 10:28:53 2016 +0200 +++ b/src/lib/test-strnum.c Fri Jan 29 10:29:05 2016 +0200 @@ -358,6 +358,32 @@ 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 @@ test_str_to_u32(); test_str_to_llong(); test_str_to_i32(); + test_str_is_float(); }