net-tools/tests/cli/parse_utils/test_parse_float.c
2026-03-05 09:58:16 +01:00

68 lines
1.3 KiB
C

#include <criterion/criterion.h>
#include "internal/cli/parse_utils.h"
/* Test 1: Valid simple number */
Test(parse_float, valid_number)
{
float result;
int ret = cli_parse_float("42.42", &result);
cr_assert_eq(ret, 0);
cr_assert_float_eq(result, 42.42, 0.0001);
}
/* Test 2: Zero */
Test(parse_float, zero)
{
float result;
int ret = cli_parse_float("0", &result);
cr_assert_eq(ret, 0);
cr_assert_float_eq(result, 0, 0.0001);
}
/* Test 3: NULL pointer */
Test(parse_float, null_pointer)
{
float result;
int ret = cli_parse_float(NULL, &result);
cr_assert_eq(ret, 1);
}
/* Test 4: Empty string */
Test(parse_float, empty_string)
{
float result;
int ret = cli_parse_float("", &result);
cr_assert_eq(ret, 1);
}
/* Test 5: Negative number */
Test(parse_float, negative_number)
{
float result;
int ret = cli_parse_float("-42", &result);
cr_assert_eq(ret, 1);
}
/* Test 6: Invalid characters */
Test(parse_float, invalid_characters)
{
float result;
int ret = cli_parse_float("42abc", &result);
cr_assert_eq(ret, 1);
}
/* Test 7: Dot + number */
Test(parse_float, dot)
{
float result;
int ret = cli_parse_float(".42", &result);
cr_assert_eq(ret, 0);
cr_assert_float_eq(result, 0.42, 0.0001);
}