--- tests/Makefile.am | 4 ++ tests/test-bad-filter-name.sh | 74 +++++++++++++++++++++++++++++++++++ tests/test-bad-plugin-name.sh | 68 ++++++++++++++++++++++++++++++++ 3 files changed, 146 insertions(+)
diff --git a/tests/Makefile.am b/tests/Makefile.am index 6bfa3b6fa5..1ba7991fe6 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -248,6 +248,8 @@ TESTS += \ test-probe-plugin.sh \ test-probe-filter-dump-plugin.sh \ test-no-parameters.sh \ + test-bad-plugin-name.sh \ + test-bad-filter-name.sh \ test-start.sh \ test-single.sh \ test-single-from-file.sh \ @@ -283,6 +285,8 @@ TESTS += \ $(NULL) endif EXTRA_DIST += \ + test-bad-filter-name.sh \ + test-bad-plugin-name.sh \ test-captive.sh \ test-captive-tls.sh \ test-debug-flags.sh \ diff --git a/tests/test-bad-filter-name.sh b/tests/test-bad-filter-name.sh new file mode 100755 index 0000000000..eb53410c07 --- /dev/null +++ b/tests/test-bad-filter-name.sh @@ -0,0 +1,74 @@ +#!/usr/bin/env bash +# nbdkit +# Copyright Red Hat +# +# 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. + +# Test bad filter names and the resulting error messages. + +source ./functions.sh +set -e +set -x + +# Because below we are bypassing the wrapper, we also have to attempt +# to rewrite the null plugin name. This is difficult to predict, so +# skip the test if not found. +null_plugin=../plugins/null/.libs/nbdkit-null-plugin.$SOEXT +requires test -x $null_plugin + +out="test-bad-filter-name.out" +rm -f $out +cleanup_fn rm -f $out + +# A name that could exist but does not. +# +# Note here we have to run the server directly because the wrapper +# will rewrite the filter name. +../server/nbdkit $null_plugin --filter=nosuchname 2>$out ||: +cat $out +grep 'nosuchname' $out +# The error message should suggest a Fedora or Debian package name: +grep 'nbdkit-nosuchname-filter' $out +grep 'nbdkit-filter-nosuchname' $out +# The error should mention the manual: +grep -F 'nbdkit(1)' $out + +# Valid but unusual short name. +nbdkit null --filter="filter@name" 2>$out ||: +cat $out +grep 'filter@name' $out +# The error message should NOT suggest a package name: +! grep 'nbdkit-filter@name-filter' $out + +# Test quoting of output strings. +nbdkit null --filter="$(printf 'bad\r')" 2>$out ||: +cat $out +grep 'bad\\r' $out +# The error message should NOT suggest a package name: +! grep 'nbdkit-bad.?-filter' $out diff --git a/tests/test-bad-plugin-name.sh b/tests/test-bad-plugin-name.sh new file mode 100755 index 0000000000..7735adc4bd --- /dev/null +++ b/tests/test-bad-plugin-name.sh @@ -0,0 +1,68 @@ +#!/usr/bin/env bash +# nbdkit +# Copyright Red Hat +# +# 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. + +# Test bad plugin names and the resulting error messages. + +source ./functions.sh +set -e +set -x + +out="test-bad-plugin-name.out" +rm -f $out +cleanup_fn rm -f $out + +# A name that could exist but does not. +# +# Note here we have to run the server directly because the wrapper +# will rewrite the plugin name. +../server/nbdkit nosuchname 2>$out ||: +cat $out +grep 'nosuchname' $out +# The error message should suggest a Fedora or Debian package name: +grep 'nbdkit-nosuchname-plugin' $out +grep 'nbdkit-plugin-nosuchname' $out +# The error should mention the manual: +grep -F 'nbdkit(1)' $out + +# Valid but unusual short name. +nbdkit "plugin@name" 2>$out ||: +cat $out +grep 'plugin@name' $out +# The error message should NOT suggest a package name: +! grep 'nbdkit-plugin@name-plugin' $out + +# Test quoting of output strings (also: test-shebang-crlf.sh) +nbdkit "$(printf 'bad\r')" 2>$out ||: +cat $out +grep 'bad\\r' $out +# The error message should NOT suggest a package name: +! grep 'nbdkit-bad.?-plugin' $out -- 2.44.0 _______________________________________________ Libguestfs mailing list -- guestfs@lists.libguestfs.org To unsubscribe send an email to guestfs-le...@lists.libguestfs.org