libamxo  4.3.4
Object Definition Language (ODL) parsing
test_issue_64.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_macros.h>
#include <amxc/amxc.h>
#include <amxp/amxp.h>
#include <amxp/amxp_signal.h>
#include <amxd/amxd_dm.h>
#include <amxd/amxd_object.h>
#include <amxd/amxd_object_expression.h>
#include <amxd/amxd_parameter.h>
#include <amxd/amxd_action.h>
#include <amxo/amxo.h>
#include <amxo/amxo_save.h>
#include "test_issue_64.h"

Go to the source code of this file.

Functions

static amxd_status_t check_text (amxd_object_t *object, amxd_param_t *param, amxd_action_t reason, const amxc_var_t *const args, amxc_var_t *const retval, void *priv)
 
void test_creation_parameter_is_saved_in_header (UNUSED void **state)
 

Function Documentation

◆ check_text()

static amxd_status_t check_text ( amxd_object_t *  object,
amxd_param_t *  param,
amxd_action_t  reason,
const amxc_var_t *const  args,
amxc_var_t *const  retval,
void *  priv 
)
static

Definition at line 85 of file test_issue_64.c.

90  {
91  amxd_status_t status = amxd_status_ok;
92  const char* data = NULL;
93 
94  status = amxd_action_param_validate(object, param, reason, args, retval, priv);
95  when_failed(status, exit);
96 
97  if(amxd_object_get_type(object) == amxd_object_template) {
98  goto exit;
99  }
100 
101  data = GET_CHAR(args, NULL);
102  if((data == NULL) || (*data == 0)) {
103  status = amxd_status_invalid_value;
104  }
105 
106 exit:
107  return status;
108 }

◆ test_creation_parameter_is_saved_in_header()

void test_creation_parameter_is_saved_in_header ( UNUSED void **  state)

Definition at line 110 of file test_issue_64.c.

110  {
111  amxd_dm_t dm;
112  amxo_parser_t parser;
113 
114  amxd_dm_init(&dm);
115  amxo_parser_init(&parser);
116 
117  amxo_resolver_ftab_add(&parser, "check_text", AMXO_FUNC(check_text));
118 
119  assert_int_equal(amxo_parser_parse_file(&parser, "./issue_64_definition.odl", amxd_dm_get_root(&dm)), 0);
120  assert_int_equal(amxo_parser_parse_file(&parser, "./issue_64_defaults.odl", amxd_dm_get_root(&dm)), 0);
121  assert_int_equal(amxo_parser_save_object(&parser, "./saved.odl", amxd_dm_get_root(&dm), false), 0);
122 
123  amxd_dm_clean(&dm);
124 
125  assert_int_equal(amxo_parser_parse_file(&parser, "./issue_64_definition.odl", amxd_dm_get_root(&dm)), 0);
126  assert_int_equal(amxo_parser_parse_file(&parser, "./saved.odl", amxd_dm_get_root(&dm)), 0);
127 
128  amxo_parser_clean(&parser);
129  amxd_dm_clean(&dm);
130 }
int amxo_parser_save_object(amxo_parser_t *pctx, const char *filename, amxd_object_t *object, bool append)
Definition: amxo_save.c:755
void amxo_parser_clean(amxo_parser_t *parser)
Cleans up the odl parser instance.
int amxo_parser_parse_file(amxo_parser_t *parser, const char *file_path, amxd_object_t *object)
Parses an odl file.
int amxo_parser_init(amxo_parser_t *parser)
Initializes a new odl parser instance.
int amxo_resolver_ftab_add(amxo_parser_t *parser, const char *fn_name, amxo_fn_ptr_t fn)
Adds a C function to the function table.
#define AMXO_FUNC(x)
Function ponter caster macro.
Definition: amxo_types.h:80
The ODL parser structure.
Definition: amxo_types.h:245
static amxd_status_t check_text(amxd_object_t *object, amxd_param_t *param, amxd_action_t reason, const amxc_var_t *const args, amxc_var_t *const retval, void *priv)
Definition: test_issue_64.c:85