diff options
Diffstat (limited to 'debian/tests')
-rw-r--r-- | debian/tests/control | 11 | ||||
-rwxr-xr-x | debian/tests/regress | 70 |
2 files changed, 81 insertions, 0 deletions
diff --git a/debian/tests/control b/debian/tests/control new file mode 100644 index 0000000..df8f9b8 --- /dev/null +++ b/debian/tests/control @@ -0,0 +1,11 @@ +Tests: regress +Restrictions: needs-root allow-stderr +Depends: devscripts, + openssh-client, + openssh-server, + openssh-sftp-server, + openssl, + putty-tools (>= 0.67-2), + python-twisted-conch (>= 1:15.5.0-1), + sudo, + @builddeps@, diff --git a/debian/tests/regress b/debian/tests/regress new file mode 100755 index 0000000..662526b --- /dev/null +++ b/debian/tests/regress @@ -0,0 +1,70 @@ +#! /bin/sh +set -e + +if [ "$(id -un)" != openssh-tests ]; then + TMP="$ADTTMP/user" + + cleanup () { + rm -rf "$TMP" + rm -f /etc/sudoers.d/openssh-tests + if id openssh-tests >/dev/null 2>&1; then + deluser --remove-home openssh-tests + fi + } + trap cleanup EXIT + + adduser --disabled-password --gecos 'OpenSSH tests' openssh-tests + cat >/etc/sudoers.d/openssh-tests <<EOF +openssh-tests ALL = (ALL:ALL) NOPASSWD: ALL +EOF + chmod 440 /etc/sudoers.d/openssh-tests + mkdir -p "$TMP" + cp -a . "$TMP/tree" + chown -R openssh-tests:openssh-tests "$TMP" + sudo -u openssh-tests env TMP="$TMP" "$0" "$@" + exit "$?" +fi + +# Don't use "make tests"; we want to test the installed version. + +cd "$TMP/tree" + +# We aren't actually going to use most of this build, but we need a basic +# build tree in place in order to be able to build the regression tests. +autoreconf -f -i +cp -f /usr/share/misc/config.guess /usr/share/misc/config.sub ./ +./configure +make + +# The defaults for TEST_SSH_* in regress/test-exec.sh use the system +# versions, but the top-level Makefile sets things up to test the just-built +# versions, so we must bypass the latter in order to work correctly under +# autopkgtest. +make regress-prep +make regress-binaries + +SRCDIR="$(pwd)" +BUILDDIR="$SRCDIR" +ret=0 +annotate-output +%H:%M:%S.%N make -C regress \ + .OBJDIR="$BUILDDIR/regress" \ + .CURDIR="$SRCDIR/regress" \ + BUILDDIR="$BUILDDIR" \ + OBJ="$BUILDDIR/regress" \ + SUDO=sudo \ + TEST_SHELL='sh -x' \ + TEST_SSH_SFTPSERVER=/usr/lib/openssh/sftp-server \ + TEST_SSH_PLINK=plink \ + TEST_SSH_PUTTYGEN=puttygen \ + TEST_SSH_CONCH=conch \ + TEST_SSH_IPV6=yes \ + TEST_SSH_ECC=yes \ + tests interop-tests </dev/zero || ret="$?" +if [ "$ret" -ne 0 ]; then + for log in failed-regress.log failed-ssh.log failed-sshd.log; do + if [ -e "$BUILDDIR/regress/$log" ]; then + tail -v -n+0 "$BUILDDIR/regress/$log" + fi + done +fi +exit "$ret" |