From 838ec052abe63056434c08ea80f4609e697dad0f Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 10 Aug 2021 09:11:43 +0100 Subject: [PATCH] delay: Test delay-open and delay-close (cherry picked from commit 3caabaf87ec744b863b50b5bf77a9c1b93a7c3e0) --- tests/Makefile.am | 12 +++++++-- tests/test-delay-close.sh | 54 +++++++++++++++++++++++++++++++++++++++ tests/test-delay-open.sh | 49 +++++++++++++++++++++++++++++++++++ 3 files changed, 113 insertions(+), 2 deletions(-) create mode 100755 tests/test-delay-close.sh create mode 100755 tests/test-delay-open.sh diff --git a/tests/Makefile.am b/tests/Makefile.am index edc8d66d..e61c5829 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1425,8 +1425,16 @@ EXTRA_DIST += \ $(NULL) # delay filter tests. -TESTS += test-delay-shutdown.sh -EXTRA_DIST += test-delay-shutdown.sh +TESTS += \ + test-delay-close.sh \ + test-delay-open.sh \ + test-delay-shutdown.sh \ + $(NULL) +EXTRA_DIST += \ + test-delay-close.sh \ + test-delay-open.sh \ + test-delay-shutdown.sh \ + $(NULL) LIBNBD_TESTS += test-delay test_delay_SOURCES = test-delay.c diff --git a/tests/test-delay-close.sh b/tests/test-delay-close.sh new file mode 100755 index 00000000..1de305f5 --- /dev/null +++ b/tests/test-delay-close.sh @@ -0,0 +1,54 @@ +#!/usr/bin/env bash +# nbdkit +# Copyright (C) 2018-2021 Red Hat Inc. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# * Neither the name of Red Hat nor the names of its contributors may be +# used to endorse or promote products derived from this software without +# specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. + +source ./functions.sh +set -e +set -x + +requires_run +requires_plugin null +requires_filter delay +requires nbdsh --version + +# Test delay-close with a well-behaved client. + +nbdkit -U - null --filter=delay delay-close=3 \ + --run ' +start_t=$SECONDS +nbdsh -u "$uri" -c "h.shutdown()" +end_t=$SECONDS + +if [ $((end_t - start_t)) -lt 3 ]; then + echo "$0: delay filter failed: delay-close=3 caused delay < 3 seconds" + exit 1 +fi +' diff --git a/tests/test-delay-open.sh b/tests/test-delay-open.sh new file mode 100755 index 00000000..2a74e44c --- /dev/null +++ b/tests/test-delay-open.sh @@ -0,0 +1,49 @@ +#!/usr/bin/env bash +# nbdkit +# Copyright (C) 2018-2021 Red Hat Inc. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# * Neither the name of Red Hat nor the names of its contributors may be +# used to endorse or promote products derived from this software without +# specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. + +source ./functions.sh +set -e +set -x + +requires_run +requires_plugin null +requires_filter delay +requires nbdinfo --version + +start_t=$SECONDS +nbdkit -U - null --filter=delay delay-open=3 --run 'nbdinfo "$uri"' +end_t=$SECONDS + +if [ $((end_t - start_t)) -lt 3 ]; then + echo "$0: delay filter failed: delay-open=3 caused delay < 3 seconds" + exit 1 +fi -- 2.31.1