xref: /src/crypto/openssh/.github/run_test.sh (revision 8e28d84935f2f0ee081d44f9803f3052b960e50b)
1#!/bin/sh
2
3. .github/configs $1
4
5[ -z "${SUDO}" ] || ${SUDO} mkdir -p /var/empty
6
7set -ex
8
9# If we want to test hostbased auth, set up the host for it.
10if [ ! -z "$SUDO" ] && [ ! -z "$TEST_SSH_HOSTBASED_AUTH" ]; then
11    sshconf=/usr/local/etc
12    $SUDO mkdir -p "${sshconf}"
13    hostname | $SUDO tee $sshconf/shosts.equiv >/dev/null
14    echo "EnableSSHKeysign yes" | $SUDO tee $sshconf/ssh_config >/dev/null
15    $SUDO mkdir -p $sshconf
16    $SUDO cp -p /etc/ssh/ssh_host*key* $sshconf
17    $SUDO make install
18    for key in $sshconf/ssh_host*key*.pub; do
19        echo `hostname` `cat $key` | \
20            $SUDO tee -a $sshconf/ssh_known_hosts >/dev/null
21    done
22fi
23
24output_failed_logs() {
25    for i in regress/failed*.log; do
26        if [ -f "$i" ]; then
27            echo -------------------------------------------------------------------------
28            echo LOGFILE $i
29            cat $i
30            echo -------------------------------------------------------------------------
31        fi
32    done
33}
34trap output_failed_logs 0
35
36env=""
37if [ ! -z "${SUDO}" ]; then
38    env="${env} SUDO=${SUDO}"
39fi
40if [ ! -z "${TCMALLOC_STACKTRACE_METHOD}" ]; then
41    env="${env} TCMALLOC_STACKTRACE_METHOD=${TCMALLOC_STACKTRACE_METHOD}"
42fi
43if [ ! -z "${TEST_SSH_SSHD_ENV}" ]; then
44    env="${env} TEST_SSH_SSHD_ENV=${TEST_SSH_SSHD_ENV}"
45fi
46if [ ! -z "${env}" ]; then
47    env="env${env}"
48fi
49
50if [ -z "${LTESTS}" ]; then
51    ${env} make ${TEST_TARGET} SKIP_LTESTS="${SKIP_LTESTS}"
52else
53    ${env} make ${TEST_TARGET} SKIP_LTESTS="${SKIP_LTESTS}" LTESTS="${LTESTS}"
54fi
55
56if [ ! -z "${SSHD_CONFOPTS}" ]; then
57    echo "rerunning t-exec with TEST_SSH_SSHD_CONFOPTS='${SSHD_CONFOPTS}'"
58    if [ -z "${LTESTS}" ]; then
59        ${env} make t-exec SKIP_LTESTS="${SKIP_LTESTS}" TEST_SSH_SSHD_CONFOPTS="${SSHD_CONFOPTS}"
60    else
61        ${env} make t-exec SKIP_LTESTS="${SKIP_LTESTS}" LTESTS="${LTESTS}" TEST_SSH_SSHD_CONFOPTS="${SSHD_CONFOPTS}"
62    fi
63fi
64