On Wed, 15 Nov 2023 at 11:39, David Howells <dhowells@xxxxxxxxxx> wrote: > > I was trying to make it possible to do these tests before starting userspace > as there's a good chance that if the UBUF/IOVEC iterators don't work right > then your system can't be booted. Oh, I don't think that any unit test should bother to check for that kind of catastrophic case. If something is so broken that the kernel doesn't boot properly even into some basic test infrastructure, then bisection will trivially find where that breakage was introduced. And if it's something as core as the iov iterators, it won't even get past the initial developer unless it's some odd build system interaction. So extreme cases aren't even worth checking for. What's worth testing is "the system boots and works, but I want to check the edge cases". IOW, when it comes to things like user copies, it's things like alignment, and the page fault edge cases with EFAULT in particular. You can easily get the return value wrong for a user copy that ends up with an unaligned fault at the end of the last mapped page. Everything normal will still work fine, because nobody does something that odd. But those are best handled as user mode tests. Linus