119 lines
2.1 KiB
Bash
119 lines
2.1 KiB
Bash
|
#!/usr/bin/env bash
|
||
|
testdir=$(readlink -f "$(dirname "$0")")
|
||
|
rootdir=$(readlink -f "$testdir/../../")
|
||
|
source "$testdir/common.sh"
|
||
|
|
||
|
cleanup() {
|
||
|
rm $aio_disk
|
||
|
rm $file1
|
||
|
rm $file2
|
||
|
rm $file3
|
||
|
}
|
||
|
|
||
|
prepare() {
|
||
|
truncate $aio_disk --size 104857600
|
||
|
|
||
|
dd if=/dev/zero of=$file1 bs=4M count=1
|
||
|
dd if=/dev/zero of=$file1 bs=4M count=1 seek=4
|
||
|
dd if=/dev/zero of=$file1 bs=4M count=1 seek=8
|
||
|
}
|
||
|
|
||
|
file_to_file() {
|
||
|
local stat1_s stat1_b
|
||
|
local stat2_s stat2_b
|
||
|
|
||
|
local -A method_bdev_aio_create_0=(
|
||
|
["filename"]=$aio_disk
|
||
|
["name"]=$aio_bdev
|
||
|
["block_size"]=4096
|
||
|
)
|
||
|
|
||
|
local -A method_bdev_lvol_create_lvstore_1=(
|
||
|
["bdev_name"]=$aio_bdev
|
||
|
["lvs_name"]=$lvstore
|
||
|
)
|
||
|
|
||
|
"${DD_APP[@]}" \
|
||
|
--if="$file1" \
|
||
|
--of="$file2" \
|
||
|
--bs=12582912 \
|
||
|
--sparse \
|
||
|
--json <(gen_conf)
|
||
|
|
||
|
stat1_s=$(stat --printf='%s' $file1)
|
||
|
stat2_s=$(stat --printf='%s' $file2)
|
||
|
|
||
|
[[ $stat1_s == "$stat2_s" ]]
|
||
|
|
||
|
stat1_b=$(stat --printf='%b' $file1)
|
||
|
stat2_b=$(stat --printf='%b' $file2)
|
||
|
|
||
|
[[ $stat1_b == "$stat2_b" ]]
|
||
|
}
|
||
|
|
||
|
file_to_bdev() {
|
||
|
local -A method_bdev_aio_create_0=(
|
||
|
["filename"]=$aio_disk
|
||
|
["name"]=$aio_bdev
|
||
|
["block_size"]=4096
|
||
|
)
|
||
|
|
||
|
local -A method_bdev_lvol_create_1=(
|
||
|
["lvs_name"]=$lvstore
|
||
|
["lvol_name"]=$lvol
|
||
|
["size"]=37748736
|
||
|
["thin_provision"]=true
|
||
|
)
|
||
|
|
||
|
"${DD_APP[@]}" \
|
||
|
--if="$file2" \
|
||
|
--ob="$lvstore/$lvol" \
|
||
|
--bs=12582912 \
|
||
|
--sparse \
|
||
|
--json <(gen_conf)
|
||
|
}
|
||
|
|
||
|
bdev_to_file() {
|
||
|
local stat2_s stat2_b
|
||
|
local stat3_s stat3_b
|
||
|
|
||
|
local -A method_bdev_aio_create_0=(
|
||
|
["filename"]=$aio_disk
|
||
|
["name"]=$aio_bdev
|
||
|
["block_size"]=4096
|
||
|
)
|
||
|
|
||
|
"${DD_APP[@]}" \
|
||
|
--ib="$lvstore/$lvol" \
|
||
|
--of="$file3" \
|
||
|
--bs=12582912 \
|
||
|
--sparse \
|
||
|
--json <(gen_conf)
|
||
|
|
||
|
stat2_s=$(stat --printf='%s' $file2)
|
||
|
stat3_s=$(stat --printf='%s' $file3)
|
||
|
|
||
|
[[ $stat2_s == "$stat3_s" ]]
|
||
|
|
||
|
stat2_b=$(stat --printf='%b' $file2)
|
||
|
stat3_b=$(stat --printf='%b' $file3)
|
||
|
|
||
|
[[ $stat2_b == "$stat3_b" ]]
|
||
|
}
|
||
|
|
||
|
aio_disk="dd_sparse_aio_disk"
|
||
|
aio_bdev="dd_aio"
|
||
|
file1="file_zero1"
|
||
|
file2="file_zero2"
|
||
|
file3="file_zero3"
|
||
|
lvstore="dd_lvstore"
|
||
|
lvol="dd_lvol"
|
||
|
|
||
|
trap "cleanup" EXIT
|
||
|
|
||
|
prepare
|
||
|
|
||
|
run_test "dd_sparse_file_to_file" file_to_file
|
||
|
run_test "dd_sparse_file_to_bdev" file_to_bdev
|
||
|
run_test "dd_sparse_bdev_to_file" bdev_to_file
|