tests: userspace: add support for validating invalid objects
test userspace API with invalid kernel objects. This improves code coverage. Signed-off-by: Lixin Guo <lixinx.guo@intel.com>
This commit is contained in:
parent
7dfdaf4ab7
commit
350a13566e
4 changed files with 27 additions and 7 deletions
|
@ -352,18 +352,20 @@ void test_kobject_release_from_user(void)
|
|||
k_thread_join(&child_thread, K_FOREVER);
|
||||
}
|
||||
|
||||
/* @brief Test release kernel a invaild kobject
|
||||
/**
|
||||
* @brief Test release and access grant an invaild kobject
|
||||
*
|
||||
* @details Validate release kernel objects with NULL parameter.
|
||||
* @details Validate release and access grant an invalid kernel object.
|
||||
*
|
||||
* @see k_object_release()
|
||||
* @see k_object_release(), k_object_access_all_grant()
|
||||
*
|
||||
* @ingroup kernel_memprotect_tests
|
||||
*/
|
||||
void test_kobject_release_null(void)
|
||||
void test_kobject_invalid(void)
|
||||
{
|
||||
int dummy = 0;
|
||||
|
||||
k_object_access_all_grant(&dummy);
|
||||
k_object_release(&dummy);
|
||||
}
|
||||
|
||||
|
|
|
@ -62,7 +62,7 @@ void test_main(void)
|
|||
ztest_unit_test(test_kobject_grant_access_kobj),
|
||||
ztest_unit_test(test_kobject_grant_access_kobj_invalid),
|
||||
ztest_unit_test(test_kobject_release_from_user),
|
||||
ztest_unit_test(test_kobject_release_null),
|
||||
ztest_unit_test(test_kobject_invalid),
|
||||
ztest_unit_test(test_kobject_access_all_grant),
|
||||
ztest_unit_test(test_thread_has_residual_permissions),
|
||||
ztest_unit_test(test_kobject_access_grant_to_invalid_thread),
|
||||
|
|
|
@ -63,7 +63,7 @@ extern void test_kobject_access_grant_error(void);
|
|||
extern void test_kobject_access_grant_error_user(void);
|
||||
extern void test_kobject_access_grant_error_user_null(void);
|
||||
extern void test_kobject_access_all_grant_error(void);
|
||||
extern void test_kobject_release_null(void);
|
||||
extern void test_kobject_invalid(void);
|
||||
extern void test_kobject_free_error(void);
|
||||
extern void test_kobject_init_error(void);
|
||||
extern void test_kobj_create_out_of_memory(void);
|
||||
|
|
|
@ -844,11 +844,29 @@ void test_bad_syscall(void)
|
|||
|
||||
static struct k_sem recycle_sem;
|
||||
|
||||
|
||||
/**
|
||||
* @brief Test recycle object
|
||||
*
|
||||
* @details Test recycle valid/invalid kernel object, see if
|
||||
* perms_count changes as expected.
|
||||
*
|
||||
* @see z_object_recycle(), z_object_find()
|
||||
*
|
||||
* @ingroup kernel_memprotect_tests
|
||||
*/
|
||||
void test_object_recycle(void)
|
||||
{
|
||||
struct z_object *ko;
|
||||
int perms_count = 0;
|
||||
int dummy = 0;
|
||||
|
||||
/* Validate recycle invalid objects, after recycling this invalid
|
||||
* object, perms_count should finally still be 1.
|
||||
*/
|
||||
ko = z_object_find(&dummy);
|
||||
zassert_true(ko == NULL, "not an invalid object");
|
||||
|
||||
z_object_recycle(&dummy);
|
||||
|
||||
ko = z_object_find(&recycle_sem);
|
||||
(void)memset(ko->perms, 0xFF, sizeof(ko->perms));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue