diff options
Diffstat (limited to 'tests/015-cksumpipe')
-rw-r--r-- | tests/015-cksumpipe | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/tests/015-cksumpipe b/tests/015-cksumpipe new file mode 100644 index 0000000..665d729 --- /dev/null +++ b/tests/015-cksumpipe @@ -0,0 +1,53 @@ +#!/bin/sh +# +# Transfer a large chunk of data through pv using pipes, sending it in a +# bursty fashion, and check data correctness afterwards. + +rm -f $TMP1 $TMP2 2>/dev/null + +# exit on non-zero return codes +set -e + +# generate some data +dd if=/dev/urandom of=$TMP1 bs=1024 count=10240 2>/dev/null + +CKSUM1=`cksum $TMP1 | awk '{print $1}'` + +# read through pv and test afterwards +( +dd if=$TMP1 bs=1 count=9000 +sleep 1 +dd if=$TMP1 bs=1 skip=9000 count=1240 +sleep 1 +dd if=$TMP1 bs=1024 skip=10 count=1014 +sleep 1 +dd if=$TMP1 bs=1024 skip=1024 count=1024 +sleep 1 +dd if=$TMP1 bs=1024 skip=2048 +) 2>/dev/null | $PROG -q -L 2M | cat > $TMP2 + +CKSUM2=`cksum $TMP2 | awk '{print $1}'` + +test "x$CKSUM1" = "x$CKSUM2" + +# same again but with one less pipe +( +dd if=$TMP1 bs=1 count=9000 +sleep 1 +dd if=$TMP1 bs=1 skip=9000 count=1240 +sleep 1 +dd if=$TMP1 bs=1024 skip=10 count=1014 +sleep 1 +dd if=$TMP1 bs=1024 skip=1024 count=1024 +sleep 1 +dd if=$TMP1 bs=1024 skip=2048 +) 2>/dev/null | $PROG -q -L 2M > $TMP2 + +CKSUM2=`cksum $TMP2 | awk '{print $1}'` + +test "x$CKSUM1" = "x$CKSUM2" + +# clean up +rm -f $TMP1 $TMP2 2>/dev/null + +# EOF |