libamxb  4.8.2
Bus Agnostic C API
test_amxb_ba_invoke.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 "test_amxb_ba_invoke.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_new_invoke (amxb_invoke_t *invoke_ctx)
 
static void dummy_free_invoke (amxb_invoke_t *invoke_ctx)
 
static int dummy_invoke (void *const ctx, amxb_invoke_t *invoke_ctx, UNUSED amxc_var_t *args, amxb_request_t *request, int timeout)
 
static int dummy_async_invoke (void *const ctx, amxb_invoke_t *invoke_ctx, UNUSED amxc_var_t *args, amxb_request_t *request)
 
static int dummy_wait_request (void *const ctx, amxb_request_t *request, UNUSED int timeout)
 
static int dummy_close_request (void *const ctx, amxb_request_t *request)
 
int __wrap_dlclose (UNUSED void *handle)
 
void test_amxb_new_free_invoke (UNUSED void **state)
 
void test_amxb_invoke (UNUSED void **state)
 
void test_amxb_async_invoke_and_close (UNUSED void **state)
 
void test_amxb_api_after_backend_removal (UNUSED void **state)
 
void test_amxb_wait_for_request (UNUSED void **state)
 
void test_amxb_async_call (UNUSED void **state)
 

Variables

static char * dummy_ctx = "xbus"
 
static char * dummy_bus_data = "xbus dummy data"
 
static char verify_host [64]
 
static char verify_port [64]
 
static char verify_path [64]
 
static int return_val
 
static amxb_be_funcs_t dummy_be1
 
static amxb_be_funcs_t dummy_be3
 
static amxb_be_funcs_t dummy_be4
 

Function Documentation

◆ __wrap_dlclose() [1/2]

int __wrap_dlclose ( UNUSED void *  handle)

Definition at line 196 of file test_amxb_ba_invoke.c.

196  {
197  return 0;
198 }

◆ __wrap_dlclose() [2/2]

int __wrap_dlclose ( void *  handle)

◆ dummy_async_invoke()

static int dummy_async_invoke ( void *const  ctx,
amxb_invoke_t invoke_ctx,
UNUSED amxc_var_t *  args,
amxb_request_t request 
)
static

Definition at line 140 of file test_amxb_ba_invoke.c.

143  {
144  assert_ptr_equal(ctx, dummy_ctx);
145  assert_string_equal(invoke_ctx->object, "object");
146  assert_string_equal(invoke_ctx->method, "method");
147  request->bus_data = dummy_bus_data;
148  return return_val;
149 }
char * method
Definition: amxb_types.h:153
char * object
Definition: amxb_types.h:151
void * bus_data
Definition: amxb_types.h:144
static int return_val
static char * dummy_bus_data
static char * dummy_ctx

◆ dummy_close_request()

static int dummy_close_request ( void *const  ctx,
amxb_request_t request 
)
static

Definition at line 160 of file test_amxb_ba_invoke.c.

161  {
162  assert_ptr_equal(ctx, dummy_ctx);
163  assert_ptr_equal(request->bus_data, dummy_bus_data);
164  return return_val;
165 }

◆ 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 87 of file test_amxb_ba_invoke.c.

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

◆ dummy_disconnect()

static int dummy_disconnect ( void *  ctx)
static

Definition at line 98 of file test_amxb_ba_invoke.c.

98  {
99  assert_ptr_equal(ctx, dummy_ctx);
100  return return_val;
101 }

◆ dummy_free()

static void dummy_free ( void *  ctx)
static

Definition at line 108 of file test_amxb_ba_invoke.c.

108  {
109  assert_ptr_equal(ctx, dummy_ctx);
110 }

◆ dummy_free_invoke()

static void dummy_free_invoke ( amxb_invoke_t invoke_ctx)
static

Definition at line 122 of file test_amxb_ba_invoke.c.

122  {
123  assert_ptr_not_equal(invoke_ctx, NULL);
124  return;
125 }

◆ dummy_get_fd()

static int dummy_get_fd ( void *  ctx)
static

