41 #define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_CLIENT 95 int start_state,
int stop_state)
137 int limit,
bool fail)
243 m0_fi_enable(
"initlift_move_next_floor",
"immediate_ret");
282 sm = &(*instance)->m0c_initlift_sm;
283 (*instance)->m0c_initlift_direction =
STARTUP;
297 pools_tlist_init(&(*instance)->m0c_pools_common.pc_pools);
298 pools_tlink_init_at_tail(
pool, &((*instance)->m0c_pools_common.pc_pools));
304 pools_tlink_init_at_tail(mdpool, &((*instance)->m0c_pools_common.pc_pools));
312 (*instance)->m0c_pools_common.pc_cur_pver =
pv;
319 pool_version_tlink_init_at_tail(mdpv, &mdpool->
po_vers);
320 (*instance)->m0c_pools_common.pc_md_pool = mdpool;
322 (*instance)->m0c_process_fid =
M0_FID_TINIT(M0_CONF__PROCESS_FT_ID, 0, 1);
337 m0_fi_enable(
"initlift_move_next_floor",
"immediate_ret");
361 sm = &(*instance)->m0c_initlift_sm;
363 (*instance)->m0c_initlift_direction =
SHUTDOWN;
547 m0_op_bob_init(&cop->
oc_op);
548 m0_op_common_bob_init(cop);
582 struct m0_op *p_ops[2];
596 p_ops[0] = &cops[0].
oc_op;
597 p_ops[1] = &cops[1].
oc_op;
648 int executed,
int stable,
691 grp = &
op.op_sm_group;
787 struct m0_op *p_ops[2];
820 p_ops[0] = &cops[0].
oc_op;
821 p_ops[1] = &cops[1].
oc_op;
845 (
unsigned long)p_ops[0]);
1046 m0_op_common_bob_init(oc);
1075 op->op_size =
sizeof *oc;
1109 op.op_cbs = (
void *)0xDEADBEEF;
1110 op.op_linger = 0x42;
1148 static void ut_test_m0_op_transaction_committed(
void)
1162 grp = &oc.oc_op.op_sm_group;
1165 m0_op_transaction_committed(&oc);
1173 static void ut_test_m0_op_transaction_failed(
void)
1187 grp = &oc.oc_op.op_sm_group;
1190 m0_op_transaction_failed(&oc);
1207 #ifdef CLVIS_UT_ENABLE_SHUFFLE 1211 struct m0_ut **new_order;
1223 for (
i = 0;
i < num_tests;
i++) {
1236 for (
i = 0;
i < num_tests;
i++){
1237 real_order[
i] = *new_order[
i];
1252 m0_fi_enable(
"m0__obj_pool_version_get",
"fake_pool_version");
1259 m0_fi_disable(
"m0__obj_pool_version_get",
"fake_pool_version");
1273 {
"client op state machine",
1281 {
"m0_op_launch_one",
1299 {
"entity_invariant_locked",
1308 {
"m0_op_transaction_committed",
1309 &ut_test_m0_op_transaction_committed},
1310 {
"m0_op_transaction_failed",
1311 &ut_test_m0_op_transaction_failed},
1317 #undef M0_TRACE_SUBSYSTEM M0_INTERNAL int m0_uint128_cmp(const struct m0_uint128 *u0, const struct m0_uint128 *u1)
#define M0_ALLOC_ARR(arr, nr)
void m0_entity_fini(struct m0_entity *entity)
static uint32_t ut_launch_cb_fail_count
M0_INTERNAL int ut_fini(void)
static void ut_init_fake_op(struct m0_op_common *cop, struct m0_entity *ent, void(*cb)(struct m0_op_common *oc))
struct m0_config default_config
M0_INTERNAL void m0_clink_init(struct m0_clink *link, m0_chan_cb_t cb)
M0_INTERNAL void m0_clink_del(struct m0_clink *link)
static uint32_t ut_launch_cb_pass_count
void m0_op_fini(struct m0_op *op)
static struct m0_sm_group * grp
struct m0_pool_version * pv
void(* oop_executed)(struct m0_op *op)
static void ut_test_m0_client_init(void)
static void ut_launch_cb_fail(struct m0_op_common *oc)
static struct m0_realm uber_realm
void m0_client_fini(struct m0_client *m0c, bool fini_m0)
static void ut_test_m0_op_launch(void)
M0_INTERNAL int m0_op_init(struct m0_op *op, const struct m0_sm_conf *conf, struct m0_entity *entity)
uint64_t m0_client_layout_id(const struct m0_client *instance)
M0_INTERNAL void m0_op_launch_one(struct m0_op *op)
static void ut_test_m0_op_launch_one(void)
M0_INTERNAL int m0_timer_init(struct m0_timer *timer, enum m0_timer_type type, struct m0_timer_locality *loc, m0_timer_callback_t callback, unsigned long data)
#define container_of(ptr, type, member)
const struct m0_uint128 M0_UBER_REALM
M0_INTERNAL int ut_m0_client_init(struct m0_client **instance)
static uint32_t ut_m0_op_fini_cb_count
M0_INTERNAL void m0_sm_group_fini(struct m0_sm_group *grp)
static void ut_test_m0_op_kick(void)
M0_INTERNAL int m0_pool_init(struct m0_pool *pool, const struct m0_fid *id, enum m0_pver_policy_code pver_policy)
const struct m0_uint128 M0_ID_APP
static void ut_test_m0_client_init_floors(struct m0_client *instance, int limit, bool fail)
int32_t m0_op_wait(struct m0_op *op, uint64_t bits, m0_time_t to)
static void ut_test_m0_entity_init(void)
M0_INTERNAL void m0_timer_fini(struct m0_timer *timer)
M0_INTERNAL void m0_sm_group_unlock(struct m0_sm_group *grp)
M0_INTERNAL void ut_realm_entity_setup(struct m0_realm *realm, struct m0_entity *ent, struct m0_client *cinst)
static void ut_test_m0_obj_fini(void)
struct m0_ut ts_tests[M0_UT_SUITE_TESTS_MAX]
static bool ut_test_floor_tick_cb(struct m0_clink *cl)
static void ut_test_m0_op_alloc(void)
#define M0_FID_TINIT(type, container, key)
struct m0_ut_suite ut_suite
M0_INTERNAL void m0_fi_disable(const char *fp_func, const char *fp_tag)
void(* oop_stable)(struct m0_op *op)
M0_INTERNAL void m0_timer_stop(struct m0_timer *timer)
static void m0_fi_enable(const char *func, const char *tag)
M0_INTERNAL void ut_m0_client_fini(struct m0_client **instance)
static void ut_test_m0_op_init(void)
M0_INTERNAL void m0_sm_group_init(struct m0_sm_group *grp)
M0_INTERNAL void m0_timer_start(struct m0_timer *timer, m0_time_t expire)
m0_time_t m0_time_now(void)
void m0_obj_fini(struct m0_obj *obj)
void m0_op_launch(struct m0_op **op, uint32_t nr)
void ut_test_m0_op_wait(void)
void * m0_alloc(size_t size)
M0_INTERNAL void ut_shuffle_test_order(struct m0_ut_suite *suite)
M0_INTERNAL int ut_init(void)
#define M0_DEFAULT_HA_ADDR
void(* oc_cb_fini)(struct m0_op_common *oc)
M0_INTERNAL bool m0_timer_is_started(const struct m0_timer *timer)
static struct m0_clink clink[RDWR_REQUEST_MAX]
static int ut_test_op_sm_callme_counter
void(* oop_failed)(struct m0_op *op)
struct m0_op_common oo_oc
static void ut_test_op_sm(void)
static struct m0_pool pool
static int ut_test_initlift_gnf_counter
static struct m0_client cinst
static uint8_t fail[DATA_UNIT_COUNT_MAX+PARITY_UNIT_COUNT_MAX]
M0_INTERNAL bool entity_invariant_locked(const struct m0_entity *ent)
static void ut_test_op_sm_callme(struct m0_op *op)
struct m0_sm_group en_sm_group
uint32_t mc_max_rpc_msg_size
struct m0_sm_group op_sm_group
const char * mc_local_addr
static void ut_test_m0_entity_fini(void)
M0_INTERNAL void m0_sm_init(struct m0_sm *mach, const struct m0_sm_conf *conf, uint32_t state, struct m0_sm_group *grp)
static void ut_test_op_sm_cbs_helper(struct m0_op_ops *cbs, int executed, int stable, int failed)
#define M0_ALLOC_PTR(ptr)
M0_INTERNAL void m0_clink_add(struct m0_chan *chan, struct m0_clink *link)
static struct m0_realm realm
struct m0_entity * op_entity
static void ut_test_m0_op_setup(void)
static void ut_m0_op_fini_cb(struct m0_op_common *oc)
m0_time_t m0_time_from_now(uint64_t secs, long ns)
uint32_t mc_tm_recv_queue_min_len
static int start(struct m0_fom *fom)
M0_INTERNAL void m0_sm_move(struct m0_sm *mach, int32_t rc, int state)
M0_INTERNAL void m0_clink_fini(struct m0_clink *link)
static void ut_test_m0_client_init_floor_tick(struct m0_client *instance, int start_state, int stop_state)
void m0_obj_init(struct m0_obj *obj, struct m0_realm *parent, const struct m0_uint128 *id, uint64_t layout_id)
static struct m0 instance
#define M0_DEFAULT_PROFILE
M0_INTERNAL void m0_sm_group_lock(struct m0_sm_group *grp)
static void m0_fi_enable_once(const char *func, const char *tag)
M0_INTERNAL int m0_op_alloc(struct m0_op **op, size_t op_size)
static void ut_test_entity_invariant_locked(void)
void m0_container_init(struct m0_container *con, struct m0_realm *parent, const struct m0_uint128 *id, struct m0_client *instance)
struct m0_client * re_instance
static void ut_test_m0_op_fini(void)
void m0_op_kick(struct m0_op *op)
static void ut_test_m0_op_free(void)
void m0_op_free(struct m0_op *op)
void(* oc_cb_launch)(struct m0_op_common *oc)
M0_INTERNAL void ut_test_m0_client_fini(void)
unsigned long ut_test_m0_op_wait_timer(unsigned long data)
static void initlift_fail(int rc, struct m0_client *m0c)
static void ut_test_op_sm_dont_callme(struct m0_op *op)
static void ut_launch_cb_pass(struct m0_op_common *oc)
M0_INTERNAL void m0_entity_init(struct m0_entity *entity, struct m0_realm *parent, const struct m0_uint128 *id, const enum m0_entity_type type)
enum m0_entity_type en_type
struct m0_sm_conf m0_op_conf
void m0_op_setup(struct m0_op *op, const struct m0_op_ops *cbs, m0_time_t linger)
static void ut_test_m0_obj_init(void)
M0_INTERNAL bool m0_sm_invariant(const struct m0_sm *mach)