2007-01-04 14:23:48 +01:00
|
|
|
|
2007-01-31 16:45:01 +01:00
|
|
|
TS_OUTDIR="output"
|
|
|
|
TS_DIFFDIR="diff"
|
|
|
|
TS_EXPECTEDDIR="expected"
|
|
|
|
TS_INPUTDIR="input"
|
2007-01-04 14:23:48 +01:00
|
|
|
|
2007-01-03 01:07:55 +01:00
|
|
|
function ts_skip {
|
|
|
|
echo " IGNORE ($1)"
|
|
|
|
exit 0
|
|
|
|
}
|
|
|
|
|
2007-05-16 00:41:14 +02:00
|
|
|
function ts_skip_nonroot {
|
|
|
|
if [ $UID != 0 ]; then
|
|
|
|
ts_skip "not root permissions"
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2007-03-19 23:27:40 +01:00
|
|
|
function ts_failed {
|
|
|
|
if [ x"$1" == x"" ]; then
|
|
|
|
echo " FAILED ($TS_NAME)"
|
|
|
|
else
|
|
|
|
echo " FAILED ($1)"
|
|
|
|
fi
|
|
|
|
exit 1
|
|
|
|
}
|
|
|
|
|
|
|
|
function ts_ok {
|
|
|
|
if [ x"$1" == x"" ]; then
|
|
|
|
echo " OK"
|
|
|
|
else
|
|
|
|
echo " OK ($1)"
|
|
|
|
fi
|
|
|
|
exit 0
|
|
|
|
}
|
|
|
|
|
2007-01-04 14:23:48 +01:00
|
|
|
function ts_init {
|
2007-01-30 13:18:51 +01:00
|
|
|
export LANG="en_US.UTF-8":
|
2007-01-04 14:23:48 +01:00
|
|
|
TS_NAME=$(basename $0)
|
|
|
|
if [ ! -d $TS_OUTDIR ]; then
|
|
|
|
mkdir -p $TS_OUTDIR
|
|
|
|
fi
|
|
|
|
if [ ! -d $TS_DIFFDIR ]; then
|
|
|
|
mkdir -p $TS_DIFFDIR
|
|
|
|
fi
|
|
|
|
TS_OUTPUT="$TS_OUTDIR/$TS_NAME"
|
|
|
|
TS_DIFF="$TS_DIFFDIR/$TS_NAME"
|
|
|
|
TS_EXPECTED="$TS_EXPECTEDDIR/$TS_NAME"
|
2007-01-30 13:18:51 +01:00
|
|
|
TS_INPUT="$TS_INPUTDIR/$TS_NAME"
|
2007-01-04 14:23:48 +01:00
|
|
|
|
2007-01-03 00:42:23 +01:00
|
|
|
rm -f $TS_OUTPUT
|
|
|
|
|
2007-01-04 14:23:48 +01:00
|
|
|
printf "%15s: %-25s ..." "$TS_COMPONENT" "$TS_DESC"
|
|
|
|
}
|
|
|
|
|
|
|
|
function ts_finalize {
|
|
|
|
local res=0
|
|
|
|
|
|
|
|
if [ -s $TS_EXPECTED ]; then
|
|
|
|
if [ -s $TS_OUTPUT ]; then
|
|
|
|
diff -u $TS_EXPECTED $TS_OUTPUT > $TS_DIFF
|
|
|
|
if [ -s $TS_DIFF ]; then
|
|
|
|
res=1
|
|
|
|
fi
|
|
|
|
else
|
2007-01-30 13:18:51 +01:00
|
|
|
res=1
|
2007-01-04 14:23:48 +01:00
|
|
|
fi
|
2007-01-03 00:42:23 +01:00
|
|
|
else
|
|
|
|
echo " IGNORE (expected output undefined)"
|
|
|
|
exit 0
|
2007-01-04 14:23:48 +01:00
|
|
|
fi
|
|
|
|
if [ $res -eq 0 ]; then
|
2007-03-19 23:27:40 +01:00
|
|
|
ts_ok $1
|
2007-01-04 14:23:48 +01:00
|
|
|
else
|
2007-03-19 23:27:40 +01:00
|
|
|
ts_failed $1
|
2007-01-04 14:23:48 +01:00
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2007-05-16 01:38:13 +02:00
|
|
|
function ts_device_init {
|
|
|
|
IMAGE="$TS_OUTDIR/$TS_NAME.img"
|
|
|
|
IMAGE_RE=$( echo "$IMAGE" | sed 's:/:\\/:g' )
|
2007-03-19 23:27:40 +01:00
|
|
|
|
2007-05-16 01:38:13 +02:00
|
|
|
dd if=/dev/zero of="$IMAGE" bs=1M count=5 &> /dev/null
|
2007-03-19 23:27:40 +01:00
|
|
|
|
2007-05-16 01:38:13 +02:00
|
|
|
$TS_CMD_LOSETUP -f "$IMAGE" 2>&1 >> $TS_OUTPUT
|
|
|
|
DEVICE=$( $TS_CMD_LOSETUP -a | gawk 'BEGIN {FS=":"} /'$IMAGE_RE'/ { print $1 }' )
|
|
|
|
|
|
|
|
if [ -z "$DEVICE" ]; then
|
|
|
|
ts_device_deinit
|
|
|
|
return 1 # error
|
|
|
|
fi
|
|
|
|
|
|
|
|
return 0 # succes
|
|
|
|
}
|
|
|
|
|
|
|
|
function ts_device_deinit {
|
|
|
|
if [ -b "$DEVICE" ]; then
|
|
|
|
$TS_CMD_UMOUNT "$DEVICE" &> /dev/null
|
|
|
|
$TS_CMD_LOSETUP -d "$DEVICE" &> /dev/null
|
|
|
|
rm -f "$IMAGE" &> /dev/null
|
|
|
|
fi
|
|
|
|
}
|
2007-05-16 02:07:07 +02:00
|
|
|
|
|
|
|
function ts_udev_loop_support {
|
|
|
|
ldd $TS_CMD_MOUNT | grep -q 'libvolume_id' 2>&1 >> $TS_OUTPUT
|
|
|
|
if [ "$?" == "0" ]; then
|
|
|
|
HAS_VOLUMEID="yes"
|
|
|
|
fi
|
|
|
|
if [ -n "$HAS_VOLUMEID" ] && [ ! -L "/dev/disk/by-label/$1" ]; then
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
2007-05-16 01:38:13 +02:00
|
|
|
|