Definition at line 103 of file test_amxb_ba_invoke.c.

103  {
104  assert_ptr_equal(ctx, dummy_ctx);
105  return return_val;
106 }

◆ dummy_invoke()

static int dummy_invoke ( void *const  ctx,
amxb_invoke_t invoke_ctx,
UNUSED amxc_var_t *  args,
amxb_request_t request,
int  timeout 
)
static

Definition at line 127 of file test_amxb_ba_invoke.c.

131  {
132  assert_ptr_equal(ctx, dummy_ctx);
133  assert_string_equal(invoke_ctx->object, "object");
134  assert_string_equal(invoke_ctx->method, "method");
135  assert_ptr_not_equal(request, NULL);
136  assert_int_equal(timeout, 10);
137  return return_val;
138 }

◆ dummy_new_invoke()

static int dummy_new_invoke ( amxb_invoke_t invoke_ctx)
static

Definition at line 117 of file test_amxb_ba_invoke.c.

117  {
118  assert_ptr_not_equal(invoke_ctx, NULL);
119  return return_val;
120 }

◆ dummy_read()

static int dummy_read ( void *const  ctx)
static

Definition at line 112 of file test_amxb_ba_invoke.c.

112  {
113  assert_ptr_equal(ctx, dummy_ctx);
114  return return_val;
115 }

◆ dummy_wait_request()

static int dummy_wait_request ( void *const  ctx,
amxb_request_t request,
UNUSED int  timeout 
)
static

Definition at line 151 of file test_amxb_ba_invoke.c.

153  {
154  assert_ptr_equal(ctx, dummy_ctx);
155  assert_ptr_equal(request->bus_data, dummy_bus_data);
156 
157  return return_val;
158 }

◆ test_amxb_api_after_backend_removal()

void test_amxb_api_after_backend_removal ( UNUSED void **  state)

Definition at line 382 of file test_amxb_ba_invoke.c.

382  {
383  amxb_bus_ctx_t* ctx = NULL;
384  amxb_request_t* request = NULL;
385  amxb_invoke_t* invoke_ctx = NULL;
386 
387  assert_int_equal(amxb_be_register(&dummy_be1), 0);
388 
389  return_val = 0;
390  assert_int_equal(amxb_connect(&ctx, "xbus://test:80/var/run/xbus.sock"), 0);
391  assert_int_equal(amxb_new_invoke(&invoke_ctx, ctx, "object", NULL, "method"), 0);
392  assert_int_equal(amxb_async_invoke(invoke_ctx, NULL, NULL, NULL, NULL, &request), return_val);
393 
394  assert_int_equal(amxb_be_unregister(&dummy_be1), 0);
395  ctx = NULL;
396 
397  assert_int_not_equal(amxb_disconnect(ctx), 0);
398  assert_int_not_equal(amxb_read(ctx), 0);
399  assert_int_equal(amxb_get_fd(ctx), -1);
400  assert_int_equal(amxb_close_request(&request), 0);
401  assert_ptr_equal(request, NULL);
402  assert_int_not_equal(amxb_async_invoke(invoke_ctx, NULL, NULL, NULL, NULL, &request), 0);
403  assert_ptr_equal(request, NULL);
404  assert_int_not_equal(amxb_invoke(invoke_ctx, NULL, NULL, NULL, NULL, 10), 0);
405 
406  amxb_free_invoke(&invoke_ctx);
407  amxb_free(&ctx);
408 }
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_get_fd(const amxb_bus_ctx_t *const ctx)
Get the connection file descriptor.
int amxb_disconnect(amxb_bus_ctx_t *ctx)
Disconnects a bus connection.
int amxb_read(const amxb_bus_ctx_t *const ctx)
Reads data from the file descriptor.
int amxb_close_request(amxb_request_t **req)
Closes a previously create remote function called context.
int amxb_new_invoke(amxb_invoke_t **invoke_ctx, amxb_bus_ctx_t *const ctx, const char *object, const char *interface, const char *method)
Prepares a remote function invocation.
void amxb_free_invoke(amxb_invoke_t **invoke_ctx)
Deletes a function invoke context, and frees allocated memory.
int amxb_async_invoke(amxb_invoke_t *invoke_ctx, amxc_var_t *args, amxb_be_cb_fn_t fn, amxb_be_done_cb_fn_t done_fn, void *priv, amxb_request_t **req)
Invokes a remote function, as defined by the function invoke context.
int amxb_invoke(amxb_invoke_t *invoke_ctx, amxc_var_t *args, amxc_var_t *ret, amxb_be_cb_fn_t fn, void *priv, int timeout)
Invokes a remote function, as defined by the function invoke context.
A request structure.
Definition: amxb_types.h:138
static amxb_be_funcs_t dummy_be1

