tests: strange redirection
I just found
2>&1 >> $TS_OUTPUT
in many tests.
I am not sure, whether it does what is expected:
2>&1 >> $TS_OUTPUT
which does:
Redirect stdout to $TS_OUTPUT and redirect stderr to stdout.
I guess that it is most probably intended to be:
Quoted 1 line
Quoted 1 line
$TS_OUTPUT 2>&1
which does:
Redirect stdout and stderr to $TS_OUTPUT.
Here is a global fix:
cd tests/ts
sed -i 's:2>\&1 >> \$TS_OUTPUT:>> $TS_OUTPUT 2>\&1:g' $(fgrep -rl '2>&1 >> $TS_OUTPUT' .)
I ran a check, and it seems, that there could be some minor issues in:
MD raid1 (whole-disks)
mount-by-uuid
mount-flags
x-mount.mkdir
fstab-label
fstab-uuid
The current version of redirection can cause false positive result of the test.
Signature · 10 lines
Best Regards / S pozdravem, Stanislav Brabec software developer --------------------------------------------------------------------- SUSE LINUX, s. r. o. e-mail: [email protected] Lihovarská 1060/12 tel: +49 911 7405384547 190 00 Praha 9 fax: +420 284 084 001 Czech Republic http://www.suse.cz/ PGP: 830B 40D5 9E05 35D8 5E27 6FA3 717C 209F A04F CD76
PATCH 1/1 tests: fix redirection
Many tests do.
2>&1 >> $TS_OUTPUT
It redirects stdout to $TS_OUTPUT and stderr to stdout.
It could cause unintended ignoring of errors on strerr and false positive result of the test.
Use
Quoted 1 line
Quoted 1 line
$TS_OUTPUT 2>&1
instead to redirect both stdout and stderr to $TS_OUTPUT.
Automatically created by:
cd tests/ts
sed -i 's:2>\&1 >> \$TS_OUTPUT:>> $TS_OUTPUT 2>\&1:g' $(fgrep -rl '2>&1 >> $TS_OUTPUT' .)
--- tests/ts/cramfs/doubles | 2 +- tests/ts/cramfs/fsck-endianness | 2 +- tests/ts/cramfs/mkfs | 2 +- tests/ts/hexdump/format-strings | 4 ++-- tests/ts/minix/fsck | 4 ++-- tests/ts/mount/devname | 2 +- tests/ts/mount/fslists | 8 ++++---- tests/ts/mount/fstab-btrfs | 28 ++++++++++++++-------------- tests/ts/mount/fstab-devname | 4 ++-- tests/ts/mount/fstab-devname2label | 2 +- tests/ts/mount/fstab-devname2uuid | 2 +- tests/ts/mount/fstab-label | 6 +++--- tests/ts/mount/fstab-label2devname | 4 ++-- tests/ts/mount/fstab-label2uuid | 4 ++-- tests/ts/mount/fstab-none | 2 +- tests/ts/mount/fstab-symlink | 6 +++--- tests/ts/mount/fstab-uuid | 6 +++--- tests/ts/mount/fstab-uuid2devname | 4 ++-- tests/ts/mount/fstab-uuid2label | 4 ++-- tests/ts/mount/label | 4 ++-- tests/ts/mount/regfile | 2 +- tests/ts/mount/uuid | 4 ++-- tests/ts/swapon/devname | 2 +- tests/ts/swapon/label | 2 +- tests/ts/swapon/uuid | 2 +- 25 files changed, 56 insertions(+), 56 deletions(-)
tests/ts/cramfs/doubles +1 -1
@@ -41,7 +41,7 @@ echo hello > $IMAGE_SRC/a echo hello > $IMAGE_SRC/b ts_log "create cramfs image" -$TS_CMD_MKCRAMFS $IMAGE_SRC $IMAGE_PATH 2>&1 >> $TS_OUTPUT +$TS_CMD_MKCRAMFS $IMAGE_SRC $IMAGE_PATH >> $TS_OUTPUT 2>&1 [ -s "$IMAGE_PATH" ] || ts_die "Cannot create $IMAGE_PATH" ts_mount "cramfs" -r $IMAGE_PATH $TS_MOUNTPOINT
tests/ts/cramfs/fsck-endianness +1 -1
@@ -39,7 +39,7 @@ test_image() { rm -rf "$IMAGE_DATA" ts_log "extract from $FROM_ENDIANNESS endian" - $TS_CMD_FSCKCRAMFS -v -b 4096 --extract=$IMAGE_DATA $FROM_IMAGE | head -n1 | cut -d" " -f4 2>&1 >> $TS_OUTPUT + $TS_CMD_FSCKCRAMFS -v -b 4096 --extract=$IMAGE_DATA $FROM_IMAGE | head -n1 | cut -d" " -f4 >> $TS_OUTPUT 2>&1 ts_log "create $TO_ENDIANNESS endian" $TS_CMD_MKCRAMFS -N "$TO_ENDIANNESS" -b 4096 "$IMAGE_DATA" \
tests/ts/cramfs/mkfs +1 -1
@@ -70,7 +70,7 @@ find -type f -exec md5sum {} \; | sort >> $TS_OUTPUT echo >> $TS_OUTPUT ts_log "create cramfs image" -$TS_CMD_MKCRAMFS -n $LABEL $IMAGE_SRC $IMAGE_PATH 2>&1 >> $TS_OUTPUT +$TS_CMD_MKCRAMFS -n $LABEL $IMAGE_SRC $IMAGE_PATH >> $TS_OUTPUT 2>&1 [ -s "$IMAGE_PATH" ] || ts_die "Cannot create $IMAGE_PATH" ts_cd "$TS_OUTDIR"
tests/ts/hexdump/format-strings +2 -2
@@ -32,9 +32,9 @@ BE_EXT=$(test "$BYTE_ORDER" = "BE" && echo ".BE") ts_init_subtest "empty-format" TS_EXPECTED+=$BE_EXT INPUT=$(printf \\1) -$TS_CMD_HEXDUMP -n1 -ve '2 "" "%x"' <<< $INPUT 2>&1 >> $TS_OUTPUT +$TS_CMD_HEXDUMP -n1 -ve '2 "" "%x"' <<< $INPUT >> $TS_OUTPUT 2>&1 -$TS_CMD_HEXDUMP -n1 -ve '4 "%x"' -e '2 ""' <<< $INPUT 2>&1 >> $TS_OUTPUT +$TS_CMD_HEXDUMP -n1 -ve '4 "%x"' -e '2 ""' <<< $INPUT >> $TS_OUTPUT 2>&1 ts_finalize_subtest #basic formats
tests/ts/minix/fsck +2 -2
@@ -30,10 +30,10 @@ ts_device_init DEVICE=$TS_LODEV ts_log "create minix fs" -$TS_CMD_MKMINIX $DEVICE 2>&1 >> $TS_OUTPUT +$TS_CMD_MKMINIX $DEVICE >> $TS_OUTPUT 2>&1 ts_log "fsck minix fs" -$TS_CMD_FSCKMINIX $DEVICE 2>&1 >> $TS_OUTPUT +$TS_CMD_FSCKMINIX $DEVICE >> $TS_OUTPUT 2>&1 ts_finalize
tests/ts/mount/devname +1 -1
@@ -38,7 +38,7 @@ ts_device_has "TYPE" "ext3" $DEVICE || ts_die "Cannot find ext3 on $DEVICE" [ -d "$TS_MOUNTPOINT" ] || mkdir -p $TS_MOUNTPOINT -$TS_CMD_MOUNT $DEVICE $TS_MOUNTPOINT 2>&1 >> $TS_OUTPUT +$TS_CMD_MOUNT $DEVICE $TS_MOUNTPOINT >> $TS_OUTPUT 2>&1 ts_is_mounted $DEVICE || ts_die "Cannot find $DEVICE in /proc/mounts"
tests/ts/mount/fslists +4 -4
@@ -42,7 +42,7 @@ ts_device_has "TYPE" "ext3" $DEVICE || ts_die "Cannot find ext3 on $DEVICE" ts_init_subtest "one-type" [ -d "$TS_MOUNTPOINT" ] || mkdir -p $TS_MOUNTPOINT -$TS_CMD_MOUNT -t ext3 $DEVICE $TS_MOUNTPOINT 2>&1 >> $TS_OUTPUT +$TS_CMD_MOUNT -t ext3 $DEVICE $TS_MOUNTPOINT >> $TS_OUTPUT 2>&1 ts_is_mounted $DEVICE || ts_die "Cannot find $DEVICE in /proc/mounts" $TS_CMD_UMOUNT $TS_MOUNTPOINT ts_log "Success"
@@ -51,7 +51,7 @@ ts_finalize_subtest ts_init_subtest "more-types" [ -d "$TS_MOUNTPOINT" ] || mkdir -p $TS_MOUNTPOINT -$TS_CMD_MOUNT -t foo,bar,ext3 $DEVICE $TS_MOUNTPOINT 2>&1 >> $TS_OUTPUT +$TS_CMD_MOUNT -t foo,bar,ext3 $DEVICE $TS_MOUNTPOINT >> $TS_OUTPUT 2>&1 ts_is_mounted $DEVICE || ts_die "Cannot find $DEVICE in /proc/mounts" $TS_CMD_UMOUNT $TS_MOUNTPOINT ts_log "Success"
@@ -61,7 +61,7 @@ ts_finalize_subtest ts_init_subtest "more-types-fstab" [ -d "$TS_MOUNTPOINT" ] || mkdir -p $TS_MOUNTPOINT ts_fstab_add $DEVICE $TS_MOUNTPOINT "foo,bar,ext3" -$TS_CMD_MOUNT $TS_MOUNTPOINT 2>&1 >> $TS_OUTPUT +$TS_CMD_MOUNT $TS_MOUNTPOINT >> $TS_OUTPUT 2>&1 ts_fstab_clean ts_is_mounted $DEVICE || ts_die "Cannot find $DEVICE in /proc/mounts" $TS_CMD_UMOUNT $TS_MOUNTPOINT
@@ -71,7 +71,7 @@ ts_finalize_subtest ts_init_subtest "type-pattern" [ -d "$TS_MOUNTPOINT" ] || mkdir -p $TS_MOUNTPOINT -$TS_CMD_MOUNT -t nofoo,bar $DEVICE $TS_MOUNTPOINT 2>&1 >> $TS_OUTPUT +$TS_CMD_MOUNT -t nofoo,bar $DEVICE $TS_MOUNTPOINT >> $TS_OUTPUT 2>&1 ts_is_mounted $DEVICE || ts_die "Cannot find $DEVICE in /proc/mounts" $TS_CMD_UMOUNT $TS_MOUNTPOINT ts_log "Success"
tests/ts/mount/fstab-btrfs +14 -14
@@ -82,16 +82,16 @@ ts_fstab_add "$DEVICE" "$TS_MOUNTPOINT_SUBVOLID" "btrfs" "subvolid=$NON_DEFAULT_ # test bind mount pointing to subvolume root ts_fstab_add "$TS_MOUNTPOINT_SUBVOLID" "$TS_MOUNTPOINT_BIND" "auto" "bind" -$TS_CMD_MOUNT -a 2>&1 >> $TS_OUTPUT -$TS_CMD_MOUNT -a 2>&1 >> $TS_OUTPUT +$TS_CMD_MOUNT -a >> $TS_OUTPUT 2>&1 +$TS_CMD_MOUNT -a >> $TS_OUTPUT 2>&1 -$TS_CMD_UMOUNT "$TS_MOUNTPOINT_BIND" 2>&1 >> $TS_OUTPUT -$TS_CMD_UMOUNT "$TS_MOUNTPOINT_DEFAULT" 2>&1 >> $TS_OUTPUT -$TS_CMD_UMOUNT "$TS_MOUNTPOINT_SUBVOL" 2>&1 >> $TS_OUTPUT -$TS_CMD_UMOUNT "$TS_MOUNTPOINT_SUBVOLID" 2>&1 >> $TS_OUTPUT +$TS_CMD_UMOUNT "$TS_MOUNTPOINT_BIND" >> $TS_OUTPUT 2>&1 +$TS_CMD_UMOUNT "$TS_MOUNTPOINT_DEFAULT" >> $TS_OUTPUT 2>&1 +$TS_CMD_UMOUNT "$TS_MOUNTPOINT_SUBVOL" >> $TS_OUTPUT 2>&1 +$TS_CMD_UMOUNT "$TS_MOUNTPOINT_SUBVOLID" >> $TS_OUTPUT 2>&1 # check that everything was unmounted -$TS_CMD_MOUNT | grep "$TS_MOUNTPOINT_ANY" 2>&1 >> $TS_OUTPUT +$TS_CMD_MOUNT | grep "$TS_MOUNTPOINT_ANY" >> $TS_OUTPUT 2>&1 ts_fstab_clean ts_log "Success"
@@ -108,16 +108,16 @@ ts_fstab_add "$DEVICE" "$TS_MOUNTPOINT_SUBVOLID" "auto" "subvolid=$NON_DEFAULT_S # test bind mount pointing to subvolume sub-directory ts_fstab_add "$TS_MOUNTPOINT_SUBVOL/bind-mnt" "$TS_MOUNTPOINT_BIND" "auto" "bind" -$TS_CMD_MOUNT -a 2>&1 >> $TS_OUTPUT -$TS_CMD_MOUNT -a 2>&1 >> $TS_OUTPUT +$TS_CMD_MOUNT -a >> $TS_OUTPUT 2>&1 +$TS_CMD_MOUNT -a >> $TS_OUTPUT 2>&1 -$TS_CMD_UMOUNT "$TS_MOUNTPOINT_BIND" 2>&1 >> $TS_OUTPUT -$TS_CMD_UMOUNT "$TS_MOUNTPOINT_DEFAULT" 2>&1 >> $TS_OUTPUT -$TS_CMD_UMOUNT "$TS_MOUNTPOINT_SUBVOL" 2>&1 >> $TS_OUTPUT -$TS_CMD_UMOUNT "$TS_MOUNTPOINT_SUBVOLID" 2>&1 >> $TS_OUTPUT +$TS_CMD_UMOUNT "$TS_MOUNTPOINT_BIND" >> $TS_OUTPUT 2>&1 +$TS_CMD_UMOUNT "$TS_MOUNTPOINT_DEFAULT" >> $TS_OUTPUT 2>&1 +$TS_CMD_UMOUNT "$TS_MOUNTPOINT_SUBVOL" >> $TS_OUTPUT 2>&1 +$TS_CMD_UMOUNT "$TS_MOUNTPOINT_SUBVOLID" >> $TS_OUTPUT 2>&1 # check that everything was unmounted -$TS_CMD_MOUNT | grep "$TS_MOUNTPOINT_ANY" 2>&1 >> $TS_OUTPUT +$TS_CMD_MOUNT | grep "$TS_MOUNTPOINT_ANY" >> $TS_OUTPUT 2>&1 ts_fstab_clean ts_log "Success"
tests/ts/mount/fstab-devname +2 -2
@@ -40,12 +40,12 @@ ts_device_has "TYPE" "ext3" $DEVICE || ts_die "Cannot find ext3 on $DEVICE" ts_fstab_add $DEVICE # variant A) -$TS_CMD_MOUNT $TS_MOUNTPOINT 2>&1 >> $TS_OUTPUT +$TS_CMD_MOUNT $TS_MOUNTPOINT >> $TS_OUTPUT 2>&1 ts_is_mounted $DEVICE || ts_die "A) Cannot find $DEVICE in /proc/mounts" $TS_CMD_UMOUNT $DEVICE || ts_die "A) Cannot umount $DEVICE" # variant B) -$TS_CMD_MOUNT $DEVICE 2>&1 >> $TS_OUTPUT +$TS_CMD_MOUNT $DEVICE >> $TS_OUTPUT 2>&1 ts_is_mounted $DEVICE || ts_die "B) Cannot find $DEVICE in /proc/mounts" $TS_CMD_UMOUNT $DEVICE || ts_die "B) Cannot umount $DEVICE"
tests/ts/mount/fstab-devname2label +1 -1
@@ -41,7 +41,7 @@ ts_device_has "LABEL" $LABEL $DEVICE \ ts_fstab_add "LABEL=$LABEL" -$TS_CMD_MOUNT $DEVICE 2>&1 >> $TS_OUTPUT +$TS_CMD_MOUNT $DEVICE >> $TS_OUTPUT 2>&1 ts_is_mounted $DEVICE || ts_die "Cannot find $DEVICE in /proc/mounts" $TS_CMD_UMOUNT $DEVICE || ts_die "Cannot umount $DEVICE"
tests/ts/mount/fstab-devname2uuid +1 -1
@@ -41,7 +41,7 @@ UUID=$(ts_uuid_by_devname $DEVICE) ts_fstab_add "UUID=$UUID" -$TS_CMD_MOUNT $DEVICE 2>&1 >> $TS_OUTPUT +$TS_CMD_MOUNT $DEVICE >> $TS_OUTPUT 2>&1 ts_is_mounted $DEVICE || ts_die "Cannot find $DEVICE in /proc/mounts" $TS_CMD_UMOUNT $DEVICE || ts_die "Cannot umount $DEVICE"
tests/ts/mount/fstab-label +3 -3
@@ -42,17 +42,17 @@ ts_device_has "LABEL" $LABEL $DEVICE \ ts_fstab_add "LABEL=$LABEL" # variant A) -$TS_CMD_MOUNT $TS_MOUNTPOINT 2>&1 >> $TS_OUTPUT +$TS_CMD_MOUNT $TS_MOUNTPOINT >> $TS_OUTPUT 2>&1 ts_is_mounted $DEVICE || ts_die "A) Cannot find $DEVICE in /proc/mounts" $TS_CMD_UMOUNT $DEVICE || ts_die "A) Cannot umount $DEVICE" # variant B) -$TS_CMD_MOUNT -L $LABEL 2>&1 >> $TS_OUTPUT +$TS_CMD_MOUNT -L $LABEL >> $TS_OUTPUT 2>&1 ts_is_mounted $DEVICE || ts_die "B) Cannot find $DEVICE in /proc/mounts" $TS_CMD_UMOUNT $DEVICE || ts_die "B) Cannot umount $DEVICE" # variant C) -$TS_CMD_MOUNT LABEL=$LABEL 2>&1 >> $TS_OUTPUT +$TS_CMD_MOUNT LABEL=$LABEL >> $TS_OUTPUT 2>&1 ts_is_mounted $DEVICE || ts_die "C) Cannot find $DEVICE in /proc/mounts" $TS_CMD_UMOUNT $DEVICE || ts_die "C) Cannot umount $DEVICE"
tests/ts/mount/fstab-label2devname +2 -2
@@ -42,12 +42,12 @@ ts_device_has "LABEL" $LABEL $DEVICE \ ts_fstab_add "$DEVICE" # variant A) -$TS_CMD_MOUNT -L $LABEL 2>&1 >> $TS_OUTPUT +$TS_CMD_MOUNT -L $LABEL >> $TS_OUTPUT 2>&1 ts_is_mounted $DEVICE || ts_die "A) Cannot find $DEVICE in /proc/mounts" $TS_CMD_UMOUNT $DEVICE || ts_die "A) Cannot umount $DEVICE" # variant B) -$TS_CMD_MOUNT "LABEL=$LABEL" 2>&1 >> $TS_OUTPUT +$TS_CMD_MOUNT "LABEL=$LABEL" >> $TS_OUTPUT 2>&1 ts_is_mounted $DEVICE || ts_die "B) Cannot find $DEVICE in /proc/mounts" $TS_CMD_UMOUNT $DEVICE || ts_die "B) Cannot umount $DEVICE"
tests/ts/mount/fstab-label2uuid +2 -2
@@ -47,12 +47,12 @@ UUID=$(ts_uuid_by_devname $DEVICE) ts_fstab_add "UUID=$UUID" # variant A) -$TS_CMD_MOUNT -L $LABEL 2>&1 >> $TS_OUTPUT +$TS_CMD_MOUNT -L $LABEL >> $TS_OUTPUT 2>&1 ts_is_mounted $DEVICE || ts_die "A) Cannot find $DEVICE in /proc/mounts" $TS_CMD_UMOUNT $DEVICE || ts_die "A) Cannot umount $DEVICE" # variant B) -$TS_CMD_MOUNT "LABEL=$LABEL" 2>&1 >> $TS_OUTPUT +$TS_CMD_MOUNT "LABEL=$LABEL" >> $TS_OUTPUT 2>&1 ts_is_mounted $DEVICE || ts_die "B) Cannot find $DEVICE in /proc/mounts" $TS_CMD_UMOUNT $DEVICE || ts_die "B) Cannot umount $DEVICE"
tests/ts/mount/fstab-none +1 -1
@@ -16,7 +16,7 @@ ts_fstab_add "none" "$TS_MOUNTPOINT" "tmpfs" "rw,nosuid,nodev,relatime" mkdir -p $TS_MOUNTPOINT -$TS_CMD_MOUNT $TS_MOUNTPOINT 2>&1 >> $TS_OUTPUT +$TS_CMD_MOUNT $TS_MOUNTPOINT >> $TS_OUTPUT 2>&1 [ "$?" = "0" ] || ts_log "error: mount $TS_MOUNTPOINT" $TS_CMD_FINDMNT --mountpoint "$TS_MOUNTPOINT" &> /dev/null
tests/ts/mount/fstab-symlink +3 -3
@@ -46,7 +46,7 @@ ln -s $DEVICE $LINKNAME ts_fstab_add $LINKNAME $TS_MOUNTPOINT "auto" "defaults,user" # variant A) -- UID=0 -$TS_CMD_MOUNT $LINKNAME 2>&1 >> $TS_OUTPUT +$TS_CMD_MOUNT $LINKNAME >> $TS_OUTPUT 2>&1 ts_is_mounted $DEVICE || ts_die "A) Cannot find $DEVICE in /proc/mounts" $TS_CMD_UMOUNT $LINKNAME || ts_die "A) Cannot umount $LINKNAME"
@@ -57,10 +57,10 @@ $TS_CMD_UMOUNT $LINKNAME || ts_die "A) Cannot umount $LINKNAME" #ts_init_suid $TS_CMD_MOUNT #ts_init_suid $TS_CMD_UMOUNT # -#su $TS_TESTUSER -c "$TS_CMD_MOUNT -v -v -v $LINKNAME" 2>&1 >> $TS_OUTPUT +#su $TS_TESTUSER -c "$TS_CMD_MOUNT -v -v -v $LINKNAME" >> $TS_OUTPUT 2>&1 #ts_is_mounted $DEVICE # || ts_die "B) Cannot find $DEVICE in /proc/mounts" -#su $TS_TESTUSER -c "$TS_CMD_UMOUNT $LINKNAME" 2>&1 >> $TS_OUTPUT \ +#su $TS_TESTUSER -c "$TS_CMD_UMOUNT $LINKNAME" >> $TS_OUTPUT 2>&1 \ # || ts_die "B) Cannot umount $LINKNAME" ts_fstab_clean
tests/ts/mount/fstab-uuid +3 -3
@@ -42,17 +42,17 @@ UUID=$(ts_uuid_by_devname $DEVICE) ts_fstab_add "UUID=$UUID" # varian A) -$TS_CMD_MOUNT $TS_MOUNTPOINT 2>&1 >> $TS_OUTPUT +$TS_CMD_MOUNT $TS_MOUNTPOINT >> $TS_OUTPUT 2>&1 ts_is_mounted $DEVICE || ts_die "A) Cannot find $DEVICE in /proc/mounts" $TS_CMD_UMOUNT $DEVICE || ts_die "A) Cannot umount $DEVICE" # varian B) -$TS_CMD_MOUNT -U $UUID 2>&1 >> $TS_OUTPUT +$TS_CMD_MOUNT -U $UUID >> $TS_OUTPUT 2>&1 ts_is_mounted $DEVICE || ts_die "B) Cannot find $DEVICE in /proc/mounts" $TS_CMD_UMOUNT $DEVICE || ts_die "B) Cannot umount $DEVICE" # varian C) -$TS_CMD_MOUNT UUID=$UUID 2>&1 >> $TS_OUTPUT +$TS_CMD_MOUNT UUID=$UUID >> $TS_OUTPUT 2>&1 ts_is_mounted $DEVICE || ts_die "C) Cannot find $DEVICE in /proc/mounts" $TS_CMD_UMOUNT $DEVICE || ts_die "C) Cannot umount $DEVICE"
tests/ts/mount/fstab-uuid2devname +2 -2
@@ -42,12 +42,12 @@ UUID=$(ts_uuid_by_devname $DEVICE) ts_fstab_add "$DEVICE" # variant A) -$TS_CMD_MOUNT -U $UUID 2>&1 >> $TS_OUTPUT +$TS_CMD_MOUNT -U $UUID >> $TS_OUTPUT 2>&1 ts_is_mounted $DEVICE || ts_die "A) Cannot find $DEVICE in /proc/mounts" $TS_CMD_UMOUNT $DEVICE || ts_die "A) Cannot umount $DEVICE" # variant B) -$TS_CMD_MOUNT "UUID=$UUID" 2>&1 >> $TS_OUTPUT +$TS_CMD_MOUNT "UUID=$UUID" >> $TS_OUTPUT 2>&1 ts_is_mounted $DEVICE || ts_die "B) Cannot find $DEVICE in /proc/mounts" $TS_CMD_UMOUNT $DEVICE || ts_die "B) Cannot umount $DEVICE"
tests/ts/mount/fstab-uuid2label +2 -2
@@ -46,12 +46,12 @@ UUID=$(ts_uuid_by_devname $DEVICE) ts_fstab_add "LABEL=$LABEL" # variant A) -$TS_CMD_MOUNT -U $UUID 2>&1 >> $TS_OUTPUT +$TS_CMD_MOUNT -U $UUID >> $TS_OUTPUT 2>&1 ts_is_mounted $DEVICE || ts_die "A) Cannot find $DEVICE in /proc/mounts" $TS_CMD_UMOUNT $DEVICE || ts_die "A) Cannot umount $DEVICE" # variant B) -$TS_CMD_MOUNT "UUID=$UUID" 2>&1 >> $TS_OUTPUT +$TS_CMD_MOUNT "UUID=$UUID" >> $TS_OUTPUT 2>&1 ts_is_mounted $DEVICE || ts_die "B) Cannot find $DEVICE in /proc/mounts" $TS_CMD_UMOUNT $DEVICE || ts_die "B) Cannot umount $DEVICE"
tests/ts/mount/label +2 -2
@@ -41,12 +41,12 @@ ts_device_has "LABEL" $LABEL $DEVICE \ [ -d "$TS_MOUNTPOINT" ] || mkdir -p $TS_MOUNTPOINT # variant A) -$TS_CMD_MOUNT -L $LABEL $TS_MOUNTPOINT 2>&1 >> $TS_OUTPUT +$TS_CMD_MOUNT -L $LABEL $TS_MOUNTPOINT >> $TS_OUTPUT 2>&1 ts_is_mounted $DEVICE || ts_die "A) Cannot find $DEVICE in /proc/mounts" $TS_CMD_UMOUNT $DEVICE || ts_die "A) Cannot umount $DEVICE" # variant B) -$TS_CMD_MOUNT LABEL=$LABEL $TS_MOUNTPOINT 2>&1 >> $TS_OUTPUT +$TS_CMD_MOUNT LABEL=$LABEL $TS_MOUNTPOINT >> $TS_OUTPUT 2>&1 ts_is_mounted $DEVICE || ts_die "B) Cannot find $DEVICE in /proc/mounts" $TS_CMD_UMOUNT $DEVICE || ts_die "B) Cannot umount $DEVICE"
tests/ts/mount/regfile +1 -1
@@ -21,7 +21,7 @@ mkfs.ext3 -F $IMAGE &> /dev/null || ts_die "Cannot make ext3 on $IMAGE" [ -d "$TS_MOUNTPOINT" ] || mkdir -p $TS_MOUNTPOINT -$TS_CMD_MOUNT $IMAGE $TS_MOUNTPOINT 2>&1 >> $TS_OUTPUT +$TS_CMD_MOUNT $IMAGE $TS_MOUNTPOINT >> $TS_OUTPUT 2>&1 DEVICE=$(awk '/regfile/ { print $1 }' /proc/mounts)
tests/ts/mount/uuid +2 -2
@@ -40,12 +40,12 @@ UUID=$(ts_uuid_by_devname $DEVICE) [ -d "$TS_MOUNTPOINT" ] || mkdir -p $TS_MOUNTPOINT # variant A) -$TS_CMD_MOUNT -U $UUID $TS_MOUNTPOINT 2>&1 >> $TS_OUTPUT +$TS_CMD_MOUNT -U $UUID $TS_MOUNTPOINT >> $TS_OUTPUT 2>&1 ts_is_mounted $DEVICE || ts_die "A) Cannot find $DEVICE in /proc/mounts" $TS_CMD_UMOUNT $DEVICE || ts_die "A) Cannot umount $DEVICE" # variant B) -$TS_CMD_MOUNT UUID=$UUID $TS_MOUNTPOINT 2>&1 >> $TS_OUTPUT +$TS_CMD_MOUNT UUID=$UUID $TS_MOUNTPOINT >> $TS_OUTPUT 2>&1 ts_is_mounted $DEVICE || ts_die "B) Cannot find $DEVICE in /proc/mounts" $TS_CMD_UMOUNT $DEVICE || ts_die "B) Cannot umount $DEVICE"
tests/ts/swapon/devname +1 -1
@@ -36,7 +36,7 @@ $TS_CMD_MKSWAP $DEVICE > /dev/null 2>> $TS_OUTPUT \ ts_device_has "TYPE" "swap" $DEVICE || ts_die "Cannot find swap on $DEVICE" -$TS_CMD_SWAPON $DEVICE 2>&1 >> $TS_OUTPUT +$TS_CMD_SWAPON $DEVICE >> $TS_OUTPUT 2>&1 grep -q $DEVICE /proc/swaps || ts_die "Cannot find $DEVICE in /proc/swaps"
tests/ts/swapon/label +1 -1
@@ -38,7 +38,7 @@ $TS_CMD_MKSWAP -L $LABEL $DEVICE > /dev/null 2>> $TS_OUTPUT \ ts_device_has "LABEL" $LABEL $DEVICE \ || ts_die "Cannot find LABEL '$LABEL' on $DEVICE" -$TS_CMD_SWAPON -L $LABEL 2>&1 >> $TS_OUTPUT +$TS_CMD_SWAPON -L $LABEL >> $TS_OUTPUT 2>&1 grep -q $DEVICE /proc/swaps || ts_die "Cannot find $DEVICE in /proc/swaps"
tests/ts/swapon/uuid +1 -1
@@ -38,7 +38,7 @@ ts_device_has_uuid $DEVICE || ts_die "Cannot find UUID on $DEVICE" UUID=$(ts_uuid_by_devname $DEVICE) -$TS_CMD_SWAPON -U $UUID 2>&1 >> $TS_OUTPUT +$TS_CMD_SWAPON -U $UUID >> $TS_OUTPUT 2>&1 grep -q $DEVICE /proc/swaps || ts_die "Cannot find $DEVICE in /proc/swaps"
Signature · 13 lines
2.7.0 -- Best Regards / S pozdravem, Stanislav Brabec software developer --------------------------------------------------------------------- SUSE LINUX, s. r. o. e-mail: [email protected] Lihovarská 1060/12 tel: +49 911 7405384547 190 00 Praha 9 fax: +420 284 084 001 Czech Republic http://www.suse.cz/ PGP: 830B 40D5 9E05 35D8 5E27 6FA3 717C 209F A04F CD76
Quoted 31 lines · Stanislav Brabec
I just found
2>&1 >> $TS_OUTPUT
in many tests.I am not sure, whether it does what is expected:
2>&1 >> $TS_OUTPUT
which does:
Redirect stdout to $TS_OUTPUT and redirect stderr to stdout.I guess that it is most probably intended to be:
Quoted 1 line
Quoted 1 line
$TS_OUTPUT 2>&1
which does:
Redirect stdout and stderr to $TS_OUTPUT.Here is a global fix:
cd tests/ts
sed -i 's:2>\&1 >> \$TS_OUTPUT:>> $TS_OUTPUT 2>\&1:g' $(fgrep -rl '2>&1 >> $TS_OUTPUT' .)I ran a check, and it seems, that there could be some minor issues in:
MD raid1 (whole-disks)
mount-by-uuid
mount-flags
x-mount.mkdir
fstab-label
fstab-uuid
Quoted 2 lines
The current version of redirection can cause false positive result of the test.
I remember that one day I was also about to fix that redirections. But after thinking about this for a while I've left it as it is. Unfortunately I don't remember why :)
Could be that sometimes we will get harmless warnings which should be ignored. Also a minor advantage was that our mount tests could survive running with LIBMOUNT_DEBUG=all.
Anyways, checking stderr too is IMO a good idea.
BTW I would even like to add checking return values of any used commands (not only for mount tests) like we did in 45eb5b29 for blkdiscard for example.
cu,
Rudi