net-tools/tests/cli/utils/test_parse_int.c

68 lines
1.3 KiB
C

#include <criterion/criterion.h>
#include <stdint.h>
#include "cli.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);
}