Motr  M0
formation2.c File Reference
#include "ut/ut.h"
#include "lib/mutex.h"
#include "lib/time.h"
#include "lib/memory.h"
#include "lib/misc.h"
#include "lib/finject.h"
#include "lib/trace.h"
#include "sm/sm.h"
#include "rpc/rpc_internal.h"
Include dependency graph for formation2.c:

Go to the source code of this file.

Macros

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_UT
 

Enumerations

enum  { STACK_SIZE = 100 }
 
enum  {
  TIMEDOUT = 1, WAITING = 2, NEVER = 3, NORMAL = 1,
  ONEWAY = 2
}
 

Functions

static int frm_ut_init (void)
 
static int frm_ut_fini (void)
 
static void packet_stack_push (struct m0_rpc_packet *p)
 
static struct m0_rpc_packetpacket_stack_pop (void)
 
static bool packet_stack_is_empty (void)
 
static void flags_reset (void)
 
static int packet_ready (struct m0_rpc_packet *p)
 
static void frm_init_test (void)
 
static m0_bcount_t twoway_item_size (const struct m0_rpc_item *item)
 
static bool twoway_item_try_merge (struct m0_rpc_item *container, struct m0_rpc_item *component, m0_bcount_t limit)
 
static void item_get_noop (struct m0_rpc_item *item)
 
static void item_put_noop (struct m0_rpc_item *item)
 
static m0_bcount_t oneway_item_size (const struct m0_rpc_item *item)
 
static void set_timeout (uint64_t milli)
 
static struct m0_rpc_itemnew_item (int deadline, int kind)
 
static void check_frm (enum frm_state state, uint64_t nr_items, uint64_t nr_packets)
 
static void check_ready_packet_has_item (struct m0_rpc_item *item)
 
static void perform_test (int deadline, int kind)
 
static void frm_test1 (void)
 
static void perform_test2 (int kind)
 
static void frm_test2 (void)
 
static void frm_test3 (void)
 
static void frm_do_test5 (const int N, const int ITEMS_PER_PACKET)
 
static void frm_test5 (void)
 
static void frm_test6 (void)
 
static void frm_test7 (void)
 
static void frm_test8 (void)
 
static void frm_fini_test (void)
 

Variables

static struct m0_rpc_frmfrm
 
static struct m0_rpc_frm_constraints constraints
 
static struct m0_rpc_machine rmachine
 
static struct m0_rpc_chan rchan
 
static struct m0_rpc_session session
 
static struct m0_rpc_item_type twoway_item_type
 
static struct m0_rpc_item_type oneway_item_type
 
const struct m0_sm_conf outgoing_item_sm_conf
 
const struct m0_sm_conf incoming_item_sm_conf
 
enum { ... }  M0_XCA_DOMAIN
 
static struct m0_rpc_packetpacket_stack [STACK_SIZE]
 
static int top = 0
 
static bool packet_ready_called
 
static int item_bind_count
 
static struct m0_rpc_frm_ops frm_ops
 
static struct m0_rpc_item_type_ops twoway_item_type_ops
 
static struct m0_rpc_item_type_ops oneway_item_type_ops
 
static m0_time_t timeout
 
struct m0_ut_suite frm_ut
 

Macro Definition Documentation

◆ M0_TRACE_SUBSYSTEM

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_UT

Definition at line 29 of file formation2.c.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
STACK_SIZE 

Definition at line 83 of file formation2.c.

◆ anonymous enum

anonymous enum
Enumerator
TIMEDOUT 
WAITING 
NEVER 
NORMAL 
ONEWAY 

Definition at line 187 of file formation2.c.

Function Documentation

◆ check_frm()

static void check_frm ( enum frm_state  state,
uint64_t  nr_items,
uint64_t  nr_packets 
)
static

Definition at line 241 of file formation2.c.

Here is the caller graph for this function:

◆ check_ready_packet_has_item()

static void check_ready_packet_has_item ( struct m0_rpc_item item)
static

Definition at line 248 of file formation2.c.

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

◆ flags_reset()

static void flags_reset ( void  )
static

Definition at line 111 of file formation2.c.

Here is the caller graph for this function:

◆ frm_do_test5()

static void frm_do_test5 ( const int  N,
const int  ITEMS_PER_PACKET 
)
static

