blob: 7d50f9cfa4377e99411ea356d7ea78043023b482 [file] [log] [blame]
djm@openbsd.orgc9cdef32017-06-24 06:35:24 +00001# $OpenBSD: Makefile,v 1.95 2017/06/24 06:35:24 djm Exp $
Damien Miller38cd4352002-05-01 13:17:33 +10002
markus@openbsd.org27ca1a52015-01-12 20:13:27 +00003REGRESS_TARGETS= unit t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t-exec
Damien Miller9e1cfca2015-02-26 20:32:58 -08004tests: prep $(REGRESS_TARGETS)
Damien Miller38cd4352002-05-01 13:17:33 +10005
Damien Milleraf784932008-03-13 00:17:00 +11006# Interop tests are not run by default
Damien Miller66429962008-03-13 12:05:40 +11007interop interop-tests: t-exec-interop
Damien Milleraf784932008-03-13 00:17:00 +11008
Damien Miller9e1cfca2015-02-26 20:32:58 -08009prep:
Damien Miller02973ad2015-02-28 08:05:27 -080010 test "x${USE_VALGRIND}" = "x" || mkdir -p $(OBJ)/valgrind-out
Damien Miller9e1cfca2015-02-26 20:32:58 -080011
Darren Tuckerebc3c132003-09-04 15:37:58 +100012clean:
Darren Tuckerb12d16f2003-09-14 11:40:35 +100013 for F in $(CLEANFILES); do rm -f $(OBJ)$$F; done
Darren Tuckerf3568fc2013-05-17 09:35:26 +100014 test -z "${SUDO}" || ${SUDO} rm -f ${SUDO_CLEAN}
Damien Miller9c8a4272008-03-27 17:42:06 +110015 rm -rf $(OBJ).putty
16
Darren Tuckerebc3c132003-09-04 15:37:58 +100017distclean: clean
Damien Miller38cd4352002-05-01 13:17:33 +100018
19LTESTS= connect \
20 proxy-connect \
21 connect-privsep \
22 proto-version \
23 proto-mismatch \
24 exit-status \
Darren Tucker4c37ef02004-06-16 20:08:56 +100025 envpass \
Damien Miller38cd4352002-05-01 13:17:33 +100026 transfer \
Darren Tuckerdc001a52003-10-08 17:47:19 +100027 banner \
Darren Tuckerd57a76e2003-06-18 22:32:51 +100028 rekey \
Damien Miller38cd4352002-05-01 13:17:33 +100029 stderr-data \
30 stderr-after-eof \
31 broken-pipe \
32 try-ciphers \
33 yes-head \
Darren Tucker017fd612004-02-29 20:30:17 +110034 login-timeout \
Damien Miller38cd4352002-05-01 13:17:33 +100035 agent \
Damien Miller8b9cde72003-01-22 17:53:16 +110036 agent-getpeereid \
37 agent-timeout \
38 agent-ptrace \
Damien Miller38cd4352002-05-01 13:17:33 +100039 keyscan \
Damien Miller8b9cde72003-01-22 17:53:16 +110040 keygen-change \
Damien Millerb6bd3c22010-02-24 17:24:56 +110041 keygen-convert \
dtucker@openbsd.org44d82fc2016-09-12 02:25:46 +000042 keygen-moduli \
Damien Miller2e80cf22008-06-30 08:06:25 +100043 key-options \
Darren Tucker50433a92004-06-16 20:15:59 +100044 scp \
Damien Miller38cd4352002-05-01 13:17:33 +100045 sftp \
Darren Tuckerf3568fc2013-05-17 09:35:26 +100046 sftp-chroot \
Damien Miller8b9cde72003-01-22 17:53:16 +110047 sftp-cmds \
Darren Tuckera4040f52003-06-18 22:35:11 +100048 sftp-badcmds \
Damien Miller8b9cde72003-01-22 17:53:16 +110049 sftp-batch \
Darren Tucker1c56ef62005-03-07 17:36:18 +110050 sftp-glob \
Damien Millera176e182013-10-18 09:05:41 +110051 sftp-perm \
Darren Tucker50cea672003-06-18 22:45:34 +100052 reconfigure \
Darren Tuckere2f2be72003-07-03 20:27:55 +100053 dynamic-forward \
Darren Tuckere7d05832004-06-16 20:22:22 +100054 forwarding \
Darren Tucker977a9d22004-06-25 13:45:18 +100055 multiplex \
Darren Tucker124f58e2004-12-06 23:07:37 +110056 reexec \
Damien Miller7b1877c2006-07-24 15:31:41 +100057 brokenkeys \
dtucker@openbsd.orge6508892016-06-03 04:10:41 +000058 sshcfgparse \
dtucker@openbsd.org0ef1de72015-04-23 05:01:19 +000059 cfgparse \
Damien Miller7b1877c2006-07-24 15:31:41 +100060 cfgmatch \
Darren Tucker10f92422008-06-10 23:16:46 +100061 addrmatch \
Damien Millera5e58422008-03-12 23:58:05 +110062 localcommand \
Darren Tucker287b9322009-10-07 10:31:56 +110063 forcecommand \
Damien Miller58ac6de2010-02-27 07:57:12 +110064 portnum \
Darren Tuckereab5f0d2010-11-05 18:23:38 +110065 keytype \
66 kextype \
Damien Miller58ac6de2010-02-27 07:57:12 +110067 cert-hostkey \
Damien Miller7d06b002011-01-07 09:54:20 +110068 cert-userkey \
Damien Miller771c43c2012-12-03 10:12:13 +110069 host-expand \
Damien Miller999bd2d2012-12-03 10:13:39 +110070 keys-command \
Damien Miller1fb593a2012-12-12 10:54:37 +110071 forward-control \
Damien Millerebafebd2013-01-18 11:51:56 +110072 integrity \
djm@openbsd.org4bea0ab2014-12-22 08:06:03 +000073 krl \
djm@openbsd.org09205532015-01-13 07:49:49 +000074 multipubkey \
djm@openbsd.orgd59ec472015-01-18 19:47:55 +000075 limit-keytype \
djm@openbsd.org79478102015-01-18 22:00:18 +000076 hostkey-agent \
djm@openbsd.orgd411d392015-01-26 06:12:18 +000077 keygen-knownhosts \
djm@openbsd.org13640792015-05-21 06:44:25 +000078 hostkey-rotate \
djm@openbsd.orge14ac432015-09-24 06:16:53 +000079 principals-command \
djm@openbsd.org35f22da2016-04-15 00:31:10 +000080 cert-file \
dtucker@openbsd.org0d2f8842016-12-16 03:51:19 +000081 cfginclude \
djm@openbsd.orgc9cdef32017-06-24 06:35:24 +000082 allow-deny-users \
83 authinfo
djm@openbsd.org09205532015-01-13 07:49:49 +000084
85
Damien Miller2476c312014-03-02 04:01:00 +110086# dhgex \
Damien Miller38cd4352002-05-01 13:17:33 +100087
Damien Miller4268a132008-06-30 08:07:56 +100088INTEROP_TESTS= putty-transfer putty-ciphers putty-kex conch-ciphers
Damien Milleraf784932008-03-13 00:17:00 +110089#INTEROP_TESTS+=ssh-com ssh-com-client ssh-com-keygen ssh-com-sftp
90
Darren Tuckereab5f0d2010-11-05 18:23:38 +110091#LTESTS= cipher-speed
92
Damien Miller6bdf70f2017-05-09 14:35:03 +100093USERNAME= ${LOGNAME}
natano@openbsd.org09f99782016-10-06 09:31:38 +000094CLEANFILES= *.core actual agent-key.* authorized_keys_${USERNAME} \
95 authorized_keys_${USERNAME}.* \
96 authorized_principals_${USERNAME} \
djm@openbsd.orgb1d05aa2016-04-15 00:48:01 +000097 banner.in banner.out cert_host_key* cert_user_key* \
98 copy.1 copy.2 data ed25519-agent ed25519-agent* \
Damien Miller6bdf70f2017-05-09 14:35:03 +100099 ed25519-agent.pub ed25519 ed25519.pub empty.in \
100 expect failed-regress.log failed-ssh.log failed-sshd.log \
101 hkr.* host.ed25519 host.rsa host.rsa1 host_* \
102 host_ca_key* host_krl_* host_revoked_* key.* \
103 key.dsa-* key.ecdsa-* key.ed25519-512 \
104 key.ed25519-512.pub key.rsa-* keys-command-args kh.* \
105 known_hosts known_hosts-cert known_hosts.* krl-* ls.copy \
106 modpipe netcat no_identity_config \
107 pidfile putty.rsa2 ready regress.log \
108 remote_pid revoked-* rsa rsa-agent rsa-agent.pub rsa.pub \
109 rsa1 rsa1-agent rsa1-agent.pub rsa1.pub rsa_ssh2_cr.prv \
djm@openbsd.orgb1d05aa2016-04-15 00:48:01 +0000110 rsa_ssh2_crnl.prv scp-ssh-wrapper.exe \
111 scp-ssh-wrapper.scp setuid-allowed sftp-server.log \
112 sftp-server.sh sftp.log ssh-log-wrapper.sh ssh.log \
113 ssh_config ssh_config.* ssh_proxy ssh_proxy_bak \
Damien Miller6bdf70f2017-05-09 14:35:03 +1000114 ssh_proxy_envpass sshd.log sshd_config sshd_config_minimal \
115 sshd_config.orig sshd_proxy sshd_proxy.* sshd_proxy_bak \
116 sshd_proxy_orig t10.out t10.out.pub t12.out t12.out.pub \
117 t2.out t3.out t6.out1 t6.out2 t7.out t7.out.pub \
118 t8.out t8.out.pub t9.out t9.out.pub testdata \
119 user_*key* user_ca* user_key*
Damien Miller38cd4352002-05-01 13:17:33 +1000120
natano@openbsd.org09f99782016-10-06 09:31:38 +0000121SUDO_CLEAN+= /var/run/testdata_${USERNAME} /var/run/keycommand_${USERNAME}
Darren Tuckerf3568fc2013-05-17 09:35:26 +1000122
Damien Miller8f9492c2010-02-24 17:28:45 +1100123# Enable all malloc(3) randomisations and checks
tb@openbsd.org7da751d2016-11-01 13:43:27 +0000124TEST_ENV= "MALLOC_OPTIONS=CFGJRSUX"
Damien Miller8f9492c2010-02-24 17:28:45 +1100125
Damien Miller369c0e82011-01-17 10:51:40 +1100126TEST_SSH_SSHKEYGEN?=ssh-keygen
127
Damien Millerb3764e12013-02-19 13:15:01 +1100128CPPFLAGS=-I..
129
Damien Miller38cd4352002-05-01 13:17:33 +1000130t1:
Damien Miller369c0e82011-01-17 10:51:40 +1100131 ${TEST_SSH_SSHKEYGEN} -if ${.CURDIR}/rsa_ssh2.prv | diff - ${.CURDIR}/rsa_openssh.prv
Darren Tuckereab5f0d2010-11-05 18:23:38 +1100132 tr '\n' '\r' <${.CURDIR}/rsa_ssh2.prv > ${.OBJDIR}/rsa_ssh2_cr.prv
Damien Miller369c0e82011-01-17 10:51:40 +1100133 ${TEST_SSH_SSHKEYGEN} -if ${.OBJDIR}/rsa_ssh2_cr.prv | diff - ${.CURDIR}/rsa_openssh.prv
Darren Tuckereab5f0d2010-11-05 18:23:38 +1100134 awk '{print $$0 "\r"}' ${.CURDIR}/rsa_ssh2.prv > ${.OBJDIR}/rsa_ssh2_crnl.prv
Damien Miller369c0e82011-01-17 10:51:40 +1100135 ${TEST_SSH_SSHKEYGEN} -if ${.OBJDIR}/rsa_ssh2_crnl.prv | diff - ${.CURDIR}/rsa_openssh.prv
Damien Miller38cd4352002-05-01 13:17:33 +1000136
137t2:
Tim Rice8b2157d2003-09-09 06:07:10 -0700138 cat ${.CURDIR}/rsa_openssh.prv > $(OBJ)/t2.out
139 chmod 600 $(OBJ)/t2.out
Damien Miller369c0e82011-01-17 10:51:40 +1100140 ${TEST_SSH_SSHKEYGEN} -yf $(OBJ)/t2.out | diff - ${.CURDIR}/rsa_openssh.pub
Damien Miller38cd4352002-05-01 13:17:33 +1000141
142t3:
Damien Miller369c0e82011-01-17 10:51:40 +1100143 ${TEST_SSH_SSHKEYGEN} -ef ${.CURDIR}/rsa_openssh.pub >$(OBJ)/t3.out
144 ${TEST_SSH_SSHKEYGEN} -if $(OBJ)/t3.out | diff - ${.CURDIR}/rsa_openssh.pub
Damien Miller38cd4352002-05-01 13:17:33 +1000145
146t4:
djm@openbsd.org1e304832014-12-22 02:15:52 +0000147 ${TEST_SSH_SSHKEYGEN} -E md5 -lf ${.CURDIR}/rsa_openssh.pub |\
Damien Miller38cd4352002-05-01 13:17:33 +1000148 awk '{print $$2}' | diff - ${.CURDIR}/t4.ok
149
150t5:
Damien Miller369c0e82011-01-17 10:51:40 +1100151 ${TEST_SSH_SSHKEYGEN} -Bf ${.CURDIR}/rsa_openssh.pub |\
Damien Miller38cd4352002-05-01 13:17:33 +1000152 awk '{print $$2}' | diff - ${.CURDIR}/t5.ok
153
154t6:
Damien Miller369c0e82011-01-17 10:51:40 +1100155 ${TEST_SSH_SSHKEYGEN} -if ${.CURDIR}/dsa_ssh2.prv > $(OBJ)/t6.out1
156 ${TEST_SSH_SSHKEYGEN} -if ${.CURDIR}/dsa_ssh2.pub > $(OBJ)/t6.out2
Tim Rice8b2157d2003-09-09 06:07:10 -0700157 chmod 600 $(OBJ)/t6.out1
Damien Miller369c0e82011-01-17 10:51:40 +1100158 ${TEST_SSH_SSHKEYGEN} -yf $(OBJ)/t6.out1 | diff - $(OBJ)/t6.out2
Damien Miller38cd4352002-05-01 13:17:33 +1000159
Tim Rice8b2157d2003-09-09 06:07:10 -0700160$(OBJ)/t7.out:
Damien Miller369c0e82011-01-17 10:51:40 +1100161 ${TEST_SSH_SSHKEYGEN} -q -t rsa -N '' -f $@
Damien Miller38cd4352002-05-01 13:17:33 +1000162
Tim Rice8b2157d2003-09-09 06:07:10 -0700163t7: $(OBJ)/t7.out
Damien Miller369c0e82011-01-17 10:51:40 +1100164 ${TEST_SSH_SSHKEYGEN} -lf $(OBJ)/t7.out > /dev/null
165 ${TEST_SSH_SSHKEYGEN} -Bf $(OBJ)/t7.out > /dev/null
Damien Miller38cd4352002-05-01 13:17:33 +1000166
Tim Rice522262f2010-11-07 13:00:27 -0800167$(OBJ)/t8.out:
Damien Miller369c0e82011-01-17 10:51:40 +1100168 ${TEST_SSH_SSHKEYGEN} -q -t dsa -N '' -f $@
Darren Tuckereab5f0d2010-11-05 18:23:38 +1100169
Tim Rice522262f2010-11-07 13:00:27 -0800170t8: $(OBJ)/t8.out
Damien Miller369c0e82011-01-17 10:51:40 +1100171 ${TEST_SSH_SSHKEYGEN} -lf $(OBJ)/t8.out > /dev/null
172 ${TEST_SSH_SSHKEYGEN} -Bf $(OBJ)/t8.out > /dev/null
Darren Tuckereab5f0d2010-11-05 18:23:38 +1100173
Tim Rice522262f2010-11-07 13:00:27 -0800174$(OBJ)/t9.out:
Darren Tuckereab5f0d2010-11-05 18:23:38 +1100175 test "${TEST_SSH_ECC}" != yes || \
Damien Miller369c0e82011-01-17 10:51:40 +1100176 ${TEST_SSH_SSHKEYGEN} -q -t ecdsa -N '' -f $@
Darren Tuckereab5f0d2010-11-05 18:23:38 +1100177
Tim Rice522262f2010-11-07 13:00:27 -0800178t9: $(OBJ)/t9.out
Darren Tuckereab5f0d2010-11-05 18:23:38 +1100179 test "${TEST_SSH_ECC}" != yes || \
Damien Miller369c0e82011-01-17 10:51:40 +1100180 ${TEST_SSH_SSHKEYGEN} -lf $(OBJ)/t9.out > /dev/null
Darren Tuckereab5f0d2010-11-05 18:23:38 +1100181 test "${TEST_SSH_ECC}" != yes || \
Damien Miller369c0e82011-01-17 10:51:40 +1100182 ${TEST_SSH_SSHKEYGEN} -Bf $(OBJ)/t9.out > /dev/null
Darren Tuckereab5f0d2010-11-05 18:23:38 +1100183
Damien Millerf54542a2013-12-07 16:32:44 +1100184
185$(OBJ)/t10.out:
186 ${TEST_SSH_SSHKEYGEN} -q -t ed25519 -N '' -f $@
187
188t10: $(OBJ)/t10.out
189 ${TEST_SSH_SSHKEYGEN} -lf $(OBJ)/t10.out > /dev/null
190 ${TEST_SSH_SSHKEYGEN} -Bf $(OBJ)/t10.out > /dev/null
191
djm@openbsd.org1e304832014-12-22 02:15:52 +0000192t11:
193 ${TEST_SSH_SSHKEYGEN} -E sha256 -lf ${.CURDIR}/rsa_openssh.pub |\
194 awk '{print $$2}' | diff - ${.CURDIR}/t11.ok
195
Tim Ricea170f222015-06-09 22:41:13 -0700196$(OBJ)/t12.out:
197 ${TEST_SSH_SSHKEYGEN} -q -t ed25519 -N '' -C 'test-comment-1234' -f $@
markus@openbsd.org27ca1a52015-01-12 20:13:27 +0000198
Tim Ricea170f222015-06-09 22:41:13 -0700199t12: $(OBJ)/t12.out
Tim Rice9f82e5a2015-03-16 22:49:20 -0700200 ${TEST_SSH_SSHKEYGEN} -lf $(OBJ)/t12.out.pub | grep test-comment-1234 >/dev/null
markus@openbsd.org27ca1a52015-01-12 20:13:27 +0000201
Damien Millerfaabeb62012-12-12 12:51:54 +1100202t-exec: ${LTESTS:=.sh}
Darren Tuckerebc3c132003-09-04 15:37:58 +1000203 @if [ "x$?" = "x" ]; then exit 0; fi; \
204 for TEST in ""$?; do \
205 echo "run test $${TEST}" ... 1>&2; \
Tim Rice5ab9b632013-06-02 14:05:48 -0700206 (env SUDO="${SUDO}" TEST_ENV=${TEST_ENV} ${TEST_SHELL} ${.CURDIR}/test-exec.sh ${.OBJDIR} ${.CURDIR}/$${TEST}) || exit $$?; \
Darren Tuckerebc3c132003-09-04 15:37:58 +1000207 done
Damien Milleraf784932008-03-13 00:17:00 +1100208
209t-exec-interop: ${INTEROP_TESTS:=.sh}
210 @if [ "x$?" = "x" ]; then exit 0; fi; \
211 for TEST in ""$?; do \
212 echo "run test $${TEST}" ... 1>&2; \
Tim Rice5ab9b632013-06-02 14:05:48 -0700213 (env SUDO="${SUDO}" TEST_ENV=${TEST_ENV} ${TEST_SHELL} ${.CURDIR}/test-exec.sh ${.OBJDIR} ${.CURDIR}/$${TEST}) || exit $$?; \
Damien Milleraf784932008-03-13 00:17:00 +1100214 done
215
Darren Tuckereab5f0d2010-11-05 18:23:38 +1100216# Not run by default
217interop: ${INTEROP_TARGETS}
Damien Millere7429f22014-05-15 18:01:01 +1000218
219# Unit tests, built by top-level Makefile
220unit:
Damien Millerdd8b1dd2014-07-02 17:38:31 +1000221 set -e ; if test -z "${SKIP_UNIT}" ; then \
Damien Millerbd588532015-02-25 16:58:22 -0800222 V="" ; \
Damien Millerf7f31162015-02-27 15:52:49 -0800223 test "x${USE_VALGRIND}" = "x" || \
Damien Millerbd588532015-02-25 16:58:22 -0800224 V=${.CURDIR}/valgrind-unit.sh ; \
225 $$V ${.OBJDIR}/unittests/sshbuf/test_sshbuf ; \
226 $$V ${.OBJDIR}/unittests/sshkey/test_sshkey \
Damien Millere89c7802015-02-17 10:04:55 +1100227 -d ${.CURDIR}/unittests/sshkey/testdata ; \
Damien Millerbd588532015-02-25 16:58:22 -0800228 $$V ${.OBJDIR}/unittests/bitmap/test_bitmap ; \
Darren Tuckerb1b22dd2017-03-14 14:19:36 +1100229 $$V ${.OBJDIR}/unittests/conversion/test_conversion ; \
Damien Millerbd588532015-02-25 16:58:22 -0800230 $$V ${.OBJDIR}/unittests/kex/test_kex ; \
231 $$V ${.OBJDIR}/unittests/hostkeys/test_hostkeys \
Damien Millere89c7802015-02-17 10:04:55 +1100232 -d ${.CURDIR}/unittests/hostkeys/testdata ; \
Damien Miller6ee4f1c2016-08-23 16:33:48 +1000233 $$V ${.OBJDIR}/unittests/match/test_match ; \
Darren Tucker47b8c992016-12-08 15:48:34 +1100234 if test "x${TEST_SSH_UTF8}" = "xyes" ; then \
235 $$V ${.OBJDIR}/unittests/utf8/test_utf8 ; \
236 fi \
Damien Millerdd8b1dd2014-07-02 17:38:31 +1000237 fi