67 lines
1.5 KiB
C
67 lines
1.5 KiB
C
#include "cconfig/cconfig-util.h"
|
|
#include "cconfig/cmd.h"
|
|
|
|
#include "test/check.h"
|
|
#include "test/test.h"
|
|
|
|
static void test_cmd()
|
|
{
|
|
struct cconfig *config;
|
|
int argc = 6;
|
|
char *argv[] = {"-P", "test=aaa", "-C", "asdf", "-P", "test2=123"};
|
|
char str[32];
|
|
int32_t val;
|
|
|
|
config = cconfig_init();
|
|
|
|
check_int_eq(config->nentries, 0);
|
|
check_null(config->entries);
|
|
|
|
check_bool_true(cconfig_cmd_parse(config, "-P", argc, argv, true));
|
|
|
|
check_int_eq(config->nentries, 2);
|
|
|
|
check_bool_true(
|
|
cconfig_util_get_str(config, "test", str, sizeof(str), "1"));
|
|
check_str_eq(str, "aaa");
|
|
|
|
check_bool_true(cconfig_util_get_int(config, "test2", &val, 0));
|
|
check_int_eq(val, 123);
|
|
|
|
cconfig_finit(config);
|
|
}
|
|
|
|
static void test_cmd_absent_entries()
|
|
{
|
|
struct cconfig *config;
|
|
int argc = 6;
|
|
char *argv[] = {"-P", "test=aaa", "-C", "asdf", "-P", "test2=123"};
|
|
char str[32];
|
|
int32_t val;
|
|
|
|
config = cconfig_init();
|
|
|
|
check_int_eq(config->nentries, 0);
|
|
check_null(config->entries);
|
|
|
|
cconfig_set2(config, "test", "aaa");
|
|
|
|
check_bool_true(cconfig_cmd_parse(config, "-P", argc, argv, false));
|
|
|
|
check_int_eq(config->nentries, 1);
|
|
|
|
check_bool_true(
|
|
cconfig_util_get_str(config, "test", str, sizeof(str), "1"));
|
|
check_str_eq(str, "aaa");
|
|
|
|
check_bool_false(cconfig_util_get_int(config, "test2", &val, 0));
|
|
check_int_eq(val, 0);
|
|
|
|
cconfig_finit(config);
|
|
}
|
|
|
|
TEST_MODULE_BEGIN("cconfig-cmd")
|
|
TEST_MODULE_TEST(test_cmd)
|
|
TEST_MODULE_TEST(test_cmd_absent_entries)
|
|
TEST_MODULE_END()
|