fill files with random data

snapshot data integrity test-case needs filesystem with random data.

Signed-off-by: Anand Jain <Anand.Jain@oracle.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
Anand Jain
2011-10-20 23:41:18 +08:00
committed by Christoph Hellwig
parent 26b97f0480
commit 2ef3d4e4c6
+14 -7
View File
@@ -1490,6 +1490,7 @@ _die()
exit 1
}
#takes files, randomdata
_nfiles()
{
f=0
@@ -1498,20 +1499,24 @@ _nfiles()
file=f$f
echo > $file
if [ $size -gt 0 ]; then
dd if=/dev/zero of=$file bs=1024 count=$size
if [ $2 == false ]; then
dd if=/dev/zero of=$file bs=1024 count=$size 2>&1 | _filter_dd
else
dd if=/dev/urandom of=$file bs=1024 count=$size 2>&1 | _filter_dd
fi
fi
let f=$f+1
done
}
# takes dirname, depth
# takes dirname, depth, randomdata
_descend()
{
dirname=$1; depth=$2
dirname=$1; depth=$2; randomdata=$3
mkdir $dirname || die "mkdir $dirname failed"
cd $dirname
_nfiles $files # files for this dir
_nfiles $files $randomdata # files for this dir and data type
[ $depth -eq 0 ] && return
let deep=$depth-1 # go 1 down
@@ -1529,7 +1534,7 @@ _descend()
# Populate a filesystem with inodes for performance experiments
#
# usage: populate [-v] [-n ndirs] [-f nfiles] [-d depth] [-r root] [-s size]
# usage: populate [-v] [-n ndirs] [-f nfiles] [-d depth] [-r root] [-s size] [-x]
#
_populate_fs()
{
@@ -1540,8 +1545,9 @@ _populate_fs()
depth=2 # depth of tree from root to leaves
verbose=false
root=root # path of initial root of directory tree
randomdata=false # -x data type urandom or zero
while getopts "d:f:n:r:s:v" c
while getopts "d:f:n:r:s:v:x" c
do
case $c in
d) depth=$OPTARG;;
@@ -1550,10 +1556,11 @@ _populate_fs()
s) size=$OPTARG;;
v) verbose=true;;
r) root=$OPTARG;;
x) randomdata=true;;
esac
done
_descend $root $depth
_descend $root $depth $randomdata
wait
cd $here