|
| 1 | +#!/usr/bin/env bash |
| 2 | +# nbdkit |
| 3 | +# Copyright (C) 2014-2021 Red Hat Inc. |
| 4 | +# |
| 5 | +# Redistribution and use in source and binary forms, with or without |
| 6 | +# modification, are permitted provided that the following conditions are |
| 7 | +# met: |
| 8 | +# |
| 9 | +# * Redistributions of source code must retain the above copyright |
| 10 | +# notice, this list of conditions and the following disclaimer. |
| 11 | +# |
| 12 | +# * Redistributions in binary form must reproduce the above copyright |
| 13 | +# notice, this list of conditions and the following disclaimer in the |
| 14 | +# documentation and/or other materials provided with the distribution. |
| 15 | +# |
| 16 | +# * Neither the name of Red Hat nor the names of its contributors may be |
| 17 | +# used to endorse or promote products derived from this software without |
| 18 | +# specific prior written permission. |
| 19 | +# |
| 20 | +# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND |
| 21 | +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, |
| 22 | +# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A |
| 23 | +# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR |
| 24 | +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| 25 | +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| 26 | +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF |
| 27 | +# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
| 28 | +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
| 29 | +# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT |
| 30 | +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
| 31 | +# SUCH DAMAGE. |
| 32 | + |
| 33 | +# Test nbdkit --run (captive nbdkit) + --tls option + $uri + $tls |
| 34 | +# shell variables. |
| 35 | +# |
| 36 | +# In nbdkit < 1.26 the $uri shell variable was not constructed |
| 37 | +# correctly. |
| 38 | +# |
| 39 | +# Also in nbdkit < 1.26 there was no $tls shell variable. |
| 40 | + |
| 41 | +source ./functions.sh |
| 42 | +set -e |
| 43 | +set -x |
| 44 | + |
| 45 | +requires_run |
| 46 | +requires nbdinfo --version |
| 47 | + |
| 48 | +# XXX Check that libnbd was built with TLS support. |
| 49 | + |
| 50 | +# Does the nbdkit binary support TLS? |
| 51 | +if ! nbdkit --dump-config | grep -sq tls=yes; then |
| 52 | + echo "$0: nbdkit built without TLS support" |
| 53 | + exit 77 |
| 54 | +fi |
| 55 | + |
| 56 | +# Did we create the PKI files? |
| 57 | +# Probably 'certtool' is missing. |
| 58 | +pkidir="$PWD/pki" |
| 59 | +if [ ! -f "$pkidir/ca-cert.pem" ]; then |
| 60 | + echo "$0: PKI files were not created by the test harness" |
| 61 | + exit 77 |
| 62 | +fi |
| 63 | + |
| 64 | +out=test-captive-tls.out |
| 65 | +cleanup_fn rm -f $out |
| 66 | +rm -f $out |
| 67 | + |
| 68 | +LANG=C \ |
| 69 | +nbdkit -U - --tls=require --tls-certificates="$pkidir" \ |
| 70 | + -D nbdkit.tls.session=1 \ |
| 71 | + null \ |
| 72 | + --run '[ "x$tls" = "x2" ] && nbdinfo "$uri"' > $out |
| 73 | +grep "newstyle-fixed with TLS" $out |
0 commit comments