Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

KVM: selftests: Isolate the guest_memfd Copy-on-Write negative testcase

Move the guest_memfd Copy-on-Write (CoW) testcase to its own function to
better separate positive testcases from negative testcases.

No functional change intended.

Suggested-by: Ackerley Tng <ackerleytng@google.com>
Reviewed-by: Ackerley Tng <ackerleytng@google.com>
Tested-by: Ackerley Tng <ackerleytng@google.com>
Link: https://lore.kernel.org/r/20251003232606.4070510-11-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>

+9 -3
+9 -3
tools/testing/selftests/kvm/guest_memfd_test.c
··· 40 40 "pwrite on a guest_mem fd should fail"); 41 41 } 42 42 43 + static void test_mmap_cow(int fd, size_t size) 44 + { 45 + void *mem; 46 + 47 + mem = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0); 48 + TEST_ASSERT(mem == MAP_FAILED, "Copy-on-write not allowed by guest_memfd."); 49 + } 50 + 43 51 static void test_mmap_supported(int fd, size_t total_size) 44 52 { 45 53 const char val = 0xaa; 46 54 char *mem; 47 55 size_t i; 48 56 int ret; 49 - 50 - mem = mmap(NULL, total_size, PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0); 51 - TEST_ASSERT(mem == MAP_FAILED, "Copy-on-write not allowed by guest_memfd."); 52 57 53 58 mem = kvm_mmap(total_size, PROT_READ | PROT_WRITE, MAP_SHARED, fd); 54 59 ··· 277 272 278 273 if (flags & GUEST_MEMFD_FLAG_MMAP) { 279 274 gmem_test(mmap_supported, vm, flags); 275 + gmem_test(mmap_cow, vm, flags); 280 276 gmem_test(fault_overflow, vm, flags); 281 277 } else { 282 278 gmem_test(mmap_not_supported, vm, flags);