]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
tests: fix grep expressions for devices
authorRuediger Meier <ruediger.meier@ga-group.nl>
Fri, 9 Mar 2018 17:27:44 +0000 (18:27 +0100)
committerKarel Zak <kzak@redhat.com>
Mon, 19 Mar 2018 10:46:11 +0000 (11:46 +0100)
ts_is_mounted "/dev/loop1" returned true if /dev/loop17 was
mounted. A very annoying source of sporadic failures since
many years. This issue became more visible since running the
checks in parallel, which increases the probability to get
bigger loop device numbers.

Signed-off-by: Ruediger Meier <ruediger.meier@ga-group.nl>
12 files changed:
tests/functions.sh
tests/ts/libmount/context
tests/ts/libmount/context-py
tests/ts/libmount/context-utab
tests/ts/libmount/context-utab-py
tests/ts/losetup/losetup-loop
tests/ts/mount/devname
tests/ts/swapon/devname
tests/ts/swapon/fixpgsz
tests/ts/swapon/fixsig
tests/ts/swapon/label
tests/ts/swapon/uuid

index fc8f86377dc0445fbe306f3c23f0533fbac76ffa..66eaa9d6ef6fd54ae8bcee77a996739e32d4230b 100644 (file)
@@ -618,10 +618,10 @@ function ts_mount {
 function ts_is_mounted {
        local DEV=$(ts_canonicalize "$1")
 
-       grep -q $DEV /proc/mounts && return 0
+       grep -q "\(^\| \)$DEV " /proc/mounts && return 0
 
        if [ "${DEV#/dev/loop/}" != "$DEV" ]; then
-               grep -q "/dev/loop${DEV#/dev/loop/}" /proc/mounts && return 0
+               grep -q "^/dev/loop${DEV#/dev/loop/} " /proc/mounts && return 0
        fi
        return 1
 }
index 5a4f36afa4cbf6a059554db8f936263ffac51369..3750c701fb5205bf845f1bb659143ebcd6ba2bd6 100755 (executable)
@@ -53,7 +53,7 @@ DEVICE="${TS_DEVICE}1"
 
 udevadm settle
 
-grep -q $DEVNAME /proc/partitions
+grep -q " $DEVNAME\$" /proc/partitions
 if [ $? -ne 0 ]; then
        ts_skip "no partition!"
 fi
index b4e22b4000ba8626a7f6748a0c8a3ca1a767fedc..dfc8faaeec51f8aee55eb78a98feb45372d7dd65 100755 (executable)
@@ -58,7 +58,7 @@ DEVICE="${TS_DEVICE}1"
 
 udevadm settle
 
-grep -q $DEVNAME /proc/partitions
+grep -q " $DEVNAME\$" /proc/partitions
 if [ $? -ne 0 ]; then
        ts_skip "no partition!"
 fi
@@ -77,7 +77,7 @@ function is_mounted {
                ts_is_mounted "$1"
                return $?
        fi
-       grep -q "$1" $LIBMOUNT_MTAB && return 0
+       grep -q "\(^\| \)$1 " $LIBMOUNT_MTAB && return 0
        return 1
 }
 
index 24d528d872e560dadb2fabd6b83eeb44ebd9a288..a63ba57d61817c9de8b74a934391dcf97721b4a6 100755 (executable)
@@ -44,7 +44,7 @@ DEVICE="${TS_DEVICE}1"
 
 udevadm settle
 
-grep -q $DEVNAME /proc/partitions
+grep -q " $DEVNAME\$" /proc/partitions
 if [ $? -ne 0 ]; then
        ts_skip "no partition!"
 fi
@@ -67,14 +67,14 @@ udevadm settle
 ts_init_subtest "mount-by-devname"
 mkdir -p $MOUNTPOINT &>  /dev/null
 ts_run $TESTPROG --mount $DEVICE $MOUNTPOINT >> $TS_OUTPUT 2>&1
-grep -q $DEVICE /proc/mounts || \
+ts_is_mounted "$DEVICE" || \
        echo "(by device) cannot find $DEVICE in /proc/mounts" >> $TS_OUTPUT 2>&1
 ts_finalize_subtest
 
 
 ts_init_subtest "umount-by-devname"
 ts_run $TESTPROG --umount $DEVICE >> $TS_OUTPUT 2>&1
-grep -q $DEVICE /proc/mounts &&
+ts_is_mounted "$DEVICE" &&
        echo "umount (device) failed: found $DEVICE in /proc/mounts" >> $TS_OUTPUT 2>&1
 ts_finalize_subtest
 
@@ -82,14 +82,14 @@ ts_finalize_subtest
 ts_init_subtest "mount-uhelper"
 mkdir -p $MOUNTPOINT &>  /dev/null
 ts_run $TESTPROG --mount -o uhelper=foo,rw LABEL="$LABEL" $MOUNTPOINT >> $TS_OUTPUT 2>&1
-grep -q $DEVICE $LIBMOUNT_UTAB || \
+grep -q "SRC=$DEVICE\b" "$LIBMOUNT_UTAB" || \
        echo "(by label) cannot find $DEVICE in $LIBMOUNT_UTAB" >> $TS_OUTPUT 2>&1
 ts_finalize_subtest
 
 
 ts_init_subtest "umount"
 ts_run $TESTPROG --umount $MOUNTPOINT >> $TS_OUTPUT 2>&1
-grep -q $DEVICE $LIBMOUNT_UTAB && \
+grep -q "SRC=$DEVICE\b" "$LIBMOUNT_UTAB" && \
        echo "umount (mountpoint) failed: found $DEVICE in $LIBMOUNT_UTAB" >> $TS_OUTPUT 2>&1
 ts_finalize_subtest
 
@@ -109,7 +109,7 @@ if type "mkfs.btrfs" &>/dev/null && mkfs.btrfs --version &>/dev/null; then
        ts_init_subtest "mount-uhelper-subvol"
        mkdir -p $MOUNTPOINT &>  /dev/null
        ts_run $TESTPROG --mount -o uhelper=foo,rw,subvol=sub $DEVICE  $MOUNTPOINT >> $TS_OUTPUT 2>&1
-       grep -q $DEVICE $LIBMOUNT_UTAB || \
+       grep -q "SRC=$DEVICE\b" "$LIBMOUNT_UTAB" || \
                echo "cannot find $DEVICE in $LIBMOUNT_UTAB" >> $TS_OUTPUT 2>&1
        ts_finalize_subtest
 
@@ -123,7 +123,7 @@ if type "mkfs.btrfs" &>/dev/null && mkfs.btrfs --version &>/dev/null; then
 
        ts_init_subtest "umount-subvol"
        ts_run $TESTPROG --umount $MOUNTPOINT >> $TS_OUTPUT 2>&1
-       grep -q $DEVICE $LIBMOUNT_UTAB && \
+       grep -q "SRC=$DEVICE\b" "$LIBMOUNT_UTAB" && \
                echo "umount (mountpoint) failed: found $DEVICE in $LIBMOUNT_UTAB" >> $TS_OUTPUT 2>&1
        ts_finalize_subtest
 fi
index 94c957d9155e7eda30eb99a22b441f583ff14cb6..89fc0c1573e33a2b0bc20f6ad7cf5a19e359ff18 100755 (executable)
@@ -45,7 +45,7 @@ DEVICE="${TS_DEVICE}1"
 
 udevadm settle
 
-grep -q $DEVNAME /proc/partitions
+grep -q " $DEVNAME\$" /proc/partitions
 if [ $? -ne 0 ]; then
        ts_skip "no partition!"
 fi
@@ -68,14 +68,14 @@ udevadm settle
 ts_init_subtest "mount-by-devname"
 mkdir -p $MOUNTPOINT &>  /dev/null
 $PYTHON $TESTPROG --mount $DEVICE $MOUNTPOINT >> $TS_OUTPUT 2>&1
-grep -q $DEVICE /proc/mounts || \
+ts_is_mounted "$DEVICE" || \
        echo "(by device) cannot find $DEVICE in /proc/mounts" >> $TS_OUTPUT 2>&1
 ts_finalize_subtest
 
 
 ts_init_subtest "umount-by-devname"
 $PYTHON $TESTPROG --umount $DEVICE >> $TS_OUTPUT 2>&1
-grep -q $DEVICE /proc/mounts &&
+ts_is_mounted "$DEVICE" &&
        echo "umount (device) failed: found $DEVICE in /proc/mounts" >> $TS_OUTPUT 2>&1
 ts_finalize_subtest
 
@@ -83,14 +83,14 @@ ts_finalize_subtest
 ts_init_subtest "mount-uhelper"
 mkdir -p $MOUNTPOINT &>  /dev/null
 $PYTHON $TESTPROG --mount -o uhelper=foo,rw LABEL="$LABEL" $MOUNTPOINT >> $TS_OUTPUT 2>&1
-grep -q $DEVICE $LIBMOUNT_UTAB || \
+grep -q "SRC=$DEVICE\b" "$LIBMOUNT_UTAB" || \
        echo "(by label) cannot find $DEVICE in $LIBMOUNT_UTAB" >> $TS_OUTPUT 2>&1
 ts_finalize_subtest
 
 
 ts_init_subtest "umount"
 $PYTHON $TESTPROG --umount $MOUNTPOINT >> $TS_OUTPUT 2>&1
-grep -q $DEVICE $LIBMOUNT_UTAB && \
+grep -q "SRC=$DEVICE\b" "$LIBMOUNT_UTAB" && \
        echo "umount (mountpoint) failed: found $DEVICE in $LIBMOUNT_UTAB" >> $TS_OUTPUT 2>&1
 ts_finalize_subtest
 
@@ -110,7 +110,7 @@ if type "mkfs.btrfs" &>/dev/null && mkfs.btrfs --version &>/dev/null; then
        ts_init_subtest "mount-uhelper-subvol"
        mkdir -p $MOUNTPOINT &>  /dev/null
        $PYTHON $TESTPROG --mount -o uhelper=foo,rw,subvol=sub $DEVICE  $MOUNTPOINT >> $TS_OUTPUT 2>&1
-       grep -q $DEVICE $LIBMOUNT_UTAB || \
+       grep -q "SRC=$DEVICE\b" "$LIBMOUNT_UTAB" || \
                echo "cannot find $DEVICE in $LIBMOUNT_UTAB" >> $TS_OUTPUT 2>&1
        ts_finalize_subtest
 
index 6d1ef21bc367d2af37fa46bc66e4dd824222bf11..037e5c7c6d33ba5e7f3fbb800aee70c660e81142 100755 (executable)
@@ -47,7 +47,7 @@ $TS_CMD_LOSETUP -d "$LODEV"
 LODEV=$( $TS_CMD_LOSETUP --find --nooverlap --show $BACKFILE )
 udevadm settle
 dd if=/dev/zero of="$LODEV" count=1 bs=1 >/dev/null 2>&1
-$TS_CMD_LOSETUP --list | grep -q "$LODEV"
+$TS_CMD_LOSETUP --list | grep -q "$LODEV\b"
 ts_log $?
 udevadm settle
 $TS_CMD_LOSETUP -d "$LODEV" >/dev/null 2>&1
index 65a1ba21769150a2b39bbbce54b7e0b38e85bbc3..4db878bb6d1ea8e486700b6c0080d243acfc5a84 100755 (executable)
@@ -48,12 +48,12 @@ $TS_CMD_MOUNT $DEVICE $TS_MOUNTPOINT >> $TS_OUTPUT 2>&1
 
 ts_is_mounted $DEVICE || ts_die "Cannot find $DEVICE in /proc/mounts"
 
-grep -q $DEVICE $MTAB_FILE ||
+grep -q "\(^\| \)$DEVICE " $MTAB_FILE ||
        echo "mount failed: cannot find $DEVICE in $MTAB_FILE" >> $TS_OUTPUT 2>&1
 
 $TS_CMD_UMOUNT $DEVICE || ts_die "Cannot umount $DEVICE"
 
-grep -q $DEVICE $MTAB_FILE &&
+grep -q "\(^\| \)$DEVICE " $MTAB_FILE &&
        echo "umount failed: found $DEVICE in $MTAB_FILE" >> $TS_OUTPUT 2>&1
 
 ts_log "Success"
index de9a5f20c65feb6f632f5e5764004c5d95a74aed..7469dcb18072209b175d9f336c13785cf7541241 100755 (executable)
@@ -38,7 +38,7 @@ ts_device_has "TYPE" "swap" $DEVICE || ts_die "Cannot find swap on $DEVICE"
 
 $TS_CMD_SWAPON $DEVICE >> $TS_OUTPUT 2>&1
 
-grep -q $DEVICE /proc/swaps || ts_die "Cannot find $DEVICE in /proc/swaps"
+grep -q "^$DEVICE\b" /proc/swaps || ts_die "Cannot find $DEVICE in /proc/swaps"
 
 $TS_CMD_SWAPOFF $DEVICE
 
index 01b2e9afff053c8477d73eb66ce1a8cf16742440..4479cd8f9a5b72b00645108dd66440cd159110e6 100755 (executable)
@@ -40,7 +40,7 @@ ts_device_has "TYPE" "swap" $DEVICE || ts_die "Cannot find swap on $DEVICE"
 #
 $TS_CMD_SWAPON --fixpgsz $DEVICE  &> /dev/null
 
-grep -q $DEVICE /proc/swaps || ts_die "Cannot find $DEVICE in /proc/swaps"
+grep -q "^$DEVICE\b" /proc/swaps || ts_die "Cannot find $DEVICE in /proc/swaps"
 
 $TS_CMD_SWAPOFF $DEVICE
 
index 3f9e3ff840f53c7c46c834cdafd37bec5b19e6ca..c3104a23e0d10d3f918b29117a19a7df041972c5 100755 (executable)
@@ -41,7 +41,7 @@ ts_device_has "TYPE" "swsuspend" $DEVICE || ts_die "Cannot find swsuspend on $DE
 #
 $TS_CMD_SWAPON $DEVICE &> /dev/null
 
-grep -q $DEVICE /proc/swaps || ts_die "Cannot find $DEVICE in /proc/swaps"
+grep -q "^$DEVICE\b" /proc/swaps || ts_die "Cannot find $DEVICE in /proc/swaps"
 
 $TS_CMD_SWAPOFF $DEVICE
 
index 056953a290fb03f15e97b0a8a0211a308f2c5c60..210a12c9721f14d6677aecd1039c51e1d302ea05 100755 (executable)
@@ -42,7 +42,7 @@ ts_device_has "LABEL" $LABEL $DEVICE \
 
 $TS_CMD_SWAPON -L $LABEL >> $TS_OUTPUT 2>&1
 
-grep -q $DEVICE /proc/swaps || ts_die "Cannot find $DEVICE in /proc/swaps"
+grep -q "^$DEVICE\b" /proc/swaps || ts_die "Cannot find $DEVICE in /proc/swaps"
 
 $TS_CMD_SWAPOFF $DEVICE
 
index 9f244f39a4253b59564641fde150e46fc70b0d0c..65af6cb6deef417e6c2ee1113af37abc5de419e4 100755 (executable)
@@ -40,7 +40,7 @@ UUID=$(ts_uuid_by_devname $DEVICE)
 
 $TS_CMD_SWAPON -U $UUID >> $TS_OUTPUT 2>&1
 
-grep -q $DEVICE /proc/swaps || ts_die "Cannot find $DEVICE in /proc/swaps"
+grep -q "^$DEVICE\b" /proc/swaps || ts_die "Cannot find $DEVICE in /proc/swaps"
 
 $TS_CMD_SWAPOFF $DEVICE