Blame Sanity/tls12/runtest.sh

ed1062e
#!/bin/bash
ed1062e
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
ed1062e
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ed1062e
#
ed1062e
#   runtest.sh of /CoreOS/lftp/Sanity/tls12
ed1062e
#   Description: Test TLS 1.2 support
ed1062e
#   Author: Martin Frodl <mfrodl@redhat.com>
ed1062e
#
ed1062e
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ed1062e
#
ed1062e
#   Copyright (c) 2016 Red Hat, Inc.
ed1062e
#
ed1062e
#   This program is free software: you can redistribute it and/or
ed1062e
#   modify it under the terms of the GNU General Public License as
ed1062e
#   published by the Free Software Foundation, either version 2 of
ed1062e
#   the License, or (at your option) any later version.
ed1062e
#
ed1062e
#   This program is distributed in the hope that it will be
ed1062e
#   useful, but WITHOUT ANY WARRANTY; without even the implied
ed1062e
#   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
ed1062e
#   PURPOSE.  See the GNU General Public License for more details.
ed1062e
#
ed1062e
#   You should have received a copy of the GNU General Public License
ed1062e
#   along with this program. If not, see http://www.gnu.org/licenses/.
ed1062e
#
ed1062e
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ed1062e
ed1062e
# Include Beaker environment
ed1062e
. /usr/share/beakerlib/beakerlib.sh || exit 1
ed1062e
ed1062e
PACKAGES="lftp"
ed1062e
ed1062e
rlJournalStart
ed1062e
    rlPhaseStartSetup
9b1f083
        rlRun "rlImport distribution/epel" || rlDie
9b1f083
        rlRun "rlImport openssl/certgen" || rlDie
ed1062e
        rlAssertRpm --all
ed1062e
ed1062e
        if rlIsRHEL; then
ed1062e
            if rlIsRHEL '<=7'; then
ed1062e
                rlRun "yum -y --enablerepo epel --enablerepo epel-testing install proftpd" 0 "Install proftpd"
ed1062e
            else
ed1062e
                rlRun "yum -y --enablerepo epel --enablerepo epel-playground install proftpd" 0 "Install proftpd"
ed1062e
            fi
ed1062e
        fi
ed1062e
ed1062e
        CONF="/etc/proftpd.conf"
ed1062e
        rlFileBackup ${CONF}
ed1062e
        rlRun "cp proftpd.conf ${CONF}" 0 "Configuring FTP server"
ed1062e
ed1062e
        SYSCONF="/etc/sysconfig/proftpd"
ed1062e
        rlFileBackup ${SYSCONF}
ed1062e
        rlRun "echo 'PROFTPD_OPTIONS=\"-DANONYMOUS_FTP -DTLS\"' > ${SYSCONF}" 0 "Enabling anonymous access over TLS"
ed1062e
ed1062e
        rlRun "rlFileBackup --clean /var/ftp" 0 "Backing up FTP server contents"
ed1062e
        rlRun "echo 'Quack!' > /var/ftp/duck" 0 "Creating a test file on FTP server"
ed1062e
ed1062e
        rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
ed1062e
        rlRun "cp fetch ${TmpDir}" 0 "Copying lftp script to tmp directory"
ed1062e
        rlRun "pushd ${TmpDir}"
ed1062e
ed1062e
        rlRun "x509KeyGen server" 0 "Generating server key pair"
ed1062e
        rlRun "x509KeyGen ca" 0 "Generating CA certificate"
ed1062e
        rlRun "x509SelfSign ca" 0 "Self-signing CA certificate"
ed1062e
        rlRun "x509CertSign --CA ca server" 0 "Signing server certificate"
ed1062e
ed1062e
        rlFileBackup --clean /etc/pki
ed1062e
        rlRun "cat $(x509Cert ca) >> /etc/pki/tls/certs/ca-bundle.crt"
ed1062e
        rlRun "cp $(x509Cert server) /etc/pki/tls/certs/localhost.crt"
ed1062e
        rlRun "cp $(x509Key server) /etc/pki/tls/private/localhost.key"
ed1062e
ed1062e
        rlRun "rlServiceStart proftpd" 0 "Starting FTP server"
ed1062e
    rlPhaseEnd
ed1062e
ed1062e
    rlPhaseStartTest
ed1062e
        rlRun -s "curl -v --ftp-ssl ftp://localhost/duck" 0 "Checking that FTP server is up and working properly"
ed1062e
        rlAssertGrep 'Quack!' ${rlRun_LOG}
ed1062e
ed1062e
        rlRun -s "lftp -d -f ./fetch" 0 "Downloading test file with lftp"
ed1062e
        rlAssertNotGrep 'A TLS packet with unexpected length was received' ${rlRun_LOG}
ed1062e
        rlAssertExists "duck"
ed1062e
        rlAssertGrep 'Quack!' "duck"
ed1062e
    rlPhaseEnd
ed1062e
ed1062e
    rlPhaseStartCleanup
ed1062e
        rlRun "rlServiceStop proftpd" 0 "Stopping FTP server"
ed1062e
        rlRun "x509RmAlias server"
ed1062e
        rlRun "x509RmAlias ca"
ed1062e
        rlRun "popd"
ed1062e
        rlRun "rm -r ${TmpDir}" 0 "Removing tmp directory"
ed1062e
        rlFileRestore
ed1062e
    rlPhaseEnd
ed1062e
rlJournalPrintText
ed1062e
rlJournalEnd