Motr  M0
Collaboration diagram for Test Service:

Functions

int m0_net_test_service_init (struct m0_net_test_service *svc, struct m0_net_test_service_ops *ops)
 
void m0_net_test_service_fini (struct m0_net_test_service *svc)
 
bool m0_net_test_service_invariant (struct m0_net_test_service *svc)
 
int m0_net_test_service_step (struct m0_net_test_service *svc)
 
int m0_net_test_service_cmd_handle (struct m0_net_test_service *svc, struct m0_net_test_cmd *cmd, struct m0_net_test_cmd *reply)
 
void m0_net_test_service_state_change (struct m0_net_test_service *svc, enum m0_net_test_service_state state)
 
enum m0_net_test_service_state m0_net_test_service_state_get (struct m0_net_test_service *svc)
 

Variables

static const bool state_transition [M0_NET_TEST_SERVICE_NR][M0_NET_TEST_SERVICE_NR]
 

Detailed Description

See also
Motr Network Benchmark

Function Documentation

◆ m0_net_test_service_cmd_handle()

int m0_net_test_service_cmd_handle ( struct m0_net_test_service svc,
struct m0_net_test_cmd cmd,
struct m0_net_test_cmd reply 
)

Handle command and fill reply

Precondition
m0_net_test_service_invariant(svc)
Postcondition
m0_net_test_service_invariant(svc)

Definition at line 121 of file service.c.

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

◆ m0_net_test_service_fini()

void m0_net_test_service_fini ( struct m0_net_test_service svc)

Finalize test service. Service can be finalized from any state except M0_NET_TEST_SERVICE_UNINITIALIZED.

Precondition
m0_net_test_service_invariant(svc)
(svc->nts_state != M0_NET_TEST_SERVICE_UNINITIALIZED)
Postcondition
m0_net_test_service_invariant(svc)

Definition at line 88 of file service.c.

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

◆ m0_net_test_service_init()

int m0_net_test_service_init ( struct m0_net_test_service svc,
struct m0_net_test_service_ops ops 
)

Initialize test service. Typical pattern to use test service:

while (state != FAILED && state != FINISHED) {
command_was_received = try_to_receive_command();
if (command_was_received)
m0_net_test_service_cmd_handle(received_command);
else
}
Note
Service state will not be changed if ops->ntso_init returns non-zero result and will be changed to M0_NET_TEST_SERVICE_READY otherwise.
Parameters
svcTest service
opsService operations
Postcondition
ergo(result == 0, m0_net_test_service_invariant(svc))

Definition at line 68 of file service.c.

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

◆ m0_net_test_service_invariant()

bool m0_net_test_service_invariant ( struct m0_net_test_service svc)

Test service invariant.

Definition at line 98 of file service.c.

Here is the caller graph for this function:

◆ m0_net_test_service_state_change()

void m0_net_test_service_state_change ( struct m0_net_test_service svc,
enum m0_net_test_service_state  state 
)

Change service state. Can be called from service ops.

Precondition
m0_net_test_service_invariant(svc)
Postcondition
m0_net_test_service_invariant(svc)

Definition at line 147 of file service.c.

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

◆ m0_net_test_service_state_get()

enum m0_net_test_service_state m0_net_test_service_state_get ( struct m0_net_test_service svc)

Get service state.

Precondition
m0_net_test_service_invariant(svc)

Definition at line 159 of file service.c.

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

◆ m0_net_test_service_step()

int m0_net_test_service_step ( struct m0_net_test_service svc)

Take one step. It can be only done from M0_NET_TEST_SERVICE_READY state.

Precondition
m0_net_test_service_invariant(svc)
Postcondition
m0_net_test_service_invariant(svc)

Definition at line 107 of file service.c.

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

Variable Documentation

◆ state_transition