74 char* argv[] = {
"amxrt",
"-h" };
76 amxc_var_add_key(cstring_t,
config,
"name",
"amxrt");
82 char* argv[] = {
"amxrt",
"-H" };
89 char* argv[] = {
"amxrt",
"-I",
"/tmp/include/",
"-I",
"/etc/odl/" };
92 const char* include_dirs[] = {
93 ".",
"/tmp/include/",
"/etc/odl/"
97 assert_non_null(option);
100 assert_int_equal(
amxrt_cmd_line_parse(
sizeof(argv) /
sizeof(argv[0]), argv, NULL),
sizeof(argv) /
sizeof(argv[0]));
102 amxc_var_for_each(var, option) {
103 assert_string_equal(GET_CHAR(var, NULL), include_dirs[index]);
109 char* argv[] = {
"amxrt",
"-L",
"/tmp/include/",
"-L",
"/etc/odl/" };
112 const char* include_dirs[] = {
113 ".",
"/tmp/include/",
"/etc/odl/"
117 assert_non_null(option);
120 assert_int_equal(
amxrt_cmd_line_parse(
sizeof(argv) /
sizeof(argv[0]), argv, NULL),
sizeof(argv) /
sizeof(argv[0]));
122 amxc_var_for_each(var, option) {
123 assert_string_equal(GET_CHAR(var, NULL), include_dirs[index]);
129 char* argv[] = {
"amxrt",
"-B",
"/usr/bin/mods/amx/mod_amxb_test.so",
"-B",
"/usr/bin/mods/amx/mod_amxb_dummy.so" };
132 const char* include_dirs[] = {
133 "/usr/bin/mods/amx/mod_amxb_test.so",
"/usr/bin/mods/amx/mod_amxb_dummy.so"
137 assert_non_null(option);
140 assert_int_equal(
amxrt_cmd_line_parse(
sizeof(argv) /
sizeof(argv[0]), argv, NULL),
sizeof(argv) /
sizeof(argv[0]));
142 amxc_var_for_each(var, option) {
143 assert_string_equal(GET_CHAR(var, NULL), include_dirs[index]);
149 char* argv[] = {
"amxrt",
"-u",
"dummy:/var/run/dummy.sock",
"-u",
"dummy:/var/run/ubus.sock" };
152 const char* include_dirs[] = {
153 "dummy:/var/run/dummy.sock",
"dummy:/var/run/ubus.sock"
157 assert_non_null(option);
160 assert_int_equal(
amxrt_cmd_line_parse(
sizeof(argv) /
sizeof(argv[0]), argv, NULL),
sizeof(argv) /
sizeof(argv[0]));
162 amxc_var_for_each(var, option) {
163 assert_string_equal(GET_CHAR(var, NULL), include_dirs[index]);
169 char* argv[] = {
"amxrt",
"-o option=new_option",
"-o",
"text=hallo"};
172 assert_null(GET_ARG(
config,
"option"));
173 assert_null(GET_ARG(
config,
"text"));
176 assert_int_equal(
amxrt_cmd_line_parse(
sizeof(argv) /
sizeof(argv[0]), argv, NULL),
sizeof(argv) /
sizeof(argv[0]));
178 assert_non_null(GET_ARG(
config,
"option"));
179 assert_non_null(GET_ARG(
config,
"text"));
181 assert_string_equal(GET_CHAR(
config,
"option"),
"new_option");
182 assert_string_equal(GET_CHAR(
config,
"text"),
"hallo");
186 char* argv[] = {
"amxrt",
"-o cfg-dir=my_cfg_dir",
"-o",
"daemon=no"};
193 assert_int_equal(
amxrt_cmd_line_parse(
sizeof(argv) /
sizeof(argv[0]), argv, NULL),
sizeof(argv) /
sizeof(argv[0]));
199 char* argv1[] = {
"amxrt",
"-o"};
200 char* argv2[] = {
"amxrt",
"-o option2"};
207 assert_int_equal(
amxrt_cmd_line_parse(
sizeof(argv2) /
sizeof(argv2[0]), argv2, NULL),
sizeof(argv2) /
sizeof(argv2[0]));
208 assert_null(GET_CHAR(
config,
"option2"));
212 char* argv[] = {
"amxrt",
"-A"};
219 assert_int_equal(
amxrt_cmd_line_parse(
sizeof(argv) /
sizeof(argv[0]), argv, NULL),
sizeof(argv) /
sizeof(argv[0]));
224 char* argv[] = {
"amxrt",
"-C"};
231 assert_int_equal(
amxrt_cmd_line_parse(
sizeof(argv) /
sizeof(argv[0]), argv, NULL),
sizeof(argv) /
sizeof(argv[0]));
236 char* argv[] = {
"amxrt",
"-D"};
243 assert_int_equal(
amxrt_cmd_line_parse(
sizeof(argv) /
sizeof(argv[0]), argv, NULL),
sizeof(argv) /
sizeof(argv[0]));
248 char* argv[] = {
"amxrt",
"-E"};
255 assert_int_equal(
amxrt_cmd_line_parse(
sizeof(argv) /
sizeof(argv[0]), argv, NULL),
sizeof(argv) /
sizeof(argv[0]));
260 char* argv[] = {
"amxrt",
"-d"};
267 assert_int_equal(
amxrt_cmd_line_parse(
sizeof(argv) /
sizeof(argv[0]), argv, NULL),
sizeof(argv) /
sizeof(argv[0]));
272 char* argv[] = {
"amxrt",
"-p",
"-5"};
279 assert_int_equal(
amxrt_cmd_line_parse(
sizeof(argv) /
sizeof(argv[0]), argv, NULL),
sizeof(argv) /
sizeof(argv[0]));
284 char* argv[] = {
"amxrt",
"-N"};
291 assert_int_equal(
amxrt_cmd_line_parse(
sizeof(argv) /
sizeof(argv[0]), argv, NULL),
sizeof(argv) /
sizeof(argv[0]));
296 char* argv[] = {
"amxrt",
"-O",
"%%config { test = 123; }"};
302 assert_int_equal(
amxrt_cmd_line_parse(
sizeof(argv) /
sizeof(argv[0]), argv, NULL),
sizeof(argv) /
sizeof(argv[0]));
308 char* argv[] = {
"amxrt",
"-l"};
315 assert_int_equal(
amxrt_cmd_line_parse(
sizeof(argv) /
sizeof(argv[0]), argv, NULL),
sizeof(argv) /
sizeof(argv[0]));
320 char* argv[] = {
"amxrt",
"-R",
"NetModel.",
"-R",
"NetDev." };
323 const char* include_dirs[] = {
324 "NetModel.",
"NetDev."
328 assert_non_null(option);
331 assert_int_equal(
amxrt_cmd_line_parse(
sizeof(argv) /
sizeof(argv[0]), argv, NULL),
sizeof(argv) /
sizeof(argv[0]));
333 amxc_var_for_each(var, option) {
334 assert_string_equal(GET_CHAR(var, NULL), include_dirs[index]);
346 UNUSED
const char* value) {
355 char* argv1[] = {
"amxrt",
"-z"};
365 char* argv1[] = {
"amxrt",
"-z"};
366 char* argv2[] = {
"amxrt",
"-z",
"-t"};
#define AMXRT_COPT_BACKENDS
#define AMXRT_COPT_PID_FILE
#define AMXRT_COPT_LIBDIRS
#define AMXRT_COPT_CFG_DIR
#define AMXRT_COPT_DUMP_CONFIG
#define AMXRT_COPT_PRIORITY
#define AMXRT_COPT_REQUIRES
#define AMXRT_COPT_AUTO_DETECT
#define AMXRT_COPT_AUTO_CONNECT
#define AMXRT_COPT_DAEMON
#define AMXRT_COPT_INCDIRS
int amxrt_cmd_line_add_option(int id, char short_option, const char *long_option, int has_args, const char *doc, const char *arg_doc)
Adds a command line option definition.
int amxrt_cmd_line_parse(int argc, char *argv[], amxrt_arg_fn_t fn)
Starts parsing the command line options.
void amxrt_cmd_line_set_usage_doc(const char *usage)
Set the overall usage documentation string.
void amxrt_cmd_line_options_reset(void)
Removes all default options.
void amxrt_print_usage(void)
Prints the usage information and all available options to stdout.
amxc_var_t * amxrt_get_config(void)
Gets the htable variant containing the configuration options.
void amxrt_delete(void)
Clean-up ambiorix runtime.
void amxrt_new(void)
Create the ambiorix runtime.
void test_can_accept_option(UNUSED void **state)
void test_can_add_import_dir(UNUSED void **state)
void test_can_set_nice_level(UNUSED void **state)
void test_can_enable_syslog(UNUSED void **state)
void test_can_add_forced_option(UNUSED void **state)
void test_can_pass_odl_string(UNUSED void **state)
void test_can_set_usage_doc(UNUSED void **state)
void test_can_add_required_objects(UNUSED void **state)
int test_args_teardown(UNUSED void **state)
void test_can_disable_auto_connect(UNUSED void **state)
void test_can_overwrite_option(UNUSED void **state)
void test_can_print_help(UNUSED void **state)
static int test_args(UNUSED amxc_var_t *config, int arg_id, UNUSED const char *value)
void test_can_add_uri(UNUSED void **state)
void test_cmd_line_parse_fails_after_reset(UNUSED void **state)
void test_can_disable_auto_detect(UNUSED void **state)
void test_can_enable_dump_config(UNUSED void **state)
void test_can_add_include_dir(UNUSED void **state)
void test_can_add_backend(UNUSED void **state)
void test_can_print_extended_help(UNUSED void **state)
void test_can_disable_pid_file_creation(UNUSED void **state)
void test_can_enable_daemonize(UNUSED void **state)
void test_ignores_invalid_options(UNUSED void **state)
int test_args_setup(UNUSED void **state)
void test_can_add_custom_options(UNUSED void **state)
void test_can_enable_eventing(UNUSED void **state)