From: Christian Goeschel Ndjomouo Date: Sun, 22 Feb 2026 01:21:05 +0000 (-0500) Subject: blkid: add --garbage-collect test X-Git-Tag: v2.43-devel~52^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ebadfc7e3374941425d6d4a48ee111bb7bb4c40a;p=thirdparty%2Futil-linux.git blkid: add --garbage-collect test Signed-off-by: Christian Goeschel Ndjomouo --- diff --git a/tests/ts/blkid/cache b/tests/ts/blkid/cache index 2c5e59ec8..bcce18563 100755 --- a/tests/ts/blkid/cache +++ b/tests/ts/blkid/cache @@ -39,10 +39,38 @@ ts_device_init | sed -e "s|$TS_LODEV|DEVICE|" \ >> "$TS_OUTPUT" 2>> "$TS_ERRLOG" -cat "$BLKID_FILE" \ +cat "$BLKID_FILE" | grep "$TS_LODEV" \ | sed -e 's/DEVNO="[^"]*"/DEVNO=""/' \ -e 's/TIME="[^"]*"/TIME=""/' \ -e "s|$TS_LODEV|DEVICE|" \ >> "$TS_OUTPUT" +# Test the cache garbage collection by detaching a newly registered +# loop device before garbage collection. +# We expect $TS_LODEV (/dev/loopX) to not be present in $BLKID_FILE +# anymore after the operation. + +# Initialize another loop device to keep at least the previously +# attached one in the cache. We do this because otherwise the list of +# block devices (blkid_cache->bic_devs) will be empty and that will +# prevent an update of the cache. +# See libblkid/src/save.c::blkid_flush_cache() +ts_device_init + +"$TS_CMD_MKSWAP" --quiet --pagesize 4096 --endianness little \ + --uuid 221ffb62-649b-4f86-87ae-0ebd15daf169 \ + "$TS_LODEV" &>/dev/null + +# Update the cache with new loop device +"$TS_CMD_BLKID" &>/dev/null + +ts_device_deinit "$TS_LODEV" + +"$TS_CMD_BLKID" --garbage-collect &>/dev/null + +if grep "$TS_LODEV" "$BLKID_FILE" &>/dev/null ; then + ts_failed "cache garbage collection failed" +fi + + ts_finalize