test: lwm2m: Allow longer waits and stop properly
RD-client tests should wait longer for expected events. Also the stubbed service worker should be stopped properly after tests. Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
This commit is contained in:
parent
cb42c9b6bb
commit
fbabc0cd3d
2 changed files with 9 additions and 3 deletions
|
@ -21,7 +21,7 @@ DEFINE_FFF_GLOBALS;
|
|||
/* Maximum number of iterations within the state machine of RD Client
|
||||
* service that is waited for until a possible event occurs
|
||||
*/
|
||||
static const uint8_t RD_CLIENT_MAX_LOOKUP_ITERATIONS = 10;
|
||||
static const uint8_t RD_CLIENT_MAX_LOOKUP_ITERATIONS = 100;
|
||||
|
||||
FAKE_VOID_FUNC(show_lwm2m_event, enum lwm2m_rd_client_event);
|
||||
FAKE_VOID_FUNC(show_lwm2m_observe, enum lwm2m_observe_event);
|
||||
|
@ -143,7 +143,10 @@ static void my_suite_before(void *data)
|
|||
|
||||
RESET_FAKE(show_lwm2m_event);
|
||||
RESET_FAKE(show_lwm2m_observe);
|
||||
}
|
||||
|
||||
static void my_suite_after(void *data)
|
||||
{
|
||||
test_lwm2m_engine_stop_service();
|
||||
}
|
||||
|
||||
|
@ -165,7 +168,7 @@ void message_reply_timeout_cb_default(struct lwm2m_message *msg)
|
|||
msg->message_timeout_cb(msg);
|
||||
}
|
||||
|
||||
ZTEST_SUITE(lwm2m_rd_client, NULL, NULL, my_suite_before, NULL, NULL);
|
||||
ZTEST_SUITE(lwm2m_rd_client, NULL, NULL, my_suite_before, my_suite_after, NULL);
|
||||
|
||||
ZTEST(lwm2m_rd_client, test_start_registration_ok)
|
||||
{
|
||||
|
|
|
@ -94,10 +94,11 @@ int lwm2m_engine_call_at(k_work_handler_t work, int64_t timestamp)
|
|||
uint16_t counter = RD_CLIENT_MAX_SERVICE_ITERATIONS;
|
||||
struct lwm2m_message *pending_message;
|
||||
void *(*pending_message_cb)();
|
||||
static bool running;
|
||||
|
||||
static void service_work_fn(struct k_work *work)
|
||||
{
|
||||
while (true) {
|
||||
while (running) {
|
||||
if (pending_message != NULL && pending_message_cb != NULL) {
|
||||
pending_message_cb(pending_message);
|
||||
pending_message = NULL;
|
||||
|
@ -132,6 +133,7 @@ K_WORK_DEFINE(service_work, service_work_fn);
|
|||
|
||||
void test_lwm2m_engine_start_service(void)
|
||||
{
|
||||
running = true;
|
||||
counter = RD_CLIENT_MAX_SERVICE_ITERATIONS;
|
||||
k_work_submit(&service_work);
|
||||
}
|
||||
|
@ -139,6 +141,7 @@ void test_lwm2m_engine_start_service(void)
|
|||
void test_lwm2m_engine_stop_service(void)
|
||||
{
|
||||
pending_message_cb = NULL;
|
||||
running = false;
|
||||
k_work_cancel(&service_work);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue