mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
populate: optionally fill the filesystem when populating fs
Be a little more flexible in how much we fill up a pre-populated filesystem. For the field fuzzing tests, we don't need the extra space/inode usage and therefore won't want much at all. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Eryu Guan <eguan@redhat.com> Signed-off-by: Eryu Guan <eguan@redhat.com>
This commit is contained in:
committed by
Eryu Guan
parent
8eaf59b7c3
commit
a7f8305f9a
+29
-8
@@ -73,26 +73,39 @@ __populate_create_attr() {
|
||||
done
|
||||
}
|
||||
|
||||
# Fill up 60% of the remaining free space
|
||||
# Fill up some percentage of the remaining free space
|
||||
__populate_fill_fs() {
|
||||
dir="$1"
|
||||
pct="$2"
|
||||
test -z "${pct}" && pct=60
|
||||
|
||||
SRC_SZ="$(du -ks "${SRCDIR}" | cut -f 1)"
|
||||
mkdir -p "${dir}/test/1"
|
||||
cp -pRdu "${dir}"/S_IFREG* "${dir}/test/1/"
|
||||
|
||||
SRC_SZ="$(du -ks "${dir}/test/1" | cut -f 1)"
|
||||
FS_SZ="$(( $(stat -f "${dir}" -c '%a * %S') / 1024 ))"
|
||||
|
||||
NR="$(( (FS_SZ * ${pct} / 100) / SRC_SZ ))"
|
||||
test "${NR}" -lt 1 && NR=1
|
||||
|
||||
seq 1 "${NR}" | while read nr; do
|
||||
cp -pRdu "${SRCDIR}" "${dir}/test.${nr}" >> $seqres.full 2>&1
|
||||
echo "FILL FS"
|
||||
echo "src_sz $SRC_SZ fs_sz $FS_SZ nr $NR"
|
||||
seq 2 "${NR}" | while read nr; do
|
||||
cp -pRdu "${dir}/test/1" "${dir}/test/${nr}"
|
||||
done
|
||||
}
|
||||
|
||||
# Populate an XFS on the scratch device with (we hope) all known
|
||||
# types of metadata block
|
||||
_scratch_xfs_populate() {
|
||||
fill=1
|
||||
|
||||
for arg in $@; do
|
||||
case "${arg}" in
|
||||
"nofill")
|
||||
fill=0;;
|
||||
esac
|
||||
done
|
||||
|
||||
_scratch_mount
|
||||
blksz="$(stat -f -c '%s' "${SCRATCH_MNT}")"
|
||||
dblksz="$(xfs_info "${SCRATCH_MNT}" | grep naming.*bsize | sed -e 's/^.*bsize=//g' -e 's/\([0-9]*\).*$/\1/g')"
|
||||
@@ -225,7 +238,7 @@ _scratch_xfs_populate() {
|
||||
|
||||
# Copy some real files (xfs tests, I guess...)
|
||||
echo "+ real files"
|
||||
__populate_fill_fs "${SCRATCH_MNT}" 5
|
||||
test $fill -ne 0 && __populate_fill_fs "${SCRATCH_MNT}" 5
|
||||
|
||||
umount "${SCRATCH_MNT}"
|
||||
}
|
||||
@@ -233,6 +246,15 @@ _scratch_xfs_populate() {
|
||||
# Populate an ext4 on the scratch device with (we hope) all known
|
||||
# types of metadata block
|
||||
_scratch_ext4_populate() {
|
||||
fill=1
|
||||
|
||||
for arg in $@; do
|
||||
case "${arg}" in
|
||||
"nofill")
|
||||
fill=0;;
|
||||
esac
|
||||
done
|
||||
|
||||
_scratch_mount
|
||||
blksz="$(stat -f -c '%s' "${SCRATCH_MNT}")"
|
||||
dblksz="${blksz}"
|
||||
@@ -300,8 +322,7 @@ _scratch_ext4_populate() {
|
||||
|
||||
# Copy some real files (xfs tests, I guess...)
|
||||
echo "+ real files"
|
||||
__populate_fill_fs "${SCRATCH_MNT}"
|
||||
cp -pRdu --reflink=always "${SCRATCH_MNT}/S_IFREG.FMT_ETREE" "${SCRATCH_MNT}/S_IREG.FMT_ETREE.REFLINK" 2> /dev/null
|
||||
test $fill -ne 0 && __populate_fill_fs "${SCRATCH_MNT}" 5
|
||||
|
||||
umount "${SCRATCH_MNT}"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user