test(cli/utils): implement parse_int and parse_float tests

This commit is contained in:
lohhiiccc 2026-03-02 18:36:49 +01:00
parent 20e3ae3a3d
commit 37a4085cfc
2 changed files with 128 additions and 4 deletions

View file

@ -1,6 +1,68 @@
#include <criterion/criterion.h> #include <criterion/criterion.h>
#include "cli.h"
Test(dummy_test_parse_float, always_pass) /* Test 1: Valid simple number */
Test(parse_float, valid_number)
{ {
cr_assert(1, ""); 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);
} }

View file

@ -1,6 +1,68 @@
#include <criterion/criterion.h> #include <criterion/criterion.h>
#include <stdint.h>
#include "cli.h"
Test(dummy_test_parse_int, always_pass) /* Test 1: Valid simple number */
Test(parse_uint64, valid_number)
{ {
cr_assert(1, ""); uint64_t result;
int ret = cli_parse_uint64("42", &result);
cr_assert_eq(ret, 0);
cr_assert_eq(result, 42);
}
/* Test 2: Zero */
Test(parse_uint64, zero)
{
uint64_t result;
int ret = cli_parse_uint64("0", &result);
cr_assert_eq(ret, 0);
cr_assert_eq(result, 0);
}
/* Test 3: NULL pointer */
Test(parse_uint64, null_pointer)
{
uint64_t result;
int ret = cli_parse_uint64(NULL, &result);
cr_assert_eq(ret, 1);
}
/* Test 4: Empty string */
Test(parse_uint64, empty_string)
{
uint64_t result;
int ret = cli_parse_uint64("", &result);
cr_assert_eq(ret, 1);
}
/* Test 5: Negative number */
Test(parse_uint64, negative_number)
{
uint64_t result;
int ret = cli_parse_uint64("-42", &result);
cr_assert_eq(ret, 1);
}
/* Test 6: Invalid characters */
Test(parse_uint64, invalid_characters)
{
uint64_t result;
int ret = cli_parse_uint64("42abc", &result);
cr_assert_eq(ret, 1);
}
/* Test 7: Overflow */
Test(parse_uint64, overflow)
{
uint64_t result;
int ret = cli_parse_uint64("18446744073709551616", &result);
cr_assert_eq(ret, 1);
} }