Lines Matching full:test

25 #include <kunit/test.h>
46 * test, see the comment for KUNIT_EXPECT_KASAN_FAIL().
48 static int kasan_test_init(struct kunit *test) in kasan_test_init() argument
51 kunit_err(test, "can't run KASAN tests with KASAN disabled"); in kasan_test_init()
57 kunit_add_named_resource(test, NULL, NULL, &resource, in kasan_test_init()
62 static void kasan_test_exit(struct kunit *test) in kasan_test_exit() argument
65 KUNIT_EXPECT_FALSE(test, fail_data.report_found); in kasan_test_exit()
70 * KASAN report; causes a test failure otherwise. This relies on a KUnit
75 * checking is auto-disabled. When this happens, this test handler reenables
89 #define KUNIT_EXPECT_KASAN_FAIL(test, expression) do { \ argument
93 KUNIT_EXPECT_FALSE(test, READ_ONCE(fail_data.report_found)); \
98 KUNIT_FAIL(test, KUNIT_SUBTEST_INDENT "KASAN failure " \
110 #define KASAN_TEST_NEEDS_CONFIG_ON(test, config) do { \ argument
112 kunit_skip((test), "Test requires " #config "=y"); \
115 #define KASAN_TEST_NEEDS_CONFIG_OFF(test, config) do { \ argument
117 kunit_skip((test), "Test requires " #config "=n"); \
120 static void kmalloc_oob_right(struct kunit *test) in kmalloc_oob_right() argument
126 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); in kmalloc_oob_right()
133 KUNIT_EXPECT_KASAN_FAIL(test, ptr[size] = 'x'); in kmalloc_oob_right()
139 KUNIT_EXPECT_KASAN_FAIL(test, ptr[size + 5] = 'y'); in kmalloc_oob_right()
142 KUNIT_EXPECT_KASAN_FAIL(test, ptr[0] = in kmalloc_oob_right()
148 static void kmalloc_oob_left(struct kunit *test) in kmalloc_oob_left() argument
154 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); in kmalloc_oob_left()
156 KUNIT_EXPECT_KASAN_FAIL(test, *ptr = *(ptr - 1)); in kmalloc_oob_left()
160 static void kmalloc_node_oob_right(struct kunit *test) in kmalloc_node_oob_right() argument
166 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); in kmalloc_node_oob_right()
168 KUNIT_EXPECT_KASAN_FAIL(test, ptr[0] = ptr[size]); in kmalloc_node_oob_right()
178 static void kmalloc_pagealloc_oob_right(struct kunit *test) in kmalloc_pagealloc_oob_right() argument
183 KASAN_TEST_NEEDS_CONFIG_ON(test, CONFIG_SLUB); in kmalloc_pagealloc_oob_right()
186 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); in kmalloc_pagealloc_oob_right()
188 KUNIT_EXPECT_KASAN_FAIL(test, ptr[size + OOB_TAG_OFF] = 0); in kmalloc_pagealloc_oob_right()
193 static void kmalloc_pagealloc_uaf(struct kunit *test) in kmalloc_pagealloc_uaf() argument
198 KASAN_TEST_NEEDS_CONFIG_ON(test, CONFIG_SLUB); in kmalloc_pagealloc_uaf()
201 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); in kmalloc_pagealloc_uaf()
204 KUNIT_EXPECT_KASAN_FAIL(test, ((volatile char *)ptr)[0]); in kmalloc_pagealloc_uaf()
207 static void kmalloc_pagealloc_invalid_free(struct kunit *test) in kmalloc_pagealloc_invalid_free() argument
212 KASAN_TEST_NEEDS_CONFIG_ON(test, CONFIG_SLUB); in kmalloc_pagealloc_invalid_free()
215 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); in kmalloc_pagealloc_invalid_free()
217 KUNIT_EXPECT_KASAN_FAIL(test, kfree(ptr + 1)); in kmalloc_pagealloc_invalid_free()
220 static void pagealloc_oob_right(struct kunit *test) in pagealloc_oob_right() argument
232 KASAN_TEST_NEEDS_CONFIG_OFF(test, CONFIG_KASAN_GENERIC); in pagealloc_oob_right()
236 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); in pagealloc_oob_right()
238 KUNIT_EXPECT_KASAN_FAIL(test, ptr[0] = ptr[size]); in pagealloc_oob_right()
242 static void pagealloc_uaf(struct kunit *test) in pagealloc_uaf() argument
250 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); in pagealloc_uaf()
253 KUNIT_EXPECT_KASAN_FAIL(test, ((volatile char *)ptr)[0]); in pagealloc_uaf()
256 static void kmalloc_large_oob_right(struct kunit *test) in kmalloc_large_oob_right() argument
266 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); in kmalloc_large_oob_right()
268 KUNIT_EXPECT_KASAN_FAIL(test, ptr[size] = 0); in kmalloc_large_oob_right()
272 static void krealloc_more_oob_helper(struct kunit *test, in krealloc_more_oob_helper() argument
278 KUNIT_ASSERT_LT(test, size1, size2); in krealloc_more_oob_helper()
282 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr1); in krealloc_more_oob_helper()
285 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr2); in krealloc_more_oob_helper()
295 KUNIT_EXPECT_KASAN_FAIL(test, ptr2[size2] = 'x'); in krealloc_more_oob_helper()
298 KUNIT_EXPECT_KASAN_FAIL(test, in krealloc_more_oob_helper()
304 static void krealloc_less_oob_helper(struct kunit *test, in krealloc_less_oob_helper() argument
310 KUNIT_ASSERT_LT(test, size2, size1); in krealloc_less_oob_helper()
314 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr1); in krealloc_less_oob_helper()
317 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr2); in krealloc_less_oob_helper()
324 KUNIT_EXPECT_KASAN_FAIL(test, ptr2[size2] = 'x'); in krealloc_less_oob_helper()
327 KUNIT_EXPECT_KASAN_FAIL(test, in krealloc_less_oob_helper()
334 KUNIT_EXPECT_LE(test, round_up(size2, KASAN_GRANULE_SIZE), in krealloc_less_oob_helper()
336 KUNIT_EXPECT_LE(test, round_up(middle, KASAN_GRANULE_SIZE), in krealloc_less_oob_helper()
338 KUNIT_EXPECT_KASAN_FAIL(test, ptr2[middle] = 'x'); in krealloc_less_oob_helper()
339 KUNIT_EXPECT_KASAN_FAIL(test, ptr2[size1 - 1] = 'x'); in krealloc_less_oob_helper()
340 KUNIT_EXPECT_KASAN_FAIL(test, ptr2[size1] = 'x'); in krealloc_less_oob_helper()
345 static void krealloc_more_oob(struct kunit *test) in krealloc_more_oob() argument
347 krealloc_more_oob_helper(test, 201, 235); in krealloc_more_oob()
350 static void krealloc_less_oob(struct kunit *test) in krealloc_less_oob() argument
352 krealloc_less_oob_helper(test, 235, 201); in krealloc_less_oob()
355 static void krealloc_pagealloc_more_oob(struct kunit *test) in krealloc_pagealloc_more_oob() argument
358 KASAN_TEST_NEEDS_CONFIG_ON(test, CONFIG_SLUB); in krealloc_pagealloc_more_oob()
360 krealloc_more_oob_helper(test, KMALLOC_MAX_CACHE_SIZE + 201, in krealloc_pagealloc_more_oob()
364 static void krealloc_pagealloc_less_oob(struct kunit *test) in krealloc_pagealloc_less_oob() argument
367 KASAN_TEST_NEEDS_CONFIG_ON(test, CONFIG_SLUB); in krealloc_pagealloc_less_oob()
369 krealloc_less_oob_helper(test, KMALLOC_MAX_CACHE_SIZE + 235, in krealloc_pagealloc_less_oob()
377 static void krealloc_uaf(struct kunit *test) in krealloc_uaf() argument
384 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr1); in krealloc_uaf()
387 KUNIT_EXPECT_KASAN_FAIL(test, ptr2 = krealloc(ptr1, size2, GFP_KERNEL)); in krealloc_uaf()
388 KUNIT_ASSERT_PTR_EQ(test, (void *)ptr2, NULL); in krealloc_uaf()
389 KUNIT_EXPECT_KASAN_FAIL(test, *(volatile char *)ptr1); in krealloc_uaf()
392 static void kmalloc_oob_16(struct kunit *test) in kmalloc_oob_16() argument
398 /* This test is specifically crafted for the generic mode. */ in kmalloc_oob_16()
399 KASAN_TEST_NEEDS_CONFIG_ON(test, CONFIG_KASAN_GENERIC); in kmalloc_oob_16()
402 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr1); in kmalloc_oob_16()
405 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr2); in kmalloc_oob_16()
407 KUNIT_EXPECT_KASAN_FAIL(test, *ptr1 = *ptr2); in kmalloc_oob_16()
412 static void kmalloc_uaf_16(struct kunit *test) in kmalloc_uaf_16() argument
419 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr1); in kmalloc_uaf_16()
422 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr2); in kmalloc_uaf_16()
425 KUNIT_EXPECT_KASAN_FAIL(test, *ptr1 = *ptr2); in kmalloc_uaf_16()
435 static void kmalloc_oob_memset_2(struct kunit *test) in kmalloc_oob_memset_2() argument
441 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); in kmalloc_oob_memset_2()
443 KUNIT_EXPECT_KASAN_FAIL(test, memset(ptr + size - 1, 0, 2)); in kmalloc_oob_memset_2()
447 static void kmalloc_oob_memset_4(struct kunit *test) in kmalloc_oob_memset_4() argument
453 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); in kmalloc_oob_memset_4()
455 KUNIT_EXPECT_KASAN_FAIL(test, memset(ptr + size - 3, 0, 4)); in kmalloc_oob_memset_4()
459 static void kmalloc_oob_memset_8(struct kunit *test) in kmalloc_oob_memset_8() argument
465 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); in kmalloc_oob_memset_8()
467 KUNIT_EXPECT_KASAN_FAIL(test, memset(ptr + size - 7, 0, 8)); in kmalloc_oob_memset_8()
471 static void kmalloc_oob_memset_16(struct kunit *test) in kmalloc_oob_memset_16() argument
477 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); in kmalloc_oob_memset_16()
479 KUNIT_EXPECT_KASAN_FAIL(test, memset(ptr + size - 15, 0, 16)); in kmalloc_oob_memset_16()
483 static void kmalloc_oob_in_memset(struct kunit *test) in kmalloc_oob_in_memset() argument
489 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); in kmalloc_oob_in_memset()
491 KUNIT_EXPECT_KASAN_FAIL(test, in kmalloc_oob_in_memset()
496 static void kmalloc_memmove_invalid_size(struct kunit *test) in kmalloc_memmove_invalid_size() argument
504 * As a result, this test introduces a side-effect memory corruption, in kmalloc_memmove_invalid_size()
507 KASAN_TEST_NEEDS_CONFIG_OFF(test, CONFIG_KASAN_HW_TAGS); in kmalloc_memmove_invalid_size()
510 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); in kmalloc_memmove_invalid_size()
513 KUNIT_EXPECT_KASAN_FAIL(test, in kmalloc_memmove_invalid_size()
518 static void kmalloc_uaf(struct kunit *test) in kmalloc_uaf() argument
524 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); in kmalloc_uaf()
527 KUNIT_EXPECT_KASAN_FAIL(test, ((volatile char *)ptr)[8]); in kmalloc_uaf()
530 static void kmalloc_uaf_memset(struct kunit *test) in kmalloc_uaf_memset() argument
537 * kernel memory corruption this test causes. in kmalloc_uaf_memset()
539 KASAN_TEST_NEEDS_CONFIG_ON(test, CONFIG_KASAN_GENERIC); in kmalloc_uaf_memset()
542 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); in kmalloc_uaf_memset()
545 KUNIT_EXPECT_KASAN_FAIL(test, memset(ptr, 0, size)); in kmalloc_uaf_memset()
548 static void kmalloc_uaf2(struct kunit *test) in kmalloc_uaf2() argument
556 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr1); in kmalloc_uaf2()
561 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr2); in kmalloc_uaf2()
572 KUNIT_EXPECT_KASAN_FAIL(test, ((volatile char *)ptr1)[40]); in kmalloc_uaf2()
573 KUNIT_EXPECT_PTR_NE(test, ptr1, ptr2); in kmalloc_uaf2()
578 static void kfree_via_page(struct kunit *test) in kfree_via_page() argument
586 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); in kfree_via_page()
593 static void kfree_via_phys(struct kunit *test) in kfree_via_phys() argument
600 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); in kfree_via_phys()
606 static void kmem_cache_oob(struct kunit *test) in kmem_cache_oob() argument
613 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, cache); in kmem_cache_oob()
617 kunit_err(test, "Allocation failed: %s\n", __func__); in kmem_cache_oob()
622 KUNIT_EXPECT_KASAN_FAIL(test, *p = p[size + OOB_TAG_OFF]); in kmem_cache_oob()
628 static void kmem_cache_accounted(struct kunit *test) in kmem_cache_accounted() argument
636 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, cache); in kmem_cache_accounted()
655 static void kmem_cache_bulk(struct kunit *test) in kmem_cache_bulk() argument
664 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, cache); in kmem_cache_bulk()
668 kunit_err(test, "Allocation failed: %s\n", __func__); in kmem_cache_bulk()
682 static void kasan_global_oob(struct kunit *test) in kasan_global_oob() argument
700 KASAN_TEST_NEEDS_CONFIG_ON(test, CONFIG_KASAN_GENERIC); in kasan_global_oob()
702 KUNIT_EXPECT_KASAN_FAIL(test, *(volatile char *)p); in kasan_global_oob()
706 static void ksize_unpoisons_memory(struct kunit *test) in ksize_unpoisons_memory() argument
712 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); in ksize_unpoisons_memory()
719 KUNIT_EXPECT_KASAN_FAIL(test, ((volatile char *)ptr)[real_size]); in ksize_unpoisons_memory()
728 static void ksize_uaf(struct kunit *test) in ksize_uaf() argument
734 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); in ksize_uaf()
737 KUNIT_EXPECT_KASAN_FAIL(test, ksize(ptr)); in ksize_uaf()
738 KUNIT_EXPECT_KASAN_FAIL(test, ((volatile char *)ptr)[0]); in ksize_uaf()
739 KUNIT_EXPECT_KASAN_FAIL(test, ((volatile char *)ptr)[size]); in ksize_uaf()
742 static void kasan_stack_oob(struct kunit *test) in kasan_stack_oob() argument
749 KASAN_TEST_NEEDS_CONFIG_ON(test, CONFIG_KASAN_STACK); in kasan_stack_oob()
751 KUNIT_EXPECT_KASAN_FAIL(test, *(volatile char *)p); in kasan_stack_oob()
754 static void kasan_alloca_oob_left(struct kunit *test) in kasan_alloca_oob_left() argument
763 KASAN_TEST_NEEDS_CONFIG_ON(test, CONFIG_KASAN_GENERIC); in kasan_alloca_oob_left()
764 KASAN_TEST_NEEDS_CONFIG_ON(test, CONFIG_KASAN_STACK); in kasan_alloca_oob_left()
766 KUNIT_EXPECT_KASAN_FAIL(test, *(volatile char *)p); in kasan_alloca_oob_left()
769 static void kasan_alloca_oob_right(struct kunit *test) in kasan_alloca_oob_right() argument
778 KASAN_TEST_NEEDS_CONFIG_ON(test, CONFIG_KASAN_GENERIC); in kasan_alloca_oob_right()
779 KASAN_TEST_NEEDS_CONFIG_ON(test, CONFIG_KASAN_STACK); in kasan_alloca_oob_right()
781 KUNIT_EXPECT_KASAN_FAIL(test, *(volatile char *)p); in kasan_alloca_oob_right()
784 static void kmem_cache_double_free(struct kunit *test) in kmem_cache_double_free() argument
791 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, cache); in kmem_cache_double_free()
795 kunit_err(test, "Allocation failed: %s\n", __func__); in kmem_cache_double_free()
801 KUNIT_EXPECT_KASAN_FAIL(test, kmem_cache_free(cache, p)); in kmem_cache_double_free()
805 static void kmem_cache_invalid_free(struct kunit *test) in kmem_cache_invalid_free() argument
813 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, cache); in kmem_cache_invalid_free()
817 kunit_err(test, "Allocation failed: %s\n", __func__); in kmem_cache_invalid_free()
823 KUNIT_EXPECT_KASAN_FAIL(test, kmem_cache_free(cache, p + 1)); in kmem_cache_invalid_free()
834 static void kasan_memchr(struct kunit *test) in kasan_memchr() argument
843 KASAN_TEST_NEEDS_CONFIG_OFF(test, CONFIG_AMD_MEM_ENCRYPT); in kasan_memchr()
849 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); in kasan_memchr()
851 KUNIT_EXPECT_KASAN_FAIL(test, in kasan_memchr()
857 static void kasan_memcmp(struct kunit *test) in kasan_memcmp() argument
867 KASAN_TEST_NEEDS_CONFIG_OFF(test, CONFIG_AMD_MEM_ENCRYPT); in kasan_memcmp()
873 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); in kasan_memcmp()
876 KUNIT_EXPECT_KASAN_FAIL(test, in kasan_memcmp()
881 static void kasan_strings(struct kunit *test) in kasan_strings() argument
890 KASAN_TEST_NEEDS_CONFIG_OFF(test, CONFIG_AMD_MEM_ENCRYPT); in kasan_strings()
893 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); in kasan_strings()
904 KUNIT_EXPECT_KASAN_FAIL(test, kasan_ptr_result = strchr(ptr, '1')); in kasan_strings()
906 KUNIT_EXPECT_KASAN_FAIL(test, kasan_ptr_result = strrchr(ptr, '1')); in kasan_strings()
908 KUNIT_EXPECT_KASAN_FAIL(test, kasan_int_result = strcmp(ptr, "2")); in kasan_strings()
910 KUNIT_EXPECT_KASAN_FAIL(test, kasan_int_result = strncmp(ptr, "2", 1)); in kasan_strings()
912 KUNIT_EXPECT_KASAN_FAIL(test, kasan_int_result = strlen(ptr)); in kasan_strings()
914 KUNIT_EXPECT_KASAN_FAIL(test, kasan_int_result = strnlen(ptr, 1)); in kasan_strings()
917 static void kasan_bitops_modify(struct kunit *test, int nr, void *addr) in kasan_bitops_modify() argument
919 KUNIT_EXPECT_KASAN_FAIL(test, set_bit(nr, addr)); in kasan_bitops_modify()
920 KUNIT_EXPECT_KASAN_FAIL(test, __set_bit(nr, addr)); in kasan_bitops_modify()
921 KUNIT_EXPECT_KASAN_FAIL(test, clear_bit(nr, addr)); in kasan_bitops_modify()
922 KUNIT_EXPECT_KASAN_FAIL(test, __clear_bit(nr, addr)); in kasan_bitops_modify()
923 KUNIT_EXPECT_KASAN_FAIL(test, clear_bit_unlock(nr, addr)); in kasan_bitops_modify()
924 KUNIT_EXPECT_KASAN_FAIL(test, __clear_bit_unlock(nr, addr)); in kasan_bitops_modify()
925 KUNIT_EXPECT_KASAN_FAIL(test, change_bit(nr, addr)); in kasan_bitops_modify()
926 KUNIT_EXPECT_KASAN_FAIL(test, __change_bit(nr, addr)); in kasan_bitops_modify()
929 static void kasan_bitops_test_and_modify(struct kunit *test, int nr, void *addr) in kasan_bitops_test_and_modify() argument
931 KUNIT_EXPECT_KASAN_FAIL(test, test_and_set_bit(nr, addr)); in kasan_bitops_test_and_modify()
932 KUNIT_EXPECT_KASAN_FAIL(test, __test_and_set_bit(nr, addr)); in kasan_bitops_test_and_modify()
933 KUNIT_EXPECT_KASAN_FAIL(test, test_and_set_bit_lock(nr, addr)); in kasan_bitops_test_and_modify()
934 KUNIT_EXPECT_KASAN_FAIL(test, test_and_clear_bit(nr, addr)); in kasan_bitops_test_and_modify()
935 KUNIT_EXPECT_KASAN_FAIL(test, __test_and_clear_bit(nr, addr)); in kasan_bitops_test_and_modify()
936 KUNIT_EXPECT_KASAN_FAIL(test, test_and_change_bit(nr, addr)); in kasan_bitops_test_and_modify()
937 KUNIT_EXPECT_KASAN_FAIL(test, __test_and_change_bit(nr, addr)); in kasan_bitops_test_and_modify()
938 KUNIT_EXPECT_KASAN_FAIL(test, kasan_int_result = test_bit(nr, addr)); in kasan_bitops_test_and_modify()
941 KUNIT_EXPECT_KASAN_FAIL(test, kasan_int_result = in kasan_bitops_test_and_modify()
946 static void kasan_bitops_generic(struct kunit *test) in kasan_bitops_generic() argument
950 /* This test is specifically crafted for the generic mode. */ in kasan_bitops_generic()
951 KASAN_TEST_NEEDS_CONFIG_ON(test, CONFIG_KASAN_GENERIC); in kasan_bitops_generic()
958 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, bits); in kasan_bitops_generic()
965 kasan_bitops_modify(test, BITS_PER_LONG, bits); in kasan_bitops_generic()
970 kasan_bitops_test_and_modify(test, BITS_PER_LONG + BITS_PER_BYTE, bits); in kasan_bitops_generic()
975 static void kasan_bitops_tags(struct kunit *test) in kasan_bitops_tags() argument
979 /* This test is specifically crafted for tag-based modes. */ in kasan_bitops_tags()
980 KASAN_TEST_NEEDS_CONFIG_OFF(test, CONFIG_KASAN_GENERIC); in kasan_bitops_tags()
984 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, bits); in kasan_bitops_tags()
987 kasan_bitops_modify(test, BITS_PER_LONG, (void *)bits + 48); in kasan_bitops_tags()
988 kasan_bitops_test_and_modify(test, BITS_PER_LONG + BITS_PER_BYTE, (void *)bits + 48); in kasan_bitops_tags()
993 static void kmalloc_double_kzfree(struct kunit *test) in kmalloc_double_kzfree() argument
999 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); in kmalloc_double_kzfree()
1002 KUNIT_EXPECT_KASAN_FAIL(test, kfree_sensitive(ptr)); in kmalloc_double_kzfree()
1005 static void vmalloc_oob(struct kunit *test) in vmalloc_oob() argument
1009 KASAN_TEST_NEEDS_CONFIG_ON(test, CONFIG_KASAN_VMALLOC); in vmalloc_oob()
1016 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, area); in vmalloc_oob()
1018 KUNIT_EXPECT_KASAN_FAIL(test, ((volatile char *)area)[3100]); in vmalloc_oob()
1027 static void match_all_not_assigned(struct kunit *test) in match_all_not_assigned() argument
1033 KASAN_TEST_NEEDS_CONFIG_OFF(test, CONFIG_KASAN_GENERIC); in match_all_not_assigned()
1038 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); in match_all_not_assigned()
1039 KUNIT_EXPECT_GE(test, (u8)get_tag(ptr), (u8)KASAN_TAG_MIN); in match_all_not_assigned()
1040 KUNIT_EXPECT_LT(test, (u8)get_tag(ptr), (u8)KASAN_TAG_KERNEL); in match_all_not_assigned()
1048 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); in match_all_not_assigned()
1049 KUNIT_EXPECT_GE(test, (u8)get_tag(ptr), (u8)KASAN_TAG_MIN); in match_all_not_assigned()
1050 KUNIT_EXPECT_LT(test, (u8)get_tag(ptr), (u8)KASAN_TAG_KERNEL); in match_all_not_assigned()
1056 static void match_all_ptr_tag(struct kunit *test) in match_all_ptr_tag() argument
1061 KASAN_TEST_NEEDS_CONFIG_OFF(test, CONFIG_KASAN_GENERIC); in match_all_ptr_tag()
1064 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); in match_all_ptr_tag()
1068 KUNIT_EXPECT_NE(test, tag, (u8)KASAN_TAG_KERNEL); in match_all_ptr_tag()
1082 static void match_all_mem_tag(struct kunit *test) in match_all_mem_tag() argument
1087 KASAN_TEST_NEEDS_CONFIG_OFF(test, CONFIG_KASAN_GENERIC); in match_all_mem_tag()
1090 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); in match_all_mem_tag()
1091 KUNIT_EXPECT_NE(test, (u8)get_tag(ptr), (u8)KASAN_TAG_KERNEL); in match_all_mem_tag()
1102 KUNIT_EXPECT_KASAN_FAIL(test, *ptr = 0); in match_all_mem_tag()