Definition at line 418 of file formation2.c.

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

◆ frm_fini_test()

static void frm_fini_test ( void  )
static

Definition at line 653 of file formation2.c.

Here is the call graph for this function:

◆ frm_init_test()

static void frm_init_test ( void  )
static

Definition at line 130 of file formation2.c.

Here is the call graph for this function:

◆ frm_test1()

static void frm_test1 ( void  )
static

Definition at line 298 of file formation2.c.

Here is the call graph for this function:

◆ frm_test2()

static void frm_test2 ( void  )
static

Definition at line 376 of file formation2.c.

Here is the call graph for this function:

◆ frm_test3()

static void frm_test3 ( void  )
static

Definition at line 390 of file formation2.c.

Here is the call graph for this function:

◆ frm_test5()

static void frm_test5 ( void  )
static

Definition at line 480 of file formation2.c.

Here is the call graph for this function:

◆ frm_test6()

static void frm_test6 ( void  )
static

Definition at line 491 of file formation2.c.

Here is the call graph for this function:

◆ frm_test7()

static void frm_test7 ( void  )
static

Definition at line 520 of file formation2.c.

Here is the call graph for this function:

◆ frm_test8()

static void frm_test8 ( void  )
static

Definition at line 586 of file formation2.c.

Here is the call graph for this function:

◆ frm_ut_fini()

static int frm_ut_fini ( void  )
static

Definition at line 72 of file formation2.c.

Here is the call graph for this function:

◆ frm_ut_init()

static int frm_ut_init ( void  )
static

Definition at line 45 of file formation2.c.

Here is the call graph for this function:

◆ item_get_noop()

static void item_get_noop ( struct m0_rpc_item item)
static

Definition at line 149 of file formation2.c.

◆ item_put_noop()

static void item_put_noop ( struct m0_rpc_item item)
static

Definition at line 154 of file formation2.c.

◆ new_item()

static struct m0_rpc_item* new_item ( int  deadline,
int  kind 
)
static

Definition at line 202 of file formation2.c.

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

◆ oneway_item_size()

static m0_bcount_t oneway_item_size ( const struct m0_rpc_item item)
static

Definition at line 171 of file formation2.c.

◆ packet_ready()

static int packet_ready ( struct m0_rpc_packet p)
static

Definition at line 117 of file formation2.c.

Here is the call graph for this function:

◆ packet_stack_is_empty()

static bool packet_stack_is_empty ( void  )
static

Definition at line 103 of file formation2.c.

Here is the caller graph for this function:

◆ packet_stack_pop()

static struct m0_rpc_packet* packet_stack_pop ( void  )
static

Definition at line 96 of file formation2.c.

Here is the caller graph for this function:

◆ packet_stack_push()

static void packet_stack_push ( struct m0_rpc_packet p)
static

Definition at line 88 of file formation2.c.

Here is the caller graph for this function:

◆ perform_test()

static void perform_test ( int  deadline,
int  kind 
)
static

Definition at line 261 of file formation2.c.

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

◆ perform_test2()

static void perform_test2 ( int  kind)
static

Definition at line 331 of file formation2.c.

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

◆ set_timeout()

static void set_timeout ( uint64_t  milli)
static

Definition at line 197 of file formation2.c.

Here is the caller graph for this function:

◆ twoway_item_size()

static m0_bcount_t twoway_item_size ( const struct m0_rpc_item item)
static

Definition at line 137 of file formation2.c.

◆ twoway_item_try_merge()

static bool twoway_item_try_merge ( struct m0_rpc_item container,
struct m0_rpc_item component,
m0_bcount_t  limit 
)
static

Definition at line 142 of file formation2.c.

Variable Documentation

◆ constraints

struct m0_rpc_frm_constraints constraints
static

Definition at line 35 of file formation2.c.

◆ frm

struct m0_rpc_frm* frm
static

Definition at line 34 of file formation2.c.

◆ frm_ops

struct m0_rpc_frm_ops frm_ops
static
Initial value:
= {
.fo_packet_ready = packet_ready,
}
static int packet_ready(struct m0_rpc_packet *p)
Definition: formation2.c:117

Definition at line 126 of file formation2.c.

◆ frm_ut

