46 lines
1.4 KiB
Bash
46 lines
1.4 KiB
Bash
#!/bin/sh
|
|
#
|
|
# Transfer a large chunk of data with "--sync" and check data correctness
|
|
# afterwards, both with and without rate limits. Note that this doesn't
|
|
# check that fdatasync() is actually being called, it just checks that data
|
|
# is not being corrupted.
|
|
|
|
# Dummy assignments for "shellcheck".
|
|
testSubject="${testSubject:-false}"; workFile1="${workFile1:-.tmp1}"; workFile2="${workFile2:-.tmp2}"
|
|
|
|
# generate some data
|
|
dd if=/dev/urandom of="${workFile1}" bs=1024 count=2560 2>/dev/null
|
|
|
|
inputChecksum=$(cksum "${workFile1}" | awk '{print $1}')
|
|
|
|
# read through pv and test afterwards
|
|
"${testSubject}" -q "${workFile1}" > "${workFile2}"
|
|
outputChecksum=$(cksum "${workFile2}" | awk '{print $1}')
|
|
|
|
if ! test "${inputChecksum}" = "${outputChecksum}"; then
|
|
echo "checksum mismatched even without \"--sync\""
|
|
exit 1
|
|
fi
|
|
|
|
# Same again but with "--sync"
|
|
|
|
"${testSubject}" -Y -q "${workFile1}" > "${workFile2}"
|
|
outputChecksum=$(cksum "${workFile2}" | awk '{print $1}')
|
|
if ! test "${inputChecksum}" = "${outputChecksum}"; then
|
|
echo "checksum mismatched with \"--sync\""
|
|
exit 1
|
|
fi
|
|
|
|
# Now with "--sync" and "--rate-limit"
|
|
|
|
"${testSubject}" -Y -L 800K -q "${workFile1}" > "${workFile2}"
|
|
outputChecksum=$(cksum "${workFile2}" | awk '{print $1}')
|
|
if ! test "${inputChecksum}" = "${outputChecksum}"; then
|
|
echo "checksum mismatched with \"--sync\" + \"--rate-limit\""
|
|
exit 1
|
|
fi
|
|
|
|
exit 0
|
|
|
|
# EOF
|