Motr  M0
Test Service
Collaboration diagram for Test Service:

Data Structures

struct  m0_net_test_service_cmd_handler
 
struct  m0_net_test_service_ops
 
struct  m0_net_test_service
 

Enumerations

enum  m0_net_test_service_state {
  M0_NET_TEST_SERVICE_UNINITIALIZED = 0, M0_NET_TEST_SERVICE_READY, M0_NET_TEST_SERVICE_FINISHED, M0_NET_TEST_SERVICE_FAILED,
  M0_NET_TEST_SERVICE_NR
}
 

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)
 

Detailed Description

Test services:

See also
Motr Network Benchmark

Enumeration Type Documentation

◆ m0_net_test_service_state

Service state

Enumerator
M0_NET_TEST_SERVICE_UNINITIALIZED 

Service is not initialized

M0_NET_TEST_SERVICE_READY 

Service is ready to handle commands

M0_NET_TEST_SERVICE_FINISHED 

Service was finished. Can be set by service operations

M0_NET_TEST_SERVICE_FAILED 

Service was failed. Can be set by service operations

M0_NET_TEST_SERVICE_NR 

Number of service states

Definition at line 60 of file service.h.

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: