File tests-t8001-do-not-rely-on-modprobe-loop.patch of Package parted.30108

From: Gilles Espinasse <g.esp@free.fr>
Date: Sun, 7 Oct 2012 15:40:23 +0200
Subject: tests: t8001: do not rely on "modprobe loop"
For: t8001
Patch-mainline: v3.2
Git-commit: 569e59d08fe2ec5e836536371e0a974a58e83166

Remove 'rmmod loop' and 'modprobe loop max_part=7' commands.
The latter command may fail after the first command has run,
leaving the machine with no loop support.

This happens on my chroot, because:
- rmmod does not depend on the availability of the loop module,
- modprobe fails, since the kernel compiled inside the chroot
  is different from the running kernel.

Instead, rely on t-lvm loop_setup_ to load the loop module, if required.

Acked-by: Sebastian Parschauer <sparschauer@suse.de>
---
 tests/t8001-loop-blkpg.sh | 12 +++---------
 1 file changed, 3 insertions(+), 9 deletions(-)

diff --git a/tests/t8001-loop-blkpg.sh b/tests/t8001-loop-blkpg.sh
index deef18bca2a3..9afde4ab59d8 100755
--- a/tests/t8001-loop-blkpg.sh
+++ b/tests/t8001-loop-blkpg.sh
@@ -20,6 +20,7 @@
 
 require_root_
 require_udevadm_settle_
+lvm_init_root_dir_
 
 cleanup_fn_()
 {
@@ -27,21 +28,14 @@ cleanup_fn_()
     && { udevadm settle --timeout=3; losetup -d "$loopdev"; }
 }
 
-# If the loop module is loaded, unload it first
-if lsmod | grep '^loop[[:space:]]'; then
-    rmmod loop || fail=1
-fi
-
-# Insert loop module with max_part > 1
-modprobe loop max_part=7 || fail=1
-
 # Create backing file
 dd if=/dev/zero of=backing_file bs=1M count=4 >/dev/null 2>&1 || fail=1
 
 # Set up loop device on top of backing file
-loopdev=$(losetup -f --show backing_file)
+loopdev=$(loop_setup_ backing_file)
 test -z "$loopdev" && fail=1
 
+# Skip this test if loop devices are not partitionable.
 require_partitionable_loop_device_ $loopdev
 
 # Expect this to succeed
openSUSE Build Service is sponsored by