---
tests/Makefile.am | 3 ++
tests/test-shebang-crlf.sh | 59 ++++++++++++++++++++++++++++++++++++++
tests/shebang-crlf.py | 2 ++
3 files changed, 64 insertions(+)
diff --git a/tests/Makefile.am b/tests/Makefile.am
index f03ed2cb9a..16f7d408b0 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -1287,6 +1287,7 @@ TESTS += \
test-python-peer.sh \
test-python-thread-model.sh \
test-shebang-python.sh \
+ test-shebang-crlf.sh \
$(NULL)
EXTRA_DIST += \
python-error.py \
@@ -1298,6 +1299,7 @@ EXTRA_DIST += \
python-peer.py \
python-thread-model.py \
shebang.py \
+ shebang-crlf.py \
test-python-error.sh \
test-python-exception.sh \
test-python-export-name.sh \
@@ -1309,6 +1311,7 @@ EXTRA_DIST += \
test-python-thread-model.sh \
test-python.sh \
test-shebang-python.sh \
+ test-shebang-crlf.sh \
test_python.py \
$(NULL)
diff --git a/tests/test-shebang-crlf.sh b/tests/test-shebang-crlf.sh
new file mode 100755
index 0000000000..c11d5c0b89
--- /dev/null
+++ b/tests/test-shebang-crlf.sh
@@ -0,0 +1,59 @@
+#!/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.
+
+# See also: shebang-crlf.py
+#
+# CRLF shebang line used to cause a confusing error message:
+# -plugin.so: cannot open shared object file: No such file or directoryon
+# (In fact what is happening is that the first part of the message
+# is hidden before a CR character.)
+#
+# We still expect this script to fail, but for the error not to be
+# confusing.
+
+source ./functions.sh
+set -e
+set -x
+
+script=$abs_top_srcdir/tests/shebang-crlf.py
+if test ! -x "$script"; then
+ echo "$0: could not locate $script or not executable"
+ exit 1
+fi
+
+out="test-shebang-crlf.out"
+rm -f $out
+cleanup_fn rm -f $out
+
+$script --verbose --dump-plugin 2> $out ||:
+cat $out
+grep -E 'python\\r' $out
diff --git a/tests/shebang-crlf.py b/tests/shebang-crlf.py
new file mode 100755
index 0000000000..2713f2c3cb
--- /dev/null
+++ b/tests/shebang-crlf.py
@@ -0,0 +1,2 @@
+#!../nbdkit python
+# See also: test-shebang-crlf.sh
--
2.44.0