Lines Matching defs:test
2 /* I/O iterator tests. This can only test kernel-backed iterator types.
15 #include <kunit/test.h>
47 static void *__init iov_kunit_create_buffer(struct kunit *test,
55 pages = kunit_kcalloc(test, npages, sizeof(struct page *), GFP_KERNEL);
56 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, pages);
62 KUNIT_ASSERT_EQ(test, got, npages);
66 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, buffer);
68 kunit_add_action_or_reset(test, iov_kunit_unmap, buffer);
72 static void __init iov_kunit_load_kvec(struct kunit *test,
84 KUNIT_ASSERT_GE(test, pr->to, pr->from);
85 KUNIT_ASSERT_LE(test, pr->to, bufsize);
90 KUNIT_ASSERT_LE(test, size, bufsize);
98 static void __init iov_kunit_copy_to_kvec(struct kunit *test)
111 scratch = iov_kunit_create_buffer(test, &spages, npages);
115 buffer = iov_kunit_create_buffer(test, &bpages, npages);
118 iov_kunit_load_kvec(test, &iter, READ, kvec, ARRAY_SIZE(kvec),
124 KUNIT_EXPECT_EQ(test, copied, size);
125 KUNIT_EXPECT_EQ(test, iter.count, 0);
126 KUNIT_EXPECT_EQ(test, iter.nr_segs, 0);
137 KUNIT_EXPECT_EQ_MSG(test, buffer[i], scratch[i], "at i=%x", i);
148 static void __init iov_kunit_copy_from_kvec(struct kunit *test)
161 buffer = iov_kunit_create_buffer(test, &bpages, npages);
165 scratch = iov_kunit_create_buffer(test, &spages, npages);
168 iov_kunit_load_kvec(test, &iter, WRITE, kvec, ARRAY_SIZE(kvec),
174 KUNIT_EXPECT_EQ(test, copied, size);
175 KUNIT_EXPECT_EQ(test, iter.count, 0);
176 KUNIT_EXPECT_EQ(test, iter.nr_segs, 0);
192 KUNIT_EXPECT_EQ_MSG(test, scratch[i], buffer[i], "at i=%x", i);
216 static void __init iov_kunit_load_bvec(struct kunit *test,
230 KUNIT_ASSERT_LT(test, pr->page, npages);
231 KUNIT_ASSERT_LT(test, pr->page * PAGE_SIZE, bufsize);
232 KUNIT_ASSERT_GE(test, pr->from, 0);
233 KUNIT_ASSERT_GE(test, pr->to, pr->from);
234 KUNIT_ASSERT_LE(test, pr->to, PAGE_SIZE);
257 static void __init iov_kunit_copy_to_bvec(struct kunit *test)
270 scratch = iov_kunit_create_buffer(test, &spages, npages);
274 buffer = iov_kunit_create_buffer(test, &bpages, npages);
277 iov_kunit_load_bvec(test, &iter, READ, bvec, ARRAY_SIZE(bvec),
283 KUNIT_EXPECT_EQ(test, copied, size);
284 KUNIT_EXPECT_EQ(test, iter.count, 0);
285 KUNIT_EXPECT_EQ(test, iter.nr_segs, 0);
300 KUNIT_EXPECT_EQ_MSG(test, buffer[i], scratch[i], "at i=%x", i);
311 static void __init iov_kunit_copy_from_bvec(struct kunit *test)
324 buffer = iov_kunit_create_buffer(test, &bpages, npages);
328 scratch = iov_kunit_create_buffer(test, &spages, npages);
331 iov_kunit_load_bvec(test, &iter, WRITE, bvec, ARRAY_SIZE(bvec),
337 KUNIT_EXPECT_EQ(test, copied, size);
338 KUNIT_EXPECT_EQ(test, iter.count, 0);
339 KUNIT_EXPECT_EQ(test, iter.nr_segs, 0);
357 KUNIT_EXPECT_EQ_MSG(test, scratch[i], buffer[i], "at i=%x", i);
373 static void __init iov_kunit_load_xarray(struct kunit *test,
384 KUNIT_ASSERT_FALSE(test, xa_is_err(x));
390 static struct xarray *iov_kunit_create_xarray(struct kunit *test)
396 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, xarray);
397 kunit_add_action_or_reset(test, iov_kunit_destroy_xarray, xarray);
404 static void __init iov_kunit_copy_to_xarray(struct kunit *test)
417 xarray = iov_kunit_create_xarray(test);
419 scratch = iov_kunit_create_buffer(test, &spages, npages);
423 buffer = iov_kunit_create_buffer(test, &bpages, npages);
426 iov_kunit_load_xarray(test, &iter, READ, xarray, bpages, npages);
431 KUNIT_ASSERT_LE(test, pr->to, bufsize);
436 KUNIT_EXPECT_EQ(test, copied, size);
437 KUNIT_EXPECT_EQ(test, iter.count, 0);
438 KUNIT_EXPECT_EQ(test, iter.iov_offset, size);
451 KUNIT_EXPECT_EQ_MSG(test, buffer[i], scratch[i], "at i=%x", i);
462 static void __init iov_kunit_copy_from_xarray(struct kunit *test)
475 xarray = iov_kunit_create_xarray(test);
477 buffer = iov_kunit_create_buffer(test, &bpages, npages);
481 scratch = iov_kunit_create_buffer(test, &spages, npages);
484 iov_kunit_load_xarray(test, &iter, READ, xarray, bpages, npages);
489 KUNIT_ASSERT_LE(test, pr->to, bufsize);
494 KUNIT_EXPECT_EQ(test, copied, size);
495 KUNIT_EXPECT_EQ(test, iter.count, 0);
496 KUNIT_EXPECT_EQ(test, iter.iov_offset, size);
514 KUNIT_EXPECT_EQ_MSG(test, scratch[i], buffer[i], "at i=%x", i);
525 static void __init iov_kunit_extract_pages_kvec(struct kunit *test)
539 buffer = iov_kunit_create_buffer(test, &bpages, npages);
541 iov_kunit_load_kvec(test, &iter, READ, kvec, ARRAY_SIZE(kvec),
555 KUNIT_EXPECT_GE(test, len, 0);
558 KUNIT_EXPECT_GE(test, (ssize_t)offset0, 0);
559 KUNIT_EXPECT_LT(test, offset0, PAGE_SIZE);
560 KUNIT_EXPECT_LE(test, len, size);
561 KUNIT_EXPECT_EQ(test, iter.count, size - len);
572 KUNIT_ASSERT_GE(test, part, 0);
580 KUNIT_ASSERT_LT(test, ix, npages);
582 KUNIT_EXPECT_PTR_EQ(test, pagelist[i], p);
583 KUNIT_EXPECT_EQ(test, offset0, from % PAGE_SIZE);
586 KUNIT_ASSERT_GE(test, len, 0);
592 if (test->status == KUNIT_FAILURE)
597 KUNIT_EXPECT_EQ(test, size, 0);
598 KUNIT_EXPECT_EQ(test, iter.count, 0);
605 static void __init iov_kunit_extract_pages_bvec(struct kunit *test)
618 iov_kunit_create_buffer(test, &bpages, npages);
619 iov_kunit_load_bvec(test, &iter, READ, bvec, ARRAY_SIZE(bvec),
633 KUNIT_EXPECT_GE(test, len, 0);
636 KUNIT_EXPECT_GE(test, (ssize_t)offset0, 0);
637 KUNIT_EXPECT_LT(test, offset0, PAGE_SIZE);
638 KUNIT_EXPECT_LE(test, len, size);
639 KUNIT_EXPECT_EQ(test, iter.count, size - len);
650 KUNIT_ASSERT_GE(test, part, 0);
658 KUNIT_ASSERT_LT(test, ix, npages);
660 KUNIT_EXPECT_PTR_EQ(test, pagelist[i], p);
661 KUNIT_EXPECT_EQ(test, offset0, from % PAGE_SIZE);
664 KUNIT_ASSERT_GE(test, len, 0);
670 if (test->status == KUNIT_FAILURE)
675 KUNIT_EXPECT_EQ(test, size, 0);
676 KUNIT_EXPECT_EQ(test, iter.count, 0);
683 static void __init iov_kunit_extract_pages_xarray(struct kunit *test)
696 xarray = iov_kunit_create_xarray(test);
698 iov_kunit_create_buffer(test, &bpages, npages);
699 iov_kunit_load_xarray(test, &iter, READ, xarray, bpages, npages);
704 KUNIT_ASSERT_LE(test, pr->to, bufsize);
716 KUNIT_EXPECT_GE(test, len, 0);
719 KUNIT_EXPECT_LE(test, len, size);
720 KUNIT_EXPECT_EQ(test, iter.count, size - len);
724 KUNIT_EXPECT_GE(test, (ssize_t)offset0, 0);
725 KUNIT_EXPECT_LT(test, offset0, PAGE_SIZE);
732 KUNIT_ASSERT_GE(test, part, 0);
734 KUNIT_ASSERT_LT(test, ix, npages);
736 KUNIT_EXPECT_PTR_EQ(test, pagelist[i], p);
737 KUNIT_EXPECT_EQ(test, offset0, from % PAGE_SIZE);
740 KUNIT_ASSERT_GE(test, len, 0);
746 if (test->status == KUNIT_FAILURE)
750 KUNIT_EXPECT_EQ(test, size, 0);
751 KUNIT_EXPECT_EQ(test, iter.count, 0);
752 KUNIT_EXPECT_EQ(test, iter.iov_offset, pr->to - pr->from);