Lines Matching refs:test

47 static void usercopy_test_check_nonzero_user(struct kunit *test)  in usercopy_test_check_nonzero_user()  argument
50 struct usercopy_test_priv *priv = test->priv; in usercopy_test_check_nonzero_user()
55 KUNIT_ASSERT_GE_MSG(test, size, 2 * PAGE_SIZE, "buffer too small"); in usercopy_test_check_nonzero_user()
89 KUNIT_EXPECT_EQ_MSG(test, copy_to_user(umem, kmem, size), 0, in usercopy_test_check_nonzero_user()
98 KUNIT_ASSERT_EQ_MSG(test, retval, expected, in usercopy_test_check_nonzero_user()
106 static void usercopy_test_copy_struct_from_user(struct kunit *test) in usercopy_test_copy_struct_from_user() argument
109 struct usercopy_test_priv *priv = test->priv; in usercopy_test_copy_struct_from_user()
115 umem_src = kunit_kmalloc(test, size, GFP_KERNEL); in usercopy_test_copy_struct_from_user()
116 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, umem_src); in usercopy_test_copy_struct_from_user()
118 expected = kunit_kmalloc(test, size, GFP_KERNEL); in usercopy_test_copy_struct_from_user()
119 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, expected); in usercopy_test_copy_struct_from_user()
123 KUNIT_ASSERT_EQ_MSG(test, copy_to_user(umem, umem_src, size), 0, in usercopy_test_copy_struct_from_user()
133 KUNIT_EXPECT_EQ_MSG(test, copy_struct_from_user(kmem, ksize, umem, usize), 0, in usercopy_test_copy_struct_from_user()
135 KUNIT_EXPECT_MEMEQ_MSG(test, kmem, expected, ksize, in usercopy_test_copy_struct_from_user()
146 KUNIT_EXPECT_EQ_MSG(test, copy_struct_from_user(kmem, ksize, umem, usize), 0, in usercopy_test_copy_struct_from_user()
148 KUNIT_EXPECT_MEMEQ_MSG(test, kmem, expected, ksize, in usercopy_test_copy_struct_from_user()
156 KUNIT_EXPECT_EQ_MSG(test, copy_struct_from_user(kmem, ksize, umem, usize), -E2BIG, in usercopy_test_copy_struct_from_user()
164 KUNIT_EXPECT_EQ_MSG(test, clear_user(umem + ksize, usize - ksize), 0, in usercopy_test_copy_struct_from_user()
168 KUNIT_EXPECT_EQ_MSG(test, copy_struct_from_user(kmem, ksize, umem, usize), 0, in usercopy_test_copy_struct_from_user()
170 KUNIT_EXPECT_MEMEQ_MSG(test, kmem, expected, ksize, in usercopy_test_copy_struct_from_user()
177 static void usercopy_test_valid(struct kunit *test) in usercopy_test_valid() argument
179 struct usercopy_test_priv *priv = test->priv; in usercopy_test_valid()
184 KUNIT_EXPECT_EQ_MSG(test, 0, copy_to_user(usermem, kmem, PAGE_SIZE), in usercopy_test_valid()
187 KUNIT_EXPECT_EQ_MSG(test, 0, copy_from_user(kmem, usermem, PAGE_SIZE), in usercopy_test_valid()
189 KUNIT_EXPECT_MEMEQ_MSG(test, kmem, kmem + PAGE_SIZE, PAGE_SIZE, in usercopy_test_valid()
195 KUNIT_EXPECT_EQ_MSG(test, 0, \ in usercopy_test_valid()
199 KUNIT_EXPECT_EQ_MSG(test, 0, \ in usercopy_test_valid()
202 KUNIT_EXPECT_EQ_MSG(test, val_##size, check, \ in usercopy_test_valid()
218 static void usercopy_test_invalid(struct kunit *test) in usercopy_test_invalid() argument
220 struct usercopy_test_priv *priv = test->priv; in usercopy_test_invalid()
228 …kunit_skip(test, "Testing for kernel/userspace address confusion is only sensible on architectures… in usercopy_test_invalid()
237 KUNIT_EXPECT_NE_MSG(test, copy_from_user(kmem, (char __user *)(kmem + PAGE_SIZE), in usercopy_test_invalid()
242 KUNIT_EXPECT_MEMEQ_MSG(test, kmem + PAGE_SIZE, kmem, PAGE_SIZE, in usercopy_test_invalid()
252 KUNIT_EXPECT_NE_MSG(test, copy_from_user(bad_usermem, (char __user *)kmem, in usercopy_test_invalid()
256 KUNIT_EXPECT_NE_MSG(test, copy_to_user((char __user *)kmem, kmem + PAGE_SIZE, in usercopy_test_invalid()
260 KUNIT_EXPECT_NE_MSG(test, copy_to_user((char __user *)kmem, bad_usermem, in usercopy_test_invalid()
268 KUNIT_EXPECT_NE_MSG(test, get_user(val_##size, (size __user *)kmem), 0, \ in usercopy_test_invalid()
270 KUNIT_EXPECT_EQ_MSG(test, val_##size, 0, \ in usercopy_test_invalid()
274 KUNIT_EXPECT_NE_MSG(test, put_user(val_##size, (size __user *)kmem), 0, \ in usercopy_test_invalid()
276 KUNIT_EXPECT_EQ_MSG(test, *kmem_u64, 0xF09FA4AFF09FA4AF, \ in usercopy_test_invalid()
289 static int usercopy_test_init(struct kunit *test) in usercopy_test_init() argument
295 kunit_skip(test, "Userspace allocation testing not available on non-MMU systems"); in usercopy_test_init()
299 priv = kunit_kzalloc(test, sizeof(*priv), GFP_KERNEL); in usercopy_test_init()
300 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, priv); in usercopy_test_init()
301 test->priv = priv; in usercopy_test_init()
304 priv->kmem = kunit_kmalloc(test, priv->size, GFP_KERNEL); in usercopy_test_init()
305 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, priv->kmem); in usercopy_test_init()
307 user_addr = kunit_vm_mmap(test, NULL, 0, priv->size, in usercopy_test_init()
310 KUNIT_ASSERT_NE_MSG(test, user_addr, 0, in usercopy_test_init()
312 KUNIT_ASSERT_LT_MSG(test, user_addr, (unsigned long)TASK_SIZE, in usercopy_test_init()