68 lines
1.3 KiB
C
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);
|
|
}
|