libamxo  4.3.4
Object Definition Language (ODL) parsing
test_require.c File Reference
#include <sys/time.h>
#include <sys/resource.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdarg.h>
#include <stddef.h>
#include <setjmp.h>
#include <inttypes.h>
#include <limits.h>
#include <unistd.h>
#include <fcntl.h>
#include <cmocka.h>
#include <amxc/amxc.h>
#include <amxp/amxp_signal.h>
#include <amxd/amxd_dm.h>
#include <amxd/amxd_object.h>
#include <amxd/amxd_parameter.h>
#include <amxo/amxo.h>
#include "test_require.h"
#include <amxc/amxc_macros.h>

Go to the source code of this file.

Functions

void test_can_add_required_object (UNUSED void **state)
 
void test_can_add_required_object_from_included_odl (UNUSED void **state)
 
void test_can_use_requires_between_sections (UNUSED void **state)
 

Function Documentation

◆ test_can_add_required_object()

void test_can_add_required_object ( UNUSED void **  state)

Definition at line 82 of file test_require.c.

82  {
83  amxd_dm_t dm;
84  amxo_parser_t parser;
85  const amxc_llist_t* objects = NULL;
86  const char* odl = "requires 'RemoteObject';";
87 
88  amxd_dm_init(&dm);
89  amxo_parser_init(&parser);
90 
91  assert_int_equal(amxo_parser_parse_string(&parser, odl, amxd_dm_get_root(&dm)), 0);
92  assert_int_equal(amxo_parser_get_status(&parser), amxd_status_ok);
93 
94  assert_non_null(GET_ARG(&parser.config, "requires"));
95  objects = amxc_var_constcast(amxc_llist_t, GET_ARG(&parser.config, "requires"));
96  assert_non_null(objects);
97  assert_false(amxc_llist_is_empty(objects));
98  assert_int_equal(amxc_llist_size(objects), 1);
99 
100  amxo_parser_clean(&parser);
101  amxd_dm_clean(&dm);
102 }
include test_include odl
Definition: test_valid.odl:66
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.
Definition: amxo.h:414
int amxo_parser_init(amxo_parser_t *parser)
Initializes a new odl parser instance.
The ODL parser structure.
Definition: amxo_types.h:245
amxc_var_t config
Definition: amxo_types.h:250

◆ test_can_add_required_object_from_included_odl()

void test_can_add_required_object_from_included_odl ( UNUSED void **  state)

Definition at line 104 of file test_require.c.

104  {
105  amxd_dm_t dm;
106  amxo_parser_t parser;
107  const amxc_llist_t* objects = NULL;
108  const char* odl =
109  "include \"test.odl\";" \
110  "requires \"RemoteObject\";";
111 
112  amxd_dm_init(&dm);
113  amxo_parser_init(&parser);
114 
115  assert_int_equal(amxo_parser_parse_string(&parser, odl, amxd_dm_get_root(&dm)), 0);
116  assert_int_equal(amxo_parser_get_status(&parser), amxd_status_ok);
117 
118  assert_non_null(GET_ARG(&parser.config, "requires"));
119  objects = amxc_var_constcast(amxc_llist_t, GET_ARG(&parser.config, "requires"));
120  assert_non_null(objects);
121  assert_false(amxc_llist_is_empty(objects));
122  assert_int_equal(amxc_llist_size(objects), 2);
123 
124  amxo_parser_clean(&parser);
125  amxd_dm_clean(&dm);
126 }

◆ test_can_use_requires_between_sections()

void test_can_use_requires_between_sections ( UNUSED void **  state)

Definition at line 128 of file test_require.c.

128  {
129  amxd_dm_t dm;
130  amxo_parser_t parser;
131  const amxc_llist_t* objects = NULL;
132  const char* odl =
133  "requires \"RemoteObject1\";" \
134  "%config { }" \
135  "requires \"RemoteObject2\";" \
136  "%define { }" \
137  "requires \"RemoteObject3\";" \
138  "%populate { }" \
139  "requires \"RemoteObject4\";";
140 
141  amxd_dm_init(&dm);
142  amxo_parser_init(&parser);
143 
144  assert_int_equal(amxo_parser_parse_string(&parser, odl, amxd_dm_get_root(&dm)), 0);
145  assert_int_equal(amxo_parser_get_status(&parser), amxd_status_ok);
146 
147  assert_non_null(GET_ARG(&parser.config, "requires"));
148  objects = amxc_var_constcast(amxc_llist_t, GET_ARG(&parser.config, "requires"));
149  assert_non_null(objects);
150  assert_false(amxc_llist_is_empty(objects));
151  assert_int_equal(amxc_llist_size(objects), 4);
152 
153  amxo_parser_clean(&parser);
154  amxd_dm_clean(&dm);
155 }