◆ test_amxb_async_call()

void test_amxb_async_call ( UNUSED void **  state)

Definition at line 450 of file test_amxb_ba_invoke.c.

450  {
451  amxb_bus_ctx_t* ctx = NULL;
452  amxb_request_t* request = NULL;
453 
454  assert_int_equal(amxb_be_register(&dummy_be1), 0);
455  assert_int_equal(amxb_be_register(&dummy_be4), 0);
456 
457  assert_int_equal(amxb_connect(&ctx, "xbus://atest:8080/var/run/xbus.sock"), 0);
458  return_val = 0;
459  request = amxb_async_call(ctx, "object", "method", NULL, NULL, NULL);
460  assert_non_null(request);
461 
462  assert_int_equal(amxb_wait_for_request(request, 5), 0);
463  assert_int_equal(amxb_close_request(&request), 0);
464  assert_ptr_equal(request, NULL);
465 
466  assert_int_not_equal(amxb_wait_for_request(request, 5), 0);
467 
468  assert_int_equal(amxb_disconnect(ctx), 0);
469  amxb_free(&ctx);
470 
471  assert_int_equal(amxb_connect(&ctx, "abus://atest:8080/var/run/abus.sock"), 0);
472  return_val = 0;
473  request = amxb_async_call(ctx, "object", "method", NULL, NULL, NULL);
474  assert_non_null(request);
475 
476  assert_int_equal(amxb_wait_for_request(request, 5), AMXB_ERROR_NOT_SUPPORTED_OP);
477  assert_int_equal(amxb_close_request(&request), AMXB_ERROR_NOT_SUPPORTED_OP);
478 
479  amxb_free(&ctx);
480 
481  assert_int_equal(amxb_be_unregister(&dummy_be1), 0);
482  assert_int_equal(amxb_be_unregister(&dummy_be4), 0);
483 }
#define AMXB_ERROR_NOT_SUPPORTED_OP
Function/operation not supported.
Definition: amxb_error.h:110
int amxb_wait_for_request(amxb_request_t *req, int timeout)
Waits for an asynchronous remote function invoke to finish.
amxb_request_t * amxb_async_call(amxb_bus_ctx_t *const bus_ctx, const char *object, const char *method, amxc_var_t *args, amxb_be_done_cb_fn_t done_fn, void *priv)
Invokes a data model function.
static amxb_be_funcs_t dummy_be4

◆ test_amxb_async_invoke_and_close()

void test_amxb_async_invoke_and_close ( UNUSED void **  state)

Definition at line 299 of file test_amxb_ba_invoke.c.

299  {
300  amxb_bus_ctx_t* ctx = NULL;
301  amxc_var_t args;
302  amxb_request_t* request = NULL;
303  amxb_invoke_t* invoke_ctx = NULL;
304 
305  amxc_var_init(&args);
306  assert_int_equal(amxb_be_register(&dummy_be1), 0);
307  assert_int_equal(amxb_be_register(&dummy_be3), 0);
308  assert_int_equal(amxb_be_register(&dummy_be4), 0);
309 
310 
311  return_val = 0;
312  assert_int_equal(amxb_connect(&ctx, "xbus://test:80/var/run/xbus.sock"), 0);
313  assert_int_equal(amxb_new_invoke(&invoke_ctx, ctx, "object", NULL, "method"), 0);
314 
315  assert_int_equal(amxb_async_invoke(invoke_ctx, NULL, NULL, NULL, NULL, &request), return_val);
316  assert_ptr_not_equal(request, NULL);
317  assert_int_equal(amxb_close_request(&request), 0);
318  assert_int_not_equal(amxb_close_request(&request), 0);
319 
320  assert_int_not_equal(amxb_async_invoke(invoke_ctx, NULL, NULL, NULL, NULL, NULL), return_val);
321  assert_ptr_equal(request, NULL);
322 
323  assert_int_equal(amxb_async_invoke(invoke_ctx, &args, NULL, NULL, NULL, &request), return_val);
324  assert_ptr_not_equal(request, NULL);
325  assert_int_equal(amxb_close_request(&request), 0);
326  assert_ptr_equal(request, NULL);
327 
328  amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
329  assert_int_equal(amxb_async_invoke(invoke_ctx, &args, NULL, NULL, NULL, &request), return_val);
330  assert_ptr_not_equal(request, NULL);
331  assert_int_equal(amxb_close_request(&request), 0);
332  assert_ptr_equal(request, NULL);
333 
334  assert_int_not_equal(amxb_async_invoke(NULL, NULL, NULL, NULL, NULL, &request), 0);
335  assert_ptr_equal(request, NULL);
336 
337  return_val = -1;
338  assert_int_equal(amxb_async_invoke(invoke_ctx, NULL, NULL, NULL, NULL, &request), return_val);
339  assert_ptr_equal(request, NULL);
340 
341  return_val = 0;
342  amxb_free_invoke(&invoke_ctx);
343  assert_int_equal(amxb_disconnect(ctx), 0);
344  amxb_free(&ctx);
345  assert_ptr_equal(ctx, NULL);
346 
347  assert_int_equal(amxb_connect(&ctx, "abus://atest:8080/var/run/abus.sock"), 0);
348  assert_int_equal(amxb_new_invoke(&invoke_ctx, ctx, "object", NULL, "method"), 0);
349 
350  return_val = 0;
351  assert_int_equal(amxb_async_invoke(invoke_ctx, NULL, NULL, NULL, NULL, &request), 0);
352  assert_ptr_not_equal(request, NULL);
353  assert_int_equal(amxb_close_request(&request), AMXB_ERROR_NOT_SUPPORTED_OP);
354  assert_ptr_equal(request, NULL);
355  assert_int_not_equal(amxb_disconnect(ctx), 0);
356  amxb_free_invoke(&invoke_ctx);
357  amxb_free(&ctx);
358 
359  assert_int_equal(amxb_connect(&ctx, "zbus://test:80/var/run/zbus.sock"), 0);
360  assert_int_equal(amxb_new_invoke(&invoke_ctx, ctx, "object", NULL, "method"), 0);
361 
362  return_val = 0;
363  assert_int_equal(amxb_async_invoke(invoke_ctx, NULL, NULL, NULL, NULL, &request), AMXB_ERROR_NOT_SUPPORTED_OP);
364  assert_ptr_equal(request, NULL);
365  return_val = -1;
366  assert_int_equal(amxb_async_invoke(invoke_ctx, NULL, NULL, NULL, NULL, &request), AMXB_ERROR_NOT_SUPPORTED_OP);
367  assert_ptr_equal(request, NULL);
368  return_val = 0;
369  amxb_free(&ctx);
370 
371  assert_int_equal(amxb_be_unregister(&dummy_be1), 0);
372  assert_int_equal(amxb_be_unregister(&dummy_be3), 0);
373  assert_int_equal(amxb_be_unregister(&dummy_be4), 0);
374  amxc_var_clean(&args);
375 
376  assert_int_not_equal(amxb_async_invoke(invoke_ctx, NULL, NULL, NULL, NULL, &request), 0);
377  assert_ptr_equal(request, NULL);
378  assert_int_not_equal(amxb_close_request(NULL), 0);
379  amxb_free_invoke(&invoke_ctx);
380 }
static amxb_be_funcs_t dummy_be3

