Motr  M0
filterc_ut.c File Reference
#include "lib/trace.h"
#include "ut/ut.h"
#include "fdmi/fdmi.h"
#include "fdmi/ut/sd_common.h"
#include "rpc/rpclib.h"
#include "ut/cs_service.h"
#include "lib/string.h"
#include "lib/finject.h"
#include "fdmi/service.h"
#include "conf/ut/rpc_helpers.h"
#include "ut/misc.h"
#include <errno.h>
Include dependency graph for filterc_ut.c:

Go to the source code of this file.

Macros

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_FDMI
 
#define CLIENT_ENDPOINT_ADDR   "0@lo:12345:34:*"
 
#define SERVER_ENDPOINT_ADDR   "0@lo:12345:34:1"
 
#define SERVER_ENDPOINT   M0_NET_XPRT_PREFIX_DEFAULT":"SERVER_ENDPOINT_ADDR
 
#define SERVER_DB_NAME   "fdmi_filterc_ut.db"
 
#define SERVER_STOB_NAME   "fdmi_filterc_ut.stob"
 
#define SERVER_ADDB_STOB_NAME   "linuxstob:fdmi_filterc_ut.addb_stob"
 
#define SERVER_LOG_NAME   "fdmi_filterc_ut.log"
 
#define SERVER_ENDPOINT_ADDR   "0@lo:12345:34:1"
 
#define CLIENT_DB_NAME   "fdmi_filterc_ut.db"
 

Enumerations

enum  { MAX_RPCS_IN_FLIGHT = 1 }
 

Functions

static struct m0_reqhmotr2reqh (struct m0_motr *motr)
 
static int ut_filterc_start ()
 
static int ut_filterc_fco_start (struct m0_filterc_ctx *ctx, struct m0_reqh *reqh)
 
static void rpc_client_and_server_start (void)
 
static void rpc_client_and_server_stop (void)
 
static int test_fs_node_eval (struct m0_fdmi_src_rec *src_rec, struct m0_fdmi_flt_var_node *value_desc, struct m0_fdmi_flt_operand *value)
 
static int test_fs_encode (struct m0_fdmi_src_rec *src_rec, struct m0_buf *buf)
 
static void test_fs_get (struct m0_fdmi_src_rec *src_rec)
 
static void test_fs_put (struct m0_fdmi_src_rec *src_rec)
 
static void test_fs_begin (struct m0_fdmi_src_rec *src_rec)
 
static void test_fs_end (struct m0_fdmi_src_rec *src_rec)
 
static struct m0_fdmi_srcsrc_alloc ()
 
static void filterc_connect_to_confd (void)
 

Variables

static char g_fdmi_data [] = "hello, FDMI"
 
static struct m0_fdmi_src_rec g_src_rec
 
static struct m0_filterc_opsufc_fco
 
static struct m0_reqh_serviceufc_fdmi_service
 
static struct m0_net_domain client_net_dom
 
static char * server_argv []
 
static struct m0_rpc_server_ctx sctx
 
static struct m0_rpc_client_ctx cctx
 
static struct m0_cond match_cond
 
static struct m0_mutex cond_mutex
 
struct m0_ut_suite fdmi_filterc_ut
 

Macro Definition Documentation

◆ CLIENT_DB_NAME

#define CLIENT_DB_NAME   "fdmi_filterc_ut.db"

Definition at line 58 of file filterc_ut.c.

◆ CLIENT_ENDPOINT_ADDR

#define CLIENT_ENDPOINT_ADDR   "0@lo:12345:34:*"

Definition at line 48 of file filterc_ut.c.

◆ M0_TRACE_SUBSYSTEM

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_FDMI

Definition at line 23 of file filterc_ut.c.

◆ SERVER_ADDB_STOB_NAME

#define SERVER_ADDB_STOB_NAME   "linuxstob:fdmi_filterc_ut.addb_stob"

Definition at line 54 of file filterc_ut.c.

◆ SERVER_DB_NAME

#define SERVER_DB_NAME   "fdmi_filterc_ut.db"

Definition at line 52 of file filterc_ut.c.

◆ SERVER_ENDPOINT

#define SERVER_ENDPOINT   M0_NET_XPRT_PREFIX_DEFAULT":"SERVER_ENDPOINT_ADDR

Definition at line 50 of file filterc_ut.c.

◆ SERVER_ENDPOINT_ADDR [1/2]

#define SERVER_ENDPOINT_ADDR   "0@lo:12345:34:1"

Definition at line 56 of file filterc_ut.c.

◆ SERVER_ENDPOINT_ADDR [2/2]

#define SERVER_ENDPOINT_ADDR   "0@lo:12345:34:1"

Definition at line 56 of file filterc_ut.c.

◆ SERVER_LOG_NAME

#define SERVER_LOG_NAME   "fdmi_filterc_ut.log"

Definition at line 55 of file filterc_ut.c.

◆ SERVER_STOB_NAME

#define SERVER_STOB_NAME   "fdmi_filterc_ut.stob"

Definition at line 53 of file filterc_ut.c.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
MAX_RPCS_IN_FLIGHT 

Definition at line 69 of file filterc_ut.c.

Function Documentation

◆ filterc_connect_to_confd()

static void filterc_connect_to_confd ( void  )
static

Definition at line 254 of file filterc_ut.c.

Here is the call graph for this function:

◆ motr2reqh()

static struct m0_reqh* motr2reqh ( struct m0_motr motr)
static

Definition at line 92 of file filterc_ut.c.

Here is the caller graph for this function:

◆ rpc_client_and_server_start()

static void rpc_client_and_server_start ( void  )
static

