tests: net: lwm2m: Add more tests for lwm2m_engine

Add more tests for LwM2M engine

Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
This commit is contained in:
Seppo Takalo 2023-04-06 16:31:55 +03:00 committed by Carles Cufí
commit 62bbdd59de
3 changed files with 41 additions and 9 deletions

View file

@ -163,6 +163,23 @@ ZTEST(lwm2m_engine, test_no_sa_family)
zassert_equal(ret, -EPROTONOSUPPORT);
}
ZTEST(lwm2m_engine, test_connect_fail)
{
int ret;
struct lwm2m_ctx ctx;
(void)memset(&ctx, 0x0, sizeof(ctx));
ctx.sock_fd = -1;
ctx.load_credentials = NULL;
ctx.remote_addr.sa_family = AF_INET;
errno = ENETDOWN;
z_impl_zsock_connect_fake.return_val = -1;
ret = lwm2m_engine_start(&ctx);
zassert_equal(ret, -ENETDOWN);
}
ZTEST(lwm2m_engine, test_socket_suspend_resume_connection)
{
int ret;
@ -268,9 +285,25 @@ ZTEST(lwm2m_engine, test_bootstrap_delete)
ret = bootstrap_delete(&msg);
zassert_equal(ret, -EPERM);
msg.path = LWM2M_OBJ(LWM2M_OBJECT_SECURITY_ID, 0);
msg.path = LWM2M_OBJ(LWM2M_OBJECT_SECURITY_ID, 1);
ret = bootstrap_delete(&msg);
zassert_equal(ret, 0);
zassert_equal(0, lwm2m_delete_obj_inst_fake.arg0_history[0]);
zassert_equal(1, lwm2m_delete_obj_inst_fake.arg1_history[0]);
struct lwm2m_engine_obj sec_obj = {.obj_id = 0};
struct lwm2m_engine_obj_inst sec_inst = {
.obj_inst_id = 2,
.obj = &sec_obj
};
sys_slist_append(lwm2m_engine_obj_inst_list(), &sec_inst.node);
msg.path = LWM2M_OBJ(LWM2M_OBJECT_SECURITY_ID);
ret = bootstrap_delete(&msg);
zassert_equal(ret, 0);
zassert_equal(0, lwm2m_delete_obj_inst_fake.arg0_history[1]);
zassert_equal(2, lwm2m_delete_obj_inst_fake.arg1_history[1]);
msg.path = LWM2M_OBJ(LWM2M_OBJECT_DEVICE_ID, 0);
ret = bootstrap_delete(&msg);

View file

@ -37,16 +37,18 @@ DEFINE_FAKE_VALUE_FUNC(int, tls_credential_delete, sec_tag_t, enum tls_credentia
DEFINE_FAKE_VALUE_FUNC(struct lwm2m_engine_obj_field *, lwm2m_get_engine_obj_field,
struct lwm2m_engine_obj *, int);
DEFINE_FAKE_VALUE_FUNC(int, lwm2m_get_bool, const struct lwm2m_obj_path *, bool *);
DEFINE_FAKE_VALUE_FUNC(sys_slist_t *, lwm2m_engine_obj_inst_list);
DEFINE_FAKE_VALUE_FUNC(int, lwm2m_delete_obj_inst, uint16_t, uint16_t);
DEFINE_FAKE_VOID_FUNC(lwm2m_clear_block_contexts);
static sys_slist_t obs_obj_path_list;
static sys_slist_t obs_obj_path_list = SYS_SLIST_STATIC_INIT(&obs_obj_path_list);
sys_slist_t *lwm2m_obs_obj_path_list(void)
{
return &obs_obj_path_list;
}
static sys_slist_t engine_obj_inst_list = SYS_SLIST_STATIC_INIT(&engine_obj_inst_list);
sys_slist_t *lwm2m_engine_obj_inst_list(void) { return &engine_obj_inst_list; }
struct zsock_pollfd {
int fd;
short events;
@ -75,10 +77,7 @@ int z_impl_zsock_close(int sock)
return 0;
}
int z_impl_zsock_connect(int sock, const struct sockaddr *addr, socklen_t addrlen)
{
return 0;
}
DEFINE_FAKE_VALUE_FUNC(int, z_impl_zsock_connect, int, const struct sockaddr *, socklen_t);
ssize_t z_impl_zsock_sendto(int sock, const void *buf, size_t len, int flags,
const struct sockaddr *dest_addr, socklen_t addrlen)

View file

@ -51,9 +51,9 @@ DECLARE_FAKE_VALUE_FUNC(int, tls_credential_delete, sec_tag_t, enum tls_credenti
DECLARE_FAKE_VALUE_FUNC(struct lwm2m_engine_obj_field *, lwm2m_get_engine_obj_field,
struct lwm2m_engine_obj *, int);
DECLARE_FAKE_VALUE_FUNC(int, lwm2m_get_bool, const struct lwm2m_obj_path *, bool *);
DECLARE_FAKE_VALUE_FUNC(sys_slist_t *, lwm2m_engine_obj_inst_list);
DECLARE_FAKE_VALUE_FUNC(int, lwm2m_delete_obj_inst, uint16_t, uint16_t);
DECLARE_FAKE_VOID_FUNC(lwm2m_clear_block_contexts);
DECLARE_FAKE_VALUE_FUNC(int, z_impl_zsock_connect, int, const struct sockaddr *, socklen_t);
#define DO_FOREACH_FAKE(FUNC) \
do { \
@ -78,9 +78,9 @@ DECLARE_FAKE_VOID_FUNC(lwm2m_clear_block_contexts);
FUNC(tls_credential_delete) \
FUNC(lwm2m_get_engine_obj_field) \
FUNC(lwm2m_get_bool) \
FUNC(lwm2m_engine_obj_inst_list) \
FUNC(lwm2m_delete_obj_inst) \
FUNC(lwm2m_clear_block_contexts) \
FUNC(z_impl_zsock_connect) \
} while (0)
#endif /* STUBS_H */