◆ test_amxb_invoke()

void test_amxb_invoke ( UNUSED void **  state)

Definition at line 244 of file test_amxb_ba_invoke.c.

244  {
245  amxb_bus_ctx_t* ctx = NULL;
246  amxc_var_t ret;
247  amxc_var_t args;
248  amxb_invoke_t* invoke_ctx = NULL;
249 
250  amxc_var_init(&ret);
251  amxc_var_init(&args);
252  assert_int_equal(amxb_be_register(&dummy_be1), 0);
253  assert_int_equal(amxb_be_register(&dummy_be3), 0);
254 
255  return_val = 0;
256  assert_int_equal(amxb_connect(&ctx, "xbus://test:80/var/run/xbus.sock"), 0);
257  assert_int_equal(amxb_new_invoke(&invoke_ctx, ctx, "object", NULL, "method"), 0);
258 
259  assert_int_equal(amxb_invoke(invoke_ctx, NULL, NULL, NULL, NULL, 10), return_val);
260  assert_int_equal(amxb_invoke(invoke_ctx, NULL, &ret, NULL, NULL, 10), return_val);
261  assert_int_equal(amxb_invoke(invoke_ctx, &args, &ret, NULL, NULL, 10), return_val);
262  amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
263  assert_int_equal(amxb_invoke(invoke_ctx, &args, &ret, NULL, NULL, 10), return_val);
264  assert_int_not_equal(amxb_invoke(NULL, NULL, NULL, NULL, NULL, 0), 0);
265  return_val = -1;
266  assert_int_equal(amxb_invoke(invoke_ctx, NULL, NULL, NULL, NULL, 10), return_val);
267  return_val = 0;
268  assert_int_equal(amxb_disconnect(ctx), 0);
269  amxb_free_invoke(&invoke_ctx);
270  amxb_free(&ctx);
271  assert_ptr_equal(ctx, NULL);
272 
273  assert_int_equal(amxb_connect(&ctx, "zbus://test:80/var/run/zbus.sock"), 0);
274  assert_int_equal(amxb_new_invoke(&invoke_ctx, ctx, "object", NULL, "method"), 0);
275 
276  return_val = 0;
277  assert_int_equal(amxb_invoke(invoke_ctx, NULL, NULL, NULL, NULL, 0), AMXB_ERROR_NOT_SUPPORTED_OP);
278  return_val = -1;
279  assert_int_equal(amxb_invoke(invoke_ctx, NULL, NULL, NULL, NULL, 0), AMXB_ERROR_NOT_SUPPORTED_OP);
280  return_val = 0;
281  amxb_free(&ctx);
282  amxb_free_invoke(&invoke_ctx);
283 
284  return_val = 0;
285  assert_int_equal(amxb_connect(&ctx, "xbus://test:80/var/run/xbus.sock"), 0);
286  assert_int_equal(amxb_new_invoke(&invoke_ctx, ctx, "object", NULL, "method()"), 0);
287  assert_int_equal(amxb_invoke(invoke_ctx, NULL, NULL, NULL, NULL, 10), return_val);
288  assert_int_equal(amxb_invoke(invoke_ctx, NULL, &ret, NULL, NULL, 10), return_val);
289  assert_int_equal(amxb_invoke(invoke_ctx, &args, &ret, NULL, NULL, 10), return_val);
290  amxb_free(&ctx);
291  amxb_free_invoke(&invoke_ctx);
292 
293  assert_int_equal(amxb_be_unregister(&dummy_be1), 0);
294  assert_int_equal(amxb_be_unregister(&dummy_be3), 0);
295  amxc_var_clean(&ret);
296  amxc_var_clean(&args);
297 }

◆ test_amxb_new_free_invoke()

void test_amxb_new_free_invoke ( UNUSED void **  state)

Definition at line 200 of file test_amxb_ba_invoke.c.

