55 #include <sys/resource.h>
56 #include <sys/types.h>
70 #include <amxc/amxc.h>
71 #include <amxp/amxp_signal.h>
72 #include <amxd/amxd_dm.h>
73 #include <amxd/amxd_object.h>
74 #include <amxd/amxd_parameter.h>
80 #include <amxc/amxc_macros.h>
86 assert_ptr_not_equal(
config, NULL);
87 amxc_var_set(int32_t,
config, 666);
92 UNUSED const char* fn_name,
97 assert_ptr_not_equal(
config, NULL);
98 assert_int_equal(amxc_var_constcast(int32_t,
config), 666);
107 assert_ptr_not_equal(
config, NULL);
108 assert_int_equal(amxc_var_constcast(int32_t,
config), 666);
129 const char* odls[] = {
130 "%define { object Test { void Func(); } }",
131 "%define { object Test { void Func()<!test:data!>; } }",
147 for(
int i = 0; odls[i] != NULL; i++) {
163 const char* odls[] = {
164 "%define { object Test { void Func()<!!>; } }",
165 "%define { object Test { void Func()<!:data!>; } }",
166 "%define { object Test { void Func()<! :data!>; } }",
167 "%define { object Test { void Func()<!invalid-resolver:data!>; } }",
174 for(
int i = 0; odls[i] != NULL; i++) {
188 const char* odls[] = {
189 "%define { object Test { void Func(); } }",
190 "%define { object Test { void Func()<!test:data!>; } }",
191 "%config { resolver = 'test'; } %define { object Test { void Func()<!${resolver}:data!>; } }",
199 amxc_var_init(&order);
200 amxc_var_set_type(&order, AMXC_VAR_ID_LIST);
202 amxc_var_clean(&order);
204 for(
int i = 0; odls[i] != NULL; i++) {
Ambiorix ODL parser header file.
void(* amxo_fn_ptr_t)(void)
enum _amxo_fn_type amxo_fn_type_t
amxc_var_t * amxo_parser_get_config(amxo_parser_t *parser, const char *path)
Gets a configuration option.
int amxo_parser_set_config(amxo_parser_t *parser, const char *path, amxc_var_t *value)
Sets a configuration option.
amxc_var_t * amxo_parser_claim_config(amxo_parser_t *parser, const char *path)
Gets or creates a configuration option.
int amxo_parser_parse_string(amxo_parser_t *parser, const char *text, amxd_object_t *object)
Parses a string containing a valid ODL part.
void amxo_parser_clean(amxo_parser_t *parser)
Cleans up the odl parser instance.
static amxd_status_t amxo_parser_get_status(amxo_parser_t *parser)
Get the status of the odl parser.
int amxo_parser_init(amxo_parser_t *parser)
Initializes a new odl parser instance.
int amxo_unregister_resolver(const char *name)
Unregisters a function resolver.
int amxo_register_resolver(const char *name, amxo_resolver_t *resolver)
Registers a function resolver.
The ODL parser structure.
amxo_res_get_default_t get
static const char * priv_data
static amxo_resolver_t invalid_resolver
void test_register_resolver(UNUSED void **state)
void test_auto_resolver_order_no_any(UNUSED void **state)
static amxo_resolver_t test_resolver
void test_invalid_resolver_names(UNUSED void **state)
static amxo_fn_ptr_t test_resolver_resolve(amxo_parser_t *parser, UNUSED const char *fn_name, UNUSED amxo_fn_type_t type, UNUSED const char *data, void *priv)
static void test_resolver_clean(amxo_parser_t *parser, void *priv)
static void test_resolver_get(amxo_parser_t *parser, void *priv)