1323134Sdes# $OpenBSD: Makefile,v 1.94 2016/12/16 03:51:19 dtucker Exp $ 298937Sdes 3294332SdesREGRESS_TARGETS= unit t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t-exec 4294332Sdestests: prep $(REGRESS_TARGETS) 598937Sdes 6180746Sdes# Interop tests are not run by default 7180746Sdesinterop interop-tests: t-exec-interop 8180746Sdes 9294332Sdesprep: 10294332Sdes test "x${USE_VALGRIND}" = "x" || mkdir -p $(OBJ)/valgrind-out 11294332Sdes 12124208Sdesclean: 13124208Sdes for F in $(CLEANFILES); do rm -f $(OBJ)$$F; done 14255670Sdes test -z "${SUDO}" || ${SUDO} rm -f ${SUDO_CLEAN} 15180746Sdes rm -rf $(OBJ).putty 16180746Sdes 17124208Sdesdistclean: clean 1898937Sdes 1998937SdesLTESTS= connect \ 2098937Sdes proxy-connect \ 2198937Sdes connect-privsep \ 2298937Sdes proto-version \ 2398937Sdes proto-mismatch \ 2498937Sdes exit-status \ 25137015Sdes envpass \ 2698937Sdes transfer \ 27126274Sdes banner \ 28124208Sdes rekey \ 2998937Sdes stderr-data \ 3098937Sdes stderr-after-eof \ 3198937Sdes broken-pipe \ 3298937Sdes try-ciphers \ 3398937Sdes yes-head \ 34128456Sdes login-timeout \ 3598937Sdes agent \ 36113908Sdes agent-getpeereid \ 37113908Sdes agent-timeout \ 38113908Sdes agent-ptrace \ 3998937Sdes keyscan \ 40113908Sdes keygen-change \ 41204861Sdes keygen-convert \ 42323134Sdes keygen-moduli \ 43180750Sdes key-options \ 44137015Sdes scp \ 4598937Sdes sftp \ 46255670Sdes sftp-chroot \ 47113908Sdes sftp-cmds \ 48124208Sdes sftp-badcmds \ 49113908Sdes sftp-batch \ 50146998Sdes sftp-glob \ 51261320Sdes sftp-perm \ 52124208Sdes reconfigure \ 53124208Sdes dynamic-forward \ 54137015Sdes forwarding \ 55137015Sdes multiplex \ 56146998Sdes reexec \ 57162852Sdes brokenkeys \ 58323129Sdes sshcfgparse \ 59294336Sdes cfgparse \ 60162852Sdes cfgmatch \ 61180750Sdes addrmatch \ 62180746Sdes localcommand \ 63204861Sdes forcecommand \ 64204861Sdes portnum \ 65218767Sdes keytype \ 66218767Sdes kextype \ 67204861Sdes cert-hostkey \ 68218767Sdes cert-userkey \ 69248613Sdes host-expand \ 70248613Sdes keys-command \ 71248613Sdes forward-control \ 72248613Sdes integrity \ 73294332Sdes krl \ 74294332Sdes multipubkey \ 75294332Sdes limit-keytype \ 76294332Sdes hostkey-agent \ 77294332Sdes keygen-knownhosts \ 78294336Sdes hostkey-rotate \ 79296633Sdes principals-command \ 80323129Sdes cert-file \ 81323134Sdes cfginclude \ 82323134Sdes allow-deny-users 83294332Sdes 84294332Sdes 85263712Sdes# dhgex \ 8698937Sdes 87180750SdesINTEROP_TESTS= putty-transfer putty-ciphers putty-kex conch-ciphers 88180746Sdes#INTEROP_TESTS+=ssh-com ssh-com-client ssh-com-keygen ssh-com-sftp 89180746Sdes 90218767Sdes#LTESTS= cipher-speed 91218767Sdes 92323134SdesUSERNAME!= id -un 93323134SdesCLEANFILES= *.core actual agent-key.* authorized_keys_${USERNAME} \ 94323134Sdes authorized_keys_${USERNAME}.* \ 95323134Sdes authorized_principals_${USERNAME} \ 96323129Sdes banner.in banner.out cert_host_key* cert_user_key* \ 97323129Sdes copy.1 copy.2 data ed25519-agent ed25519-agent* \ 98323129Sdes ed25519-agent.pub empty.in expect failed-regress.log \ 99323129Sdes failed-ssh.log failed-sshd.log hkr.* host.rsa host.rsa1 \ 100323129Sdes host_* host_ca_key* host_krl_* host_revoked_* key.* \ 101323129Sdes key.dsa-* key.ecdsa-* key.ed25519-512 key.ed25519-512.pub \ 102323129Sdes key.rsa-* keys-command-args kh.* known_hosts \ 103323129Sdes known_hosts-cert known_hosts.* krl-* ls.copy modpipe \ 104323129Sdes netcat pidfile putty.rsa2 ready regress.log remote_pid \ 105323129Sdes revoked-* rsa rsa-agent rsa-agent.pub rsa.pub rsa1 \ 106323129Sdes rsa1-agent rsa1-agent.pub rsa1.pub rsa_ssh2_cr.prv \ 107323129Sdes rsa_ssh2_crnl.prv scp-ssh-wrapper.exe \ 108323129Sdes scp-ssh-wrapper.scp setuid-allowed sftp-server.log \ 109323129Sdes sftp-server.sh sftp.log ssh-log-wrapper.sh ssh.log \ 110323129Sdes ssh_config ssh_config.* ssh_proxy ssh_proxy_bak \ 111323129Sdes ssh_proxy_envpass sshd.log sshd_config sshd_config.orig \ 112323129Sdes sshd_proxy sshd_proxy.* sshd_proxy_bak sshd_proxy_orig \ 113323129Sdes t10.out t10.out.pub t12.out t12.out.pub t2.out t3.out \ 114323129Sdes t6.out1 t6.out2 t7.out t7.out.pub t8.out t8.out.pub \ 115323129Sdes t9.out t9.out.pub testdata user_*key* user_ca* user_key* 11698937Sdes 117323134SdesSUDO_CLEAN+= /var/run/testdata_${USERNAME} /var/run/keycommand_${USERNAME} 118248613Sdes 119204861Sdes# Enable all malloc(3) randomisations and checks 120323134SdesTEST_ENV= "MALLOC_OPTIONS=CFGJRSUX" 121204861Sdes 122218767SdesTEST_SSH_SSHKEYGEN?=ssh-keygen 123218767Sdes 124248613SdesCPPFLAGS=-I.. 125248613Sdes 12698937Sdest1: 127218767Sdes ${TEST_SSH_SSHKEYGEN} -if ${.CURDIR}/rsa_ssh2.prv | diff - ${.CURDIR}/rsa_openssh.prv 128218767Sdes tr '\n' '\r' <${.CURDIR}/rsa_ssh2.prv > ${.OBJDIR}/rsa_ssh2_cr.prv 129218767Sdes ${TEST_SSH_SSHKEYGEN} -if ${.OBJDIR}/rsa_ssh2_cr.prv | diff - ${.CURDIR}/rsa_openssh.prv 130218767Sdes awk '{print $$0 "\r"}' ${.CURDIR}/rsa_ssh2.prv > ${.OBJDIR}/rsa_ssh2_crnl.prv 131218767Sdes ${TEST_SSH_SSHKEYGEN} -if ${.OBJDIR}/rsa_ssh2_crnl.prv | diff - ${.CURDIR}/rsa_openssh.prv 13298937Sdes 13398937Sdest2: 134124208Sdes cat ${.CURDIR}/rsa_openssh.prv > $(OBJ)/t2.out 135124208Sdes chmod 600 $(OBJ)/t2.out 136218767Sdes ${TEST_SSH_SSHKEYGEN} -yf $(OBJ)/t2.out | diff - ${.CURDIR}/rsa_openssh.pub 13798937Sdes 13898937Sdest3: 139218767Sdes ${TEST_SSH_SSHKEYGEN} -ef ${.CURDIR}/rsa_openssh.pub >$(OBJ)/t3.out 140218767Sdes ${TEST_SSH_SSHKEYGEN} -if $(OBJ)/t3.out | diff - ${.CURDIR}/rsa_openssh.pub 14198937Sdes 14298937Sdest4: 143294332Sdes ${TEST_SSH_SSHKEYGEN} -E md5 -lf ${.CURDIR}/rsa_openssh.pub |\ 14498937Sdes awk '{print $$2}' | diff - ${.CURDIR}/t4.ok 14598937Sdes 14698937Sdest5: 147218767Sdes ${TEST_SSH_SSHKEYGEN} -Bf ${.CURDIR}/rsa_openssh.pub |\ 14898937Sdes awk '{print $$2}' | diff - ${.CURDIR}/t5.ok 14998937Sdes 15098937Sdest6: 151218767Sdes ${TEST_SSH_SSHKEYGEN} -if ${.CURDIR}/dsa_ssh2.prv > $(OBJ)/t6.out1 152218767Sdes ${TEST_SSH_SSHKEYGEN} -if ${.CURDIR}/dsa_ssh2.pub > $(OBJ)/t6.out2 153124208Sdes chmod 600 $(OBJ)/t6.out1 154218767Sdes ${TEST_SSH_SSHKEYGEN} -yf $(OBJ)/t6.out1 | diff - $(OBJ)/t6.out2 15598937Sdes 156124208Sdes$(OBJ)/t7.out: 157218767Sdes ${TEST_SSH_SSHKEYGEN} -q -t rsa -N '' -f $@ 15898937Sdes 159124208Sdest7: $(OBJ)/t7.out 160218767Sdes ${TEST_SSH_SSHKEYGEN} -lf $(OBJ)/t7.out > /dev/null 161218767Sdes ${TEST_SSH_SSHKEYGEN} -Bf $(OBJ)/t7.out > /dev/null 16298937Sdes 163218767Sdes$(OBJ)/t8.out: 164218767Sdes ${TEST_SSH_SSHKEYGEN} -q -t dsa -N '' -f $@ 165218767Sdes 166218767Sdest8: $(OBJ)/t8.out 167218767Sdes ${TEST_SSH_SSHKEYGEN} -lf $(OBJ)/t8.out > /dev/null 168218767Sdes ${TEST_SSH_SSHKEYGEN} -Bf $(OBJ)/t8.out > /dev/null 169218767Sdes 170218767Sdes$(OBJ)/t9.out: 171218767Sdes test "${TEST_SSH_ECC}" != yes || \ 172218767Sdes ${TEST_SSH_SSHKEYGEN} -q -t ecdsa -N '' -f $@ 173218767Sdes 174218767Sdest9: $(OBJ)/t9.out 175218767Sdes test "${TEST_SSH_ECC}" != yes || \ 176218767Sdes ${TEST_SSH_SSHKEYGEN} -lf $(OBJ)/t9.out > /dev/null 177218767Sdes test "${TEST_SSH_ECC}" != yes || \ 178218767Sdes ${TEST_SSH_SSHKEYGEN} -Bf $(OBJ)/t9.out > /dev/null 179218767Sdes 180261320Sdes 181261320Sdes$(OBJ)/t10.out: 182261320Sdes ${TEST_SSH_SSHKEYGEN} -q -t ed25519 -N '' -f $@ 183261320Sdes 184261320Sdest10: $(OBJ)/t10.out 185261320Sdes ${TEST_SSH_SSHKEYGEN} -lf $(OBJ)/t10.out > /dev/null 186261320Sdes ${TEST_SSH_SSHKEYGEN} -Bf $(OBJ)/t10.out > /dev/null 187261320Sdes 188294332Sdest11: 189294332Sdes ${TEST_SSH_SSHKEYGEN} -E sha256 -lf ${.CURDIR}/rsa_openssh.pub |\ 190294332Sdes awk '{print $$2}' | diff - ${.CURDIR}/t11.ok 191294332Sdes 192294336Sdes$(OBJ)/t12.out: 193294336Sdes ${TEST_SSH_SSHKEYGEN} -q -t ed25519 -N '' -C 'test-comment-1234' -f $@ 194294332Sdes 195294336Sdest12: $(OBJ)/t12.out 196294332Sdes ${TEST_SSH_SSHKEYGEN} -lf $(OBJ)/t12.out.pub | grep test-comment-1234 >/dev/null 197294332Sdes 198124208Sdest-exec: ${LTESTS:=.sh} 199124208Sdes @if [ "x$?" = "x" ]; then exit 0; fi; \ 200124208Sdes for TEST in ""$?; do \ 201124208Sdes echo "run test $${TEST}" ... 1>&2; \ 202255670Sdes (env SUDO="${SUDO}" TEST_ENV=${TEST_ENV} ${TEST_SHELL} ${.CURDIR}/test-exec.sh ${.OBJDIR} ${.CURDIR}/$${TEST}) || exit $$?; \ 203124208Sdes done 204180746Sdes 205180746Sdest-exec-interop: ${INTEROP_TESTS:=.sh} 206180746Sdes @if [ "x$?" = "x" ]; then exit 0; fi; \ 207180746Sdes for TEST in ""$?; do \ 208180746Sdes echo "run test $${TEST}" ... 1>&2; \ 209255670Sdes (env SUDO="${SUDO}" TEST_ENV=${TEST_ENV} ${TEST_SHELL} ${.CURDIR}/test-exec.sh ${.OBJDIR} ${.CURDIR}/$${TEST}) || exit $$?; \ 210180746Sdes done 211180746Sdes 212218767Sdes# Not run by default 213218767Sdesinterop: ${INTEROP_TARGETS} 214294328Sdes 215294328Sdes# Unit tests, built by top-level Makefile 216294328Sdesunit: 217294328Sdes set -e ; if test -z "${SKIP_UNIT}" ; then \ 218294332Sdes V="" ; \ 219294332Sdes test "x${USE_VALGRIND}" = "x" || \ 220294332Sdes V=${.CURDIR}/valgrind-unit.sh ; \ 221294332Sdes $$V ${.OBJDIR}/unittests/sshbuf/test_sshbuf ; \ 222294332Sdes $$V ${.OBJDIR}/unittests/sshkey/test_sshkey \ 223294332Sdes -d ${.CURDIR}/unittests/sshkey/testdata ; \ 224294332Sdes $$V ${.OBJDIR}/unittests/bitmap/test_bitmap ; \ 225323136Sdes $$V ${.OBJDIR}/unittests/conversion/test_conversion ; \ 226294332Sdes $$V ${.OBJDIR}/unittests/kex/test_kex ; \ 227294332Sdes $$V ${.OBJDIR}/unittests/hostkeys/test_hostkeys \ 228294332Sdes -d ${.CURDIR}/unittests/hostkeys/testdata ; \ 229323134Sdes $$V ${.OBJDIR}/unittests/match/test_match ; \ 230323134Sdes if test "x${TEST_SSH_UTF8}" = "xyes" ; then \ 231323134Sdes $$V ${.OBJDIR}/unittests/utf8/test_utf8 ; \ 232323134Sdes fi \ 233294328Sdes fi 234