200  {
201  amxb_bus_ctx_t* ctx = NULL;
202  amxb_invoke_t* invoke_ctx = NULL;
203 
204  assert_int_equal(amxb_be_register(&dummy_be1), 0);
205  assert_int_equal(amxb_be_register(&dummy_be3), 0);
206 
207  assert_int_not_equal(amxb_new_invoke(&invoke_ctx, ctx, "object", NULL, "method"), 0);
208  return_val = 0;
209  assert_int_equal(amxb_connect(&ctx, "xbus://test:80/var/run/xbus.sock"), 0);
210  assert_int_equal(amxb_new_invoke(&invoke_ctx, ctx, "object", NULL, "method"), 0);
211  assert_int_not_equal(amxb_new_invoke(&invoke_ctx, ctx, "object", NULL, "method"), 0);
212  amxb_free_invoke(&invoke_ctx);
213 
214  assert_int_not_equal(amxb_new_invoke(NULL, NULL, "object", NULL, "method"), 0);
215  assert_int_not_equal(amxb_new_invoke(&invoke_ctx, NULL, "object", NULL, "method"), 0);
216  assert_int_not_equal(amxb_new_invoke(&invoke_ctx, ctx, NULL, NULL, NULL), 0);
217  assert_int_not_equal(amxb_new_invoke(&invoke_ctx, ctx, "object", NULL, NULL), 0);
218  assert_int_not_equal(amxb_new_invoke(&invoke_ctx, ctx, "", NULL, ""), 0);
219  assert_int_not_equal(amxb_new_invoke(&invoke_ctx, ctx, "object", NULL, ""), 0);
220  assert_int_equal(amxb_new_invoke(&invoke_ctx, ctx, "object", "interface", "method"), 0);
221  assert_string_equal(invoke_ctx->object, "object");
222  assert_string_equal(invoke_ctx->interface, "interface");
223  assert_string_equal(invoke_ctx->method, "method");
224  assert_ptr_equal(invoke_ctx->it.llist, &ctx->invoke_ctxs);
225  amxb_free_invoke(&invoke_ctx);
226  amxb_free_invoke(&invoke_ctx);
227  amxb_free_invoke(NULL);
228 
229  return_val = -1;
230  assert_int_not_equal(amxb_new_invoke(&invoke_ctx, ctx, "object", NULL, "method"), 0);
231  assert_ptr_equal(invoke_ctx, NULL);
232 
233  return_val = 0;
234  assert_int_equal(amxb_disconnect(ctx), 0);
235  assert_int_not_equal(amxb_new_invoke(&invoke_ctx, ctx, "object", NULL, "method"), 0);
236  assert_ptr_equal(invoke_ctx, NULL);
237 
238  amxb_free(&ctx);
239 
240  assert_int_equal(amxb_be_unregister(&dummy_be1), 0);
241  assert_int_equal(amxb_be_unregister(&dummy_be3), 0);
242 }
amxc_llist_t invoke_ctxs
Definition: amxb_types.h:119
amxc_llist_it_t it
Definition: amxb_types.h:150
char * interface
Definition: amxb_types.h:152

◆ test_amxb_wait_for_request()

void test_amxb_wait_for_request ( UNUSED void **  state)

Definition at line 410 of file test_amxb_ba_invoke.c.