struct m0_ut_suite frm_ut
Initial value:
= {
.ts_name = "rpc-formation-ut",
.ts_init = frm_ut_init,
.ts_fini = frm_ut_fini,
.ts_tests = {
{ "frm-init", frm_init_test},
{ "frm-test1", frm_test1 },
{ "frm-test2", frm_test2 },
{ "frm-test3", frm_test3 },
{ "frm-test5", frm_test5 },
{ "frm-test6", frm_test6 },
{ "frm-test7", frm_test7 },
{ "frm-test8", frm_test8 },
{ "frm-fini", frm_fini_test},
{ NULL, NULL }
}
}
static void frm_test8(void)
Definition: formation2.c:586
static void frm_init_test(void)
Definition: formation2.c:130
static void frm_test1(void)
Definition: formation2.c:298
#define NULL
Definition: misc.h:38
static void frm_test6(void)
Definition: formation2.c:491
static void frm_test7(void)
Definition: formation2.c:520
static void frm_test2(void)
Definition: formation2.c:376
static int frm_ut_init(void)
Definition: formation2.c:45
static void frm_test5(void)
Definition: formation2.c:480
static void frm_test3(void)
Definition: formation2.c:390
static void frm_fini_test(void)
Definition: formation2.c:653
static int frm_ut_fini(void)
Definition: formation2.c:72

Definition at line 659 of file formation2.c.

◆ item_bind_count

int item_bind_count
static

Definition at line 109 of file formation2.c.

◆ M0_XCA_DOMAIN

enum { ... } M0_XCA_DOMAIN

◆ oneway_item_type

static struct m0_rpc_item_type oneway_item_type
static
Initial value:
= {
.rit_ops = &oneway_item_type_ops,
}
static struct m0_rpc_item_type_ops oneway_item_type_ops
Definition: formation2.c:176

Definition at line 40 of file formation2.c.

◆ oneway_item_type_ops

struct m0_rpc_item_type_ops oneway_item_type_ops
static
Initial value:
= {
.rito_payload_size = oneway_item_size,
.rito_item_get = item_get_noop,
.rito_item_put = item_put_noop,
}
static void item_get_noop(struct m0_rpc_item *item)
Definition: formation2.c:149
static m0_bcount_t oneway_item_size(const struct m0_rpc_item *item)
Definition: formation2.c:171
static void item_put_noop(struct m0_rpc_item *item)
Definition: formation2.c:154

Definition at line 176 of file formation2.c.

◆ packet_ready_called

bool packet_ready_called
static

Definition at line 108 of file formation2.c.

◆ packet_stack

struct m0_rpc_packet* packet_stack[STACK_SIZE]
static

Definition at line 85 of file formation2.c.

◆ rchan

struct m0_rpc_chan rchan
static

Definition at line 37 of file formation2.c.

◆ rmachine

struct m0_rpc_machine rmachine
static

Definition at line 36 of file formation2.c.

◆ session

struct m0_rpc_session session
static

Definition at line 38 of file formation2.c.

◆ timeout

m0_time_t timeout
static

Definition at line 196 of file formation2.c.

◆ top

int top = 0
static

Definition at line 86 of file formation2.c.

◆ twoway_item_type

static struct m0_rpc_item_type twoway_item_type
static
Initial value:
= {
.rit_ops = &twoway_item_type_ops,
}
static struct m0_rpc_item_type_ops twoway_item_type_ops
Definition: formation2.c:159

Definition at line 39 of file formation2.c.

◆ twoway_item_type_ops

struct m0_rpc_item_type_ops twoway_item_type_ops
static
Initial value:
= {
.rito_payload_size = twoway_item_size,
.rito_try_merge = twoway_item_try_merge,
.rito_item_get = item_get_noop,
.rito_item_put = item_put_noop,
}
static m0_bcount_t twoway_item_size(const struct m0_rpc_item *item)
Definition: formation2.c:137
static void item_get_noop(struct m0_rpc_item *item)
Definition: formation2.c:149
static bool twoway_item_try_merge(struct m0_rpc_item *container, struct m0_rpc_item *component, m0_bcount_t limit)
Definition: formation2.c:142
static void item_put_noop(struct m0_rpc_item *item)
Definition: formation2.c:154

Definition at line 159 of file formation2.c.