libamxb  4.8.2
Bus Agnostic C API
test_amxb_ba_register.c File Reference
#include <stdlib.h>
#include <stdarg.h>
#include <stddef.h>
#include <string.h>
#include <unistd.h>
#include <setjmp.h>
#include <cmocka.h>
#include <amxc/amxc_variant.h>
#include <amxc/amxc_htable.h>
#include <amxc/amxc_lqueue.h>
#include <amxp/amxp_signal.h>
#include <amxp/amxp_slot.h>
#include <amxd/amxd_dm.h>
#include <amxb/amxb_be.h>
#include <amxb/amxb.h>
#include <amxb/amxb_register.h>
#include "test_amxb_ba_register.h"
#include <amxc/amxc_macros.h>

Go to the source code of this file.

Functions

int __wrap_dlclose (void *handle)
 
static void * dummy_connect (const char *host, const char *port, const char *path, UNUSED amxp_signal_mngr_t *sigmngr)
 
static int dummy_disconnect (void *ctx)
 
static int dummy_get_fd (void *ctx)
 
static void dummy_free (void *ctx)
 
static int dummy_read (void *const ctx)
 
static int dummy_register (void *const ctx, amxd_dm_t *const dm)
 
static int dummy_describe (UNUSED void *const bus_ctx, UNUSED const char *object, UNUSED const char *search_path, UNUSED uint32_t flags, UNUSED uint32_t access, amxc_var_t *retval, UNUSED int timeout)
 
int __wrap_dlclose (UNUSED void *handle)
 
void test_amxb_register (UNUSED void **state)
 
void test_amxb_who_has (UNUSED void **state)
 

Variables

static char * dummy_ctx = "xbus"
 
static char verify_host [64]
 
static char verify_port [64]
 
static char verify_path [64]
 
static int return_val
 
static amxd_dm_t mydm
 
static amxb_be_funcs_t dummy_be1
 
static amxb_be_funcs_t dummy_be3
 

Function Documentation

◆ __wrap_dlclose() [1/2]

int __wrap_dlclose ( UNUSED void *  handle)

Definition at line 155 of file test_amxb_ba_register.c.

155  {
156  return 0;
157 }

◆ __wrap_dlclose() [2/2]

int __wrap_dlclose ( void *  handle)

◆ dummy_connect()

static void* dummy_connect ( const char *  host,
const char *  port,
const char *  path,
UNUSED amxp_signal_mngr_t *  sigmngr 
)
static

Definition at line 89 of file test_amxb_ba_register.c.

92  {
93  strcpy(verify_host, host);
94  strcpy(verify_port, port);
95  strcpy(verify_path, path);
96 
97  return dummy_ctx;
98 }
static char verify_port[64]
static char verify_host[64]
static char verify_path[64]
static char * dummy_ctx

◆ dummy_describe()

static int dummy_describe ( UNUSED void *const  bus_ctx,
UNUSED const char *  object,
UNUSED const char *  search_path,
UNUSED uint32_t  flags,
UNUSED uint32_t  access,
amxc_var_t *  retval,
UNUSED int  timeout 
)
static

Definition at line 126 of file test_amxb_ba_register.c.

132  {
133  amxc_var_set(cstring_t, retval, "test");
134  return 0;
135 }

◆ dummy_disconnect()

static int dummy_disconnect ( void *  ctx)
static

Definition at line 100 of file test_amxb_ba_register.c.

100  {
101  assert_ptr_equal(ctx, dummy_ctx);
102  return return_val;
103 }
static int return_val

◆ dummy_free()

static void dummy_free ( void *  ctx)
static

Definition at line 110 of file test_amxb_ba_register.c.

110  {
111  assert_ptr_equal(ctx, dummy_ctx);
112 }

◆ dummy_get_fd()

static int dummy_get_fd ( void *  ctx)
static

Definition at line 105 of file test_amxb_ba_register.c.

105  {
106  assert_ptr_equal(ctx, dummy_ctx);
107  return return_val;
108 }

◆ dummy_read()

static int dummy_read ( void *const  ctx)
static

Definition at line 114 of file test_amxb_ba_register.c.

114  {
115  assert_ptr_equal(ctx, dummy_ctx);
116  return return_val;
117 }

◆ dummy_register()

static int dummy_register ( void *const  ctx,
amxd_dm_t *const  dm 
)
static

Definition at line 119 of file test_amxb_ba_register.c.

120  {
121  assert_ptr_equal(ctx, dummy_ctx);
122  assert_ptr_equal(dm, &mydm);
123  return return_val;
124 }
static amxd_dm_t mydm
static amxd_dm_t dm
Definition: test_amxb_e2e.c:85

◆ test_amxb_register()

void test_amxb_register ( UNUSED void **  state)

Definition at line 159 of file test_amxb_ba_register.c.

