tests: fix blkid cache usage

Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
Karel Zak 2007-10-12 00:33:01 +02:00
parent 031a4a7ab1
commit ec3f45d33c
2 changed files with 22 additions and 10 deletions

View File

@ -155,14 +155,28 @@ function ts_die {
ts_finalize
}
function ts_backup_cache {
if [ "$TS_HAS_VOLUMEID" != "yes" ] && [ -f "$TS_BLKIDCACHE" ]; then
cp $TS_BLKIDCACHE $OUTDIR/$TS_NAME.cache
fi
}
function ts_restore_cache {
if [ "$TS_HAS_VOLUMEID" != "yes" ] && [ -f "$TS_BLKIDCACHE" ] && [ -s "$OUTDIR/$TS_NAME.cache" ]; then
# We have to remove the device from cache otherwise
# libblkid will reuse cached information. The cache
# refresh time is 2 seconds -- that's too long. We
# re-use the same device more quickly. --kzak
mv -f $OUTDIR/$TS_NAME.cache $TS_BLKIDCACHE
fi
}
function ts_device_init {
local IMAGE="$TS_OUTDIR/$TS_NAME.img"
local IMAGE_RE=$( echo "$IMAGE" | sed 's:/:\\/:g' )
local DEV=""
if [ "$TS_HAS_VOLUMEID" != "yes" ] && [ -f "$TS_BLKIDCACHE" ]; then
cp $TS_BLKIDCACHE $OUTDIR/$TS_NAME.cache
fi
ts_backup_cache
dd if=/dev/zero of="$IMAGE" bs=1M count=5 &> /dev/null
@ -178,19 +192,15 @@ function ts_device_init {
return 0 # succes
}
function ts_device_deinit {
local DEV="$1"
if [ -b "$DEV" ]; then
$TS_CMD_UMOUNT "$DEV" &> /dev/null
$TS_CMD_LOSETUP -d "$DEV" &> /dev/null
if [ "$TS_HAS_VOLUMEID" != "yes" ] && [ -f "$TS_BLKIDCACHE" ] && [ -s "$OUTDIR/$TS_NAME.cache" ]; then
# We have to remove the device from cache otherwise
# libblkid will reuse cached information. The cache
# refresh time is 2 seconds -- that's too long. We
# re-use the same device more quickly. --kzak
mv -f $OUTDIR/$TS_NAME.cache $TS_BLKIDCACHE
fi
ts_restore_cache
fi
}

View File

@ -62,6 +62,7 @@ md5sum $IMAGE 2>&1 >> $TS_OUTPUT
echo >> $TS_OUTPUT
ts_log "create loop device from image"
ts_backup_cache
DEVICE=$( $TS_CMD_LOSETUP -f )
$TS_CMD_LOSETUP $DEVICE $IMAGE 2>&1 >> $TS_OUTPUT
@ -90,5 +91,6 @@ echo >> $TS_OUTPUT
ts_log "umount the image"
$TS_CMD_UMOUNT $DEVICE
$TS_CMD_LOSETUP -d $DEVICE 2>&1 >> $TS_OUTPUT
ts_restore_cache
ts_finalize