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

68 lines
1.3 KiB
C

#include <criterion/criterion.h>
#include <stdint.h>
#include "internal/cli/parse_utils.h"
/* Test 1: Valid simple number */
Test(parse_uint64, valid_number)
{
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);
}