Definition at line 151 of file filterc_ut.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rpc_client_and_server_stop()

static void rpc_client_and_server_stop ( void  )
static

Definition at line 165 of file filterc_ut.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ src_alloc()

static struct m0_fdmi_src* src_alloc ( )
static

Definition at line 237 of file filterc_ut.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_fs_begin()

static void test_fs_begin ( struct m0_fdmi_src_rec src_rec)
static

Definition at line 222 of file filterc_ut.c.

Here is the caller graph for this function:

◆ test_fs_encode()

static int test_fs_encode ( struct m0_fdmi_src_rec src_rec,
struct m0_buf buf 
)
static

Definition at line 204 of file filterc_ut.c.

Here is the caller graph for this function:

◆ test_fs_end()

static void test_fs_end ( struct m0_fdmi_src_rec src_rec)
static

Definition at line 228 of file filterc_ut.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_fs_get()

static void test_fs_get ( struct m0_fdmi_src_rec src_rec)
static

Definition at line 210 of file filterc_ut.c.

Here is the caller graph for this function:

◆ test_fs_node_eval()

static int test_fs_node_eval ( struct m0_fdmi_src_rec src_rec,
struct m0_fdmi_flt_var_node value_desc,
struct m0_fdmi_flt_operand value 
)
static

Configuration root definition for the filter, contains two bool operands, one of them is true and this what we check here. However src_rec->fsr_matched is set in fdmi_eval generic code and this callback is only called for var nodes but is mandatory for registering custom filter. So basically this is just in case.

Definition at line 179 of file filterc_ut.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_fs_put()

static void test_fs_put ( struct m0_fdmi_src_rec src_rec)
static

Definition at line 216 of file filterc_ut.c.

Here is the caller graph for this function:

◆ ut_filterc_fco_start()

static int ut_filterc_fco_start ( struct m0_filterc_ctx ctx,
struct m0_reqh reqh 
)
static

Definition at line 141 of file filterc_ut.c.

Here is the caller graph for this function:

◆ ut_filterc_start()

static int ut_filterc_start ( )
static

Definition at line 97 of file filterc_ut.c.

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ cctx

struct m0_rpc_client_ctx cctx
static
Initial value:
= {
.rcx_net_dom = &client_net_dom,
.rcx_local_addr = CLIENT_ENDPOINT_ADDR,
.rcx_remote_addr = SERVER_ENDPOINT_ADDR,
.rcx_max_rpcs_in_flight = MAX_RPCS_IN_FLIGHT,
.rcx_fid = &g_process_fid,
}
static struct m0_net_domain client_net_dom
Definition: filterc_ut.c:60
#define SERVER_ENDPOINT_ADDR
Definition: filterc_ut.c:56
struct m0_fid g_process_fid
Definition: ut.c:689
#define CLIENT_ENDPOINT_ADDR
Definition: filterc_ut.c:48

Definition at line 80 of file filterc_ut.c.

◆ client_net_dom

struct m0_net_domain client_net_dom
static

Definition at line 60 of file filterc_ut.c.

◆ cond_mutex

struct m0_mutex cond_mutex
static

Definition at line 177 of file filterc_ut.c.

◆ fdmi_filterc_ut

struct m0_ut_suite fdmi_filterc_ut
Initial value:
= {
.ts_name = "fdmi-filterc-ut",
.ts_tests = {
{ "filterc-connect-to-confd", filterc_connect_to_confd},
{ NULL, NULL },
},
}
#define NULL
Definition: misc.h:38
static void filterc_connect_to_confd(void)
Definition: filterc_ut.c:254

Definition at line 299 of file filterc_ut.c.

◆ g_fdmi_data

char g_fdmi_data[] = "hello, FDMI"
static

Definition at line 39 of file filterc_ut.c.

◆ g_src_rec

struct m0_fdmi_src_rec g_src_rec
static

Definition at line 40 of file filterc_ut.c.

◆ match_cond

struct m0_cond match_cond
static

Definition at line 176 of file filterc_ut.c.

◆ sctx

struct m0_rpc_server_ctx sctx
static
Initial value:
= {
.rsx_xprts_nr = 1,
.rsx_argv = server_argv,
.rsx_argc = ARRAY_SIZE(server_argv),
.rsx_log_file_name = SERVER_LOG_NAME,
}
#define SERVER_LOG_NAME
Definition: filterc_ut.c:55
static char * server_argv[]
Definition: filterc_ut.c:62
#define ARRAY_SIZE(a)
Definition: misc.h:45

Definition at line 73 of file filterc_ut.c.

◆ server_argv

char* server_argv[]
static
Initial value:
= {
"fdmi_filterc_ut", "-T", "AD", "-D", SERVER_DB_NAME,
"-e", SERVER_ENDPOINT, "-H", SERVER_ENDPOINT_ADDR, "-w", "10",
"-c", M0_SRC_PATH("fdmi/ut/conf.xc")
}
#define M0_SRC_PATH(name)
Definition: misc.h:48
#define SERVER_STOB_NAME
Definition: filterc_ut.c:53
#define SERVER_DB_NAME
Definition: filterc_ut.c:52
#define SERVER_ADDB_STOB_NAME
Definition: filterc_ut.c:54
#define SERVER_ENDPOINT
Definition: filterc_ut.c:50
#define SERVER_ENDPOINT_ADDR
Definition: filterc_ut.c:56

Definition at line 62 of file filterc_ut.c.

◆ ufc_fco

struct m0_filterc_ops* ufc_fco
static

Definition at line 42 of file filterc_ut.c.

◆ ufc_fdmi_service

struct m0_reqh_service* ufc_fdmi_service
static

Definition at line 43 of file filterc_ut.c.