410  {
411  amxb_bus_ctx_t* ctx = NULL;
412  amxb_request_t* request = NULL;
413  amxb_invoke_t* invoke_ctx = NULL;
414 
415  assert_int_equal(amxb_be_register(&dummy_be1), 0);
416  assert_int_equal(amxb_be_register(&dummy_be4), 0);
417 
418  assert_int_equal(amxb_connect(&ctx, "xbus://atest:8080/var/run/xbus.sock"), 0);
419  return_val = 0;
420  assert_int_equal(amxb_new_invoke(&invoke_ctx, ctx, "object", NULL, "method"), NULL);
421  assert_int_equal(amxb_async_invoke(invoke_ctx, NULL, NULL, NULL, NULL, &request), 0);
422  assert_ptr_not_equal(request, NULL);
423 
424  assert_int_equal(amxb_wait_for_request(request, 5), 0);
425  assert_int_equal(amxb_close_request(&request), 0);
426  assert_ptr_equal(request, NULL);
427 
428  assert_int_not_equal(amxb_wait_for_request(request, 5), 0);
429 
430  amxb_free_invoke(&invoke_ctx);
431  assert_int_equal(amxb_disconnect(ctx), 0);
432  amxb_free(&ctx);
433 
434  assert_int_equal(amxb_connect(&ctx, "abus://atest:8080/var/run/abus.sock"), 0);
435  return_val = 0;
436  assert_int_equal(amxb_new_invoke(&invoke_ctx, ctx, "object", NULL, "method"), 0);
437  assert_int_equal(amxb_async_invoke(invoke_ctx, NULL, NULL, NULL, NULL, &request), 0);
438  assert_ptr_not_equal(request, NULL);
439 
440  assert_int_equal(amxb_wait_for_request(request, 5), AMXB_ERROR_NOT_SUPPORTED_OP);
441  assert_int_equal(amxb_close_request(&request), AMXB_ERROR_NOT_SUPPORTED_OP);
442 
443  amxb_free_invoke(&invoke_ctx);
444  amxb_free(&ctx);
445 
446  assert_int_equal(amxb_be_unregister(&dummy_be1), 0);
447  assert_int_equal(amxb_be_unregister(&dummy_be4), 0);
448 }

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,
.new_invoke = dummy_new_invoke,
.free_invoke = dummy_free_invoke,
.invoke = dummy_invoke,
.async_invoke = dummy_async_invoke,
.wait_request = dummy_wait_request,
.close_request = dummy_close_request,
.free = dummy_free,
.name = "xbus",
.size = sizeof(amxb_be_funcs_t),
}
struct _amxb_be_funcs amxb_be_funcs_t
Definition: amxb_types.h:79
static int dummy_wait_request(void *const ctx, amxb_request_t *request, UNUSED int timeout)
static void * dummy_connect(const char *host, const char *port, const char *path, UNUSED amxp_signal_mngr_t *sigmngr)
static void dummy_free_invoke(amxb_invoke_t *invoke_ctx)
static int dummy_get_fd(void *ctx)
static int dummy_invoke(void *const ctx, amxb_invoke_t *invoke_ctx, UNUSED amxc_var_t *args, amxb_request_t *request, int timeout)
static int dummy_new_invoke(amxb_invoke_t *invoke_ctx)
static int dummy_disconnect(void *ctx)
static void dummy_free(void *ctx)
static int dummy_close_request(void *const ctx, amxb_request_t *request)
static int dummy_read(void *const ctx)
static int dummy_async_invoke(void *const ctx, amxb_invoke_t *invoke_ctx, UNUSED amxc_var_t *args, amxb_request_t *request)

Definition at line 167 of file test_amxb_ba_invoke.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 183 of file test_amxb_ba_invoke.c.

◆ dummy_be4

amxb_be_funcs_t dummy_be4
static
Initial value:
= {
.connect = dummy_connect,
.async_invoke = dummy_async_invoke,
.name = "abus",
.size = sizeof(amxb_be_funcs_t),
}

Definition at line 189 of file test_amxb_ba_invoke.c.

◆ dummy_bus_data

char* dummy_bus_data = "xbus dummy data"
static

Definition at line 79 of file test_amxb_ba_invoke.c.

◆ dummy_ctx

char* dummy_ctx = "xbus"
static

Definition at line 78 of file test_amxb_ba_invoke.c.

◆ return_val

int return_val
static

Definition at line 83 of file test_amxb_ba_invoke.c.

◆ verify_host

char verify_host[64]
static

Definition at line 80 of file test_amxb_ba_invoke.c.

◆ verify_path

char verify_path[64]
static

Definition at line 82 of file test_amxb_ba_invoke.c.

◆ verify_port

char verify_port[64]
static

Definition at line 81 of file test_amxb_ba_invoke.c.