159  {
160  amxb_bus_ctx_t* ctx = NULL;
161 
162  assert_int_equal(amxd_dm_init(&mydm), 0);
163  assert_int_equal(amxb_be_register(&dummy_be1), 0);
164  assert_int_equal(amxb_be_register(&dummy_be3), 0);
165 
166  return_val = 0;
167  assert_int_equal(amxb_connect(&ctx, "xbus://test:80/var/run/xbus.sock"), 0);
168  assert_int_not_equal(amxb_register(ctx, NULL), 0);
169  assert_int_equal(amxb_register(ctx, &mydm), return_val);
170  amxb_free(&ctx);
171 
172  assert_int_equal(amxb_connect(&ctx, "xbus://test:80/var/run/xbus.sock"), 0);
173  return_val = 1;
174  assert_int_equal(amxb_register(ctx, &mydm), return_val);
175  amxb_free(&ctx);
176 
177  return_val = 0;
178  assert_int_equal(amxb_connect(&ctx, "zbus://test:80/var/run/zbus.sock"), 0);
179  assert_int_equal(amxb_register(ctx, &mydm), AMXB_ERROR_NOT_SUPPORTED_OP);
180  amxb_free(&ctx);
181 
182 
183  return_val = 0;
184  assert_int_equal(amxb_connect(&ctx, "xbus://test:80/var/run/xbus.sock"), 0);
185  amxb_disconnect(ctx);
186  assert_int_not_equal(amxb_register(ctx, &mydm), 0);
187  amxb_free(&ctx);
188 
189  assert_int_not_equal(amxb_register(ctx, &mydm), 0);
190 
191  assert_int_equal(amxb_be_unregister(&dummy_be1), 0);
192  assert_int_equal(amxb_be_unregister(&dummy_be3), 0);
193 
194  amxd_dm_clean(&mydm);
195 }
int amxb_be_unregister(amxb_be_funcs_t *const funcs)
Unregisters a backend interface.
int amxb_be_register(amxb_be_funcs_t *const funcs)
Registers backend interface.
int amxb_connect(amxb_bus_ctx_t **ctx, const char *uri)
Create a bus connection.
void amxb_free(amxb_bus_ctx_t **ctx)
Frees allocated memory.
int amxb_disconnect(amxb_bus_ctx_t *ctx)
Disconnects a bus connection.
#define AMXB_ERROR_NOT_SUPPORTED_OP
Function/operation not supported.
Definition: amxb_error.h:110
int amxb_register(amxb_bus_ctx_t *const ctx, amxd_dm_t *const dm)
Registers a data model to a certain bus context (connection).
static amxb_be_funcs_t dummy_be1
static amxb_be_funcs_t dummy_be3

◆ test_amxb_who_has()

void test_amxb_who_has ( UNUSED void **  state)

Definition at line 197 of file test_amxb_ba_register.c.

197  {
198  amxb_bus_ctx_t* ctx = NULL;
199 
200  assert_int_equal(amxd_dm_init(&mydm), 0);
201  assert_int_equal(amxb_be_register(&dummy_be1), 0);
202 
203  return_val = 0;
204  assert_int_equal(amxb_connect(&ctx, "xbus://test:80/var/run/xbus.sock"), 0);
205  assert_int_not_equal(amxb_register(ctx, NULL), 0);
206  assert_int_equal(amxb_register(ctx, &mydm), return_val);
207 
208  assert_ptr_equal(amxb_be_who_has("Main"), ctx);
209 
210  amxb_free(&ctx);
211  assert_int_equal(amxb_be_unregister(&dummy_be1), 0);
212  amxd_dm_clean(&mydm);
213 }
amxb_bus_ctx_t * amxb_be_who_has(const char *object_path)
Searches a bus context that can provide a certain object.

Variable Documentation

◆ dummy_be1

amxb_be_funcs_t dummy_be1
static
Initial value:
= {
.connect = dummy_connect,
.disconnect = dummy_disconnect,
.get_fd = dummy_get_fd,
.read = dummy_read,
.register_dm = dummy_register,
.free = dummy_free,
.describe = dummy_describe,
.name = "xbus",
.size = sizeof(amxb_be_funcs_t),
}
struct _amxb_be_funcs amxb_be_funcs_t
Definition: amxb_types.h:79
static int dummy_register(void *const ctx, amxd_dm_t *const dm)
static void * dummy_connect(const char *host, const char *port, const char *path, UNUSED amxp_signal_mngr_t *sigmngr)
static int dummy_get_fd(void *ctx)
static int dummy_disconnect(void *ctx)
static int dummy_describe(UNUSED void *const bus_ctx, UNUSED const char *object, UNUSED const char *search_path, UNUSED uint32_t flags, UNUSED uint32_t access, amxc_var_t *retval, UNUSED int timeout)
static void dummy_free(void *ctx)
static int dummy_read(void *const ctx)

Definition at line 137 of file test_amxb_ba_register.c.

◆ dummy_be3

amxb_be_funcs_t dummy_be3
static
Initial value:
= {
.connect = dummy_connect,
.name = "zbus",
.size = sizeof(amxb_be_funcs_t),
}

Definition at line 149 of file test_amxb_ba_register.c.

◆ dummy_ctx

char* dummy_ctx = "xbus"
static

Definition at line 79 of file test_amxb_ba_register.c.

◆ mydm

amxd_dm_t mydm
static

Definition at line 85 of file test_amxb_ba_register.c.

◆ return_val

int return_val
static

Definition at line 83 of file test_amxb_ba_register.c.

◆ verify_host

char verify_host[64]
static

Definition at line 80 of file test_amxb_ba_register.c.

◆ verify_path

char verify_path[64]
static

Definition at line 82 of file test_amxb_ba_register.c.

◆ verify_port

char verify_port[64]
static

Definition at line 81 of file test_amxb_ba_register.c.