[PATCH 2/2] nbd-trplay: Add test case
Add a short test case for nbd-trplay
Signed-off-by: Manfred Spraul <manfred.spraul@de.bosch.com>
---
tests/run/Makefile.am | 5 +--
tests/run/replay-test.tr | Bin 0 -> 116 bytes
tests/run/simple_test | 65 +++++++++++++++++++++++++++++++++++++++
3 files changed, 68 insertions(+), 2 deletions(-)
create mode 100644 tests/run/replay-test.tr
diff --git a/tests/run/Makefile.am b/tests/run/Makefile.am
index f41eb8d..4c2f635 100644
--- a/tests/run/Makefile.am
+++ b/tests/run/Makefile.am
@@ -4,7 +4,7 @@ else
TLSSRC =
endif
TESTS_ENVIRONMENT=$(srcdir)/simple_test
-TESTS = cfg1 cfgmulti cfgnew cfgsize write flush integrity dirconfig list inetd \
+TESTS = cfg1 cfgmulti cfgnew cfgsize write flush integrity replay dirconfig list inetd \
rowrite tree rotree unix integrityhuge handshake tls tlswrongcert tlshuge
XFAIL_TESTS=@RUN_XFAIL@
check_PROGRAMS = nbd-tester-client
@@ -19,7 +19,7 @@ nbd_tester_client_CFLAGS += @GnuTLS_CFLAGS@
nbd_tester_client_LDADD += @GnuTLS_LIBS@
endif
CLEANFILES = buffer.c crypto-gnutls.c cliserv.c
-EXTRA_DIST = integrity-test.tr integrityhuge-test.tr simple_test certs/client-key.pem certs/client-cert.pem certs/server-cert.pem certs/ca-cert.pem certs/ca.info certs/client.info certs/server-key.pem certs/ca-key.pem certs/server.info certs/README.md certs/selfsigned-cert.pem certs/selfsigned-key.pem
+EXTRA_DIST = integrity-test.tr integrityhuge-test.tr replay-test.tr simple_test certs/client-key.pem certs/client-cert.pem certs/server-cert.pem certs/ca-cert.pem certs/ca.info certs/client.info certs/server-key.pem certs/ca-key.pem certs/server.info certs/README.md certs/selfsigned-cert.pem certs/selfsigned-key.pem
cfg1:
cfgmulti:
cfgnew:
@@ -27,6 +27,7 @@ cfgsize:
write:
flush:
integrity:
+replay:
integrityhuge:
dirconfig:
list:
diff --git a/tests/run/replay-test.tr b/tests/run/replay-test.tr
new file mode 100644
index 0000000000000000000000000000000000000000..f9046c21500291911e61cc4e5d4f790d5a2ced3b
GIT binary patch
literal 116
zcmY#Qm@3S`z`$q=B7hhI1b`G1L%K`a3=khCrwUce0+t2IfPfhg3&7RF<e+Mqz)H{v
E025UQz5oCK
literal 0
HcmV?d00001
diff --git a/tests/run/simple_test b/tests/run/simple_test
index fe317f3..80dede8 100755
--- a/tests/run/simple_test
+++ b/tests/run/simple_test
@@ -16,6 +16,7 @@ tmpdir=`mktemp -d $TMPDIR/tmp.XXXXXX`
conffile=${tmpdir}/nbd.conf
pidfile=${tmpdir}/nbd.pid
tmpnam=${tmpdir}/nbd.dd
+lognam=${tmpdir}/nbd.tr
mydir=$(dirname $0)
certdir=$($REALPATH ${mydir}/certs)
cleanup="$2"
@@ -48,6 +49,21 @@ abort() {
kill -INT $$
}
+replaycheck() {
+# $1: correct md5 value
+# $2: count
+ dd if=/dev/zero of=${tmpnam}-$2 bs=1024 count=4096 >/dev/null 2>&1
+ ../../nbd-trplay -i ${tmpnam}-$2 -l $lognam -m $2 -b 512 > /dev/null
+ sol=$(md5sum < ${tmpnam}-$2)
+ if [ "$sol" = "$1 -" ];
+ then
+ return 0
+ else
+ echo "mismatch with count $2: expected $1, got $sol"
+ return 1
+ fi
+}
+
trap -- cleanup EXIT
trap -- abort INT
@@ -247,6 +263,55 @@ EOF
./nbd-tester-client -N export1 -i -t ${mydir}/integrityhuge-test.tr localhost
retval=$?
;;
+
+ */replay)
+ # Check replay app
+ cat >${conffile} <<EOF
+[generic]
+[export1]
+ exportname = $tmpnam
+ flush = true
+ fua = true
+ transactionlog = $lognam
+ datalog = true
+ flush = true
+ fua = true
+ rotational = true
+ filesize = 52428800
+ temporary = true
+EOF
+ ../../nbd-server -C ${conffile} -p ${pidfile} &
+ PID=$!
+ sleep $DELAY
+ ./nbd-tester-client -N export1 -i -t ${mydir}/replay-test.tr localhost
+ retval=$?
+ if [ $retval -eq 0 ]
+ then
+ replaycheck 65135e9511b4c519a0474e4543d52dc2 1
+ retval=$?
+ fi
+ if [ $retval -eq 0 ]
+ then
+ replaycheck c571c5b1c190e68d0bcd8bce8861ad1b 3
+ retval=$?
+ fi
+ if [ $retval -eq 0 ]
+ then
+ replaycheck fd3065799a842ce227125f3a2282bf79 5
+ retval=$?
+ fi
+ if [ $retval -eq 0 ]
+ then
+ replaycheck f74123f1b41113b9fec915039e09ce66 9
+ retval=$?
+ fi
+ if [ $retval -eq 0 ]
+ then
+ replaycheck f74123f1b41113b9fec915039e09ce66 10
+ retval=$?
+ fi
+ ;;
+
*/list)
# List exports
# This only works if we built nbd-client, which only exists on
--
2.35.1
Reply to: