1# $OpenBSD: Makefile,v 1.203 2008/05/09 02:44:55 markus Exp $ 2 3# TARGETS 4# pf: feed pfNN.in through pfctl and check wether the output matches pfNN.ok 5# selfpf: feed pfctl output through pfctl again and verify it stays the same 6# pfail: invalid rulesets pfctl must reject; pfailNN.in and pfailNN.ok 7# pfsetup: set up lo1 and perform more tests 8# pfr: table tests 9# pfsimple: just check wether pfctl accepts a given ruleset, not checking output 10# pfload: load ruleset into anchor regress and verify pfctl -vvsr 11# pfoptimize: as pfload, with -o flag to pfctl 12# pfopt: as target pf, but supply extra command line options 13 14PFTESTS=1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 15PFTESTS+=28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 16PFTESTS+=51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 17PFTESTS+=74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 18PFTESTS+=97 19PFFAIL=1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 23 24 25 27 20PFFAIL+=28 29 30 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 21PFSIMPLE=1 2 22PFSETUP=1 2 3 4 23PFLOAD=1 2 3 4 5 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 24PFLOAD+=30 31 32 34 36 38 39 40 44 46 47 48 49 54 56 60 61 65 66 67 68 69 70 71 25PFLOAD+=72 73 74 75 76 77 78 79 80 81 82 84 87 88 89 90 91 92 26PFALTQ=1 2 3 4 5 6 7 8 9 10 11 12 13 14 27# disabled; no altq in anchors 28# PFLOAD+=33 35 37 42 43 45 51 58 59 62 63 64 29# only testing parser, load test would be useless 30# PFLOAD+=6 22 41 50 52 53 55 57 83 85 86 31PFTABLE=1 2 3 4 5 6 7 8 9 10 11 12 13 32PFOPT=1 2 3 4 5 6 33PFIF2IP=1 2 3 34PFCHKSUM=1 2 3 35 36SHELL=/bin/sh 37 38.MAIN: all 39 40.ifmake !obj && !clean && !cleandir && !depend && !regress 41.if (${.TARGET} != all && ! make(all)) || (${.TARGET} == all) 42.BEGIN: 43 -${SUDO} ifconfig lo1000000 create 44 -${SUDO} ifconfig tun1000000 create 45 -${SUDO} ifconfig tun1000001 create 46 47.END: 48 -${SUDO} ifconfig lo1000000 destroy 49 -${SUDO} ifconfig tun1000000 destroy 50 -${SUDO} ifconfig tun1000001 destroy 51 52.INTERRUPT: 53 -${SUDO} ifconfig lo1000000 destroy 54 -${SUDO} ifconfig lo1000010 destroy 55 -${SUDO} ifconfig tun1000000 destroy 56 -${SUDO} ifconfig tun1000001 destroy 57.endif 58.endif 59 60.for n in ${PFFAIL} 61PFAIL_TARGETS+=pfail${n} 62PFAIL_UPDATES+=pfail${n}-update 63 64pfail${n}: 65 pfctl -o none -nv -f - < ${.CURDIR}/pfail${n}.in 2>&1 | \ 66 diff -u ${.CURDIR}/pfail${n}.ok /dev/stdin 67 68pfail${n}-update: 69 if pfctl -o none -nv -f - < ${.CURDIR}/pfail${n}.in > \ 70 ${.CURDIR}/pfail${n}.ok 2>&1; then \ 71 true; \ 72 fi; 73 74.endfor 75 76pfail: ${PFAIL_TARGETS} 77pfail-update: ${PFAIL_UPDATES} 78REGRESS_TARGETS+=pfail 79UPDATE_TARGETS+=pfail-update 80 81.for n in ${PFTESTS} 82PF_TARGETS+=pf${n} 83PF_UPDATES+=pf${n}-update 84 85pf${n}: 86 pfctl -o none -nv -f - < ${.CURDIR}/pf${n}.in | \ 87 diff -u ${.CURDIR}/pf${n}.ok /dev/stdin 88 89pf${n}-update: 90 pfctl -o none -nv -f - < ${.CURDIR}/pf${n}.in > ${.CURDIR}/pf${n}.ok 91 92SELFPF_TARGETS+=selfpf${n} 93selfpf${n}: 94 pfctl -o none -nv -f - < ${.CURDIR}/pf${n}.ok | \ 95 diff -u ${.CURDIR}/pf${n}.ok /dev/stdin 96 97.endfor 98 99pf: ${PF_TARGETS} 100selfpf: ${SELFPF_TARGETS} 101pf-update: ${PF_UPDATES} 102REGRESS_TARGETS+=pf-include-setup pf 103REGRESS_TARGETS+=selfpf 104UPDATE_TARGETS+=pf-update 105 106pf-include-setup: 107 cp ${.CURDIR}/pf95.include ${.OBJDIR} 108 chmod og-rwx ${.OBJDIR}/pf95.include 109 110.for n in ${PFSIMPLE} 111PFSIMPLE_TARGETS+=pfsimple${n} 112 113pfsimple${n}: 114 pfctl -o none -nf - < ${.CURDIR}/pfsimple${n}.in 115 116.endfor 117 118pfsimple: ${PFSIMPLE_TARGETS} 119REGRESS_TARGETS+=pfsimple 120 121.for n in ${PFLOAD} 122PFLOAD_TARGETS+=pfload${n} 123PFLOAD_UPDATES+=pfload${n}-update 124 125pfload${n}: 126 ${SUDO} pfctl -o none -a regress -f - < ${.CURDIR}/pf${n}.in 127 (${SUDO} pfctl -o none -a 'regress/*' -gvvsn; \ 128 ${SUDO} pfctl -o none -a 'regress/*' -gvvsr) | \ 129 diff -u ${.CURDIR}/pf${n}.loaded /dev/stdin 130 ${SUDO} pfctl -o none -a regress -Fn >/dev/null 2>&1 131 ${SUDO} pfctl -o none -a regress -Fr >/dev/null 2>&1 132 133pfload${n}-update: 134 ${SUDO} pfctl -o none -a regress -f - < ${.CURDIR}/pf${n}.in 135 (${SUDO} pfctl -o none -a 'regress/*' -gvvsn; \ 136 ${SUDO} pfctl -o none -a 'regress/*' -gvvsr) > ${.CURDIR}/pf${n}.loaded 137 ${SUDO} pfctl -o none -a regress -Fn >/dev/null 2>&1 138 ${SUDO} pfctl -o none -a regress -Fr >/dev/null 2>&1 139 140.endfor 141 142pfload: ${PFLOAD_TARGETS} 143pfload-update: ${PFLOAD_UPDATES} 144REGRESS_TARGETS+=pfload 145REGRESS_ROOT_TARGETS+=pfload 146UPDATE_TARGETS+=pfload-update 147 148.for n in ${PFLOAD} 149PFOPTIMIZE_TARGETS+=pfoptimize${n} 150PFOPTIMIZE_UPDATES+=pfoptimize${n}-update 151 152pfoptimize${n}: 153 ${SUDO} pfctl -obasic -a regress -f - < ${.CURDIR}/pf${n}.in 154 (${SUDO} pfctl -o none -a regress -gvvsn; \ 155 ${SUDO} pfctl -o none -a regress -gvvsr) | \ 156 diff -u ${.CURDIR}/pf${n}.optimized /dev/stdin 157 ${SUDO} pfctl -o none -a regress -Fn >/dev/null 2>&1 158 ${SUDO} pfctl -o none -a regress -Fr >/dev/null 2>&1 159 160pfoptimize${n}-update: 161 ${SUDO} pfctl -obasic -a regress -f - < ${.CURDIR}/pf${n}.in 162 (${SUDO} pfctl -o none -a regress -gvvsn; \ 163 ${SUDO} pfctl -o none -a regress -gvvsr) > ${.CURDIR}/pf${n}.optimized 164 ${SUDO} pfctl -o none -a regress -Fn >/dev/null 2>&1 165 ${SUDO} pfctl -o none -a regress -Fr >/dev/null 2>&1 166 167.endfor 168 169pfoptimize: ${PFOPTIMIZE_TARGETS} 170pfoptimize-update: ${PFOPTIMIZE_UPDATES} 171REGRESS_TARGETS+=pfoptimize 172REGRESS_ROOT_TARGETS+=pfoptimize 173UPDATE_TARGETS+=pfoptimize-update 174 175.for n in ${PFTABLE} 176PFR_TARGETS+=pfr${n} 177PFR_UPDATES+=pfr${n}-update 178 179pfr${n}: 180 ${SUDO} /bin/ksh ${.CURDIR}/pfr.exec ${.CURDIR}/pfr${n}.in | \ 181 diff -u ${.CURDIR}/pfr${n}.ok /dev/stdin 182 183pfr${n}-update: 184 ${SUDO} /bin/ksh ${.CURDIR}/pfr.exec ${.CURDIR}/pfr${n}.in > \ 185 ${.CURDIR}/pfr${n}.ok 186 187.endfor 188 189pfr: ${PFR_TARGETS} 190pfr-update: ${PFR_UPDATES} 191NODEFAULT_TARGETS+=pfr 192REGRESS_ROOT_TARGETS+=pfr 193 194.for n in ${PFIF2IP} 195PFI_TARGETS+=pfi${n} 196PFI_UPDATES+=pfi${n}-update 197 198pfi${n}: 199 xargs ${SUDO} /bin/ksh ${.CURDIR}/if2ip <${.CURDIR}/pfi${n}.in | \ 200 diff -u ${.CURDIR}/pfi${n}.ok /dev/stdin 201 202pfi${n}-update: 203 xargs ${SUDO} /bin/ksh ${.CURDIR}/if2ip <${.CURDIR}/pfi${n}.in \ 204 > ${.CURDIR}/pfi${n}.ok 205 206.endfor 207 208pfi: ${PFI_TARGETS} 209pfi-update: ${PFI_UPDATES} 210REGRESS_TARGETS+=pfi 211REGRESS_ROOT_TARGETS+=pfi 212UPDATE_TARGETS+=pfi-update 213 214.for n in ${PFOPT} 215PFOPT_TARGETS+=pfopt${n} 216PFOPT_UPDATES+=pfopt${n}-update 217 218pfopt${n}: 219 pfctl -o none -nv -f - `cat ${.CURDIR}/pfopt${n}.opts` \ 220 < ${.CURDIR}/pfopt${n}.in | \ 221 diff -u ${.CURDIR}/pfopt${n}.ok /dev/stdin 222 223pfopt${n}-update: 224 pfctl -o none -nv -f - `cat ${.CURDIR}/pfopt${n}.opts` \ 225 < ${.CURDIR}/pfopt${n}.in > ${.CURDIR}/pfopt${n}.ok 226 227.endfor 228 229pfopt: ${PFOPT_TARGETS} 230pfopt-update: ${PFOPT_UPDATES} 231REGRESS_TARGETS+=pfopt 232UPDATE_TARGETS+=pfopt-update 233 234.for n in ${PFSETUP} 235PFSETUP_TARGETS+=pfsetup${n} 236PFSETUP_UPDATES+=pfsetup${n}-update 237 238pfsetup${n}: 239 ${SUDO} ${SHELL} ${.CURDIR}/pfsetup${n}.setup 240 pfctl -o none -nv -f - < ${.CURDIR}/pfsetup${n}.in | \ 241 diff -u ${.CURDIR}/pfsetup${n}.ok /dev/stdin 242 ${SUDO} ${SHELL} ${.CURDIR}/pfsetup${n}.clean 243 244pfsetup${n}-update: 245 ${SUDO} ${SHELL} ${.CURDIR}/pfsetup${n}.setup 246 pfctl -o none -nv -f - < ${.CURDIR}/pfsetup${n}.in \ 247 > ${.CURDIR}/pfsetup${n}.ok 248 ${SUDO} ${SHELL} ${.CURDIR}/pfsetup${n}.clean 249 250.endfor 251 252pfsetup: ${PFSETUP_TARGETS} 253pfsetup-update: ${PFSETUP_UPDATES} 254 255NODEFAULT_TARGETS+=pfsetup 256REGRESS_ROOT_TARGETS+=pfsetup 257 258.for n in ${PFALTQ} 259PFALTQ_TARGETS+=pfaltq${n} 260PFALTQ_UPDATES+=pfaltq${n}-update 261 262pfaltq${n}: 263 ${SUDO} pfctl -o none -Fa >/dev/null 2>&1 264 ${SUDO} pfctl -o none -f - < ${.CURDIR}/pfaltq${n}.in 265 ( ${SUDO} pfctl -o none -gsq; \ 266 ${SUDO} pfctl -o none -gsr ) | \ 267 diff -u ${.CURDIR}/pfaltq${n}.ok /dev/stdin 268 ${SUDO} pfctl -o none -Fa >/dev/null 2>&1 269 270pfaltq${n}-update: 271 ${SUDO} pfctl -o none -Fa >/dev/null 2>&1 272 ${SUDO} pfctl -o none -f - < ${.CURDIR}/pfaltq${n}.in 273 ( ${SUDO} pfctl -o none -gsq; \ 274 ${SUDO} pfctl -o none -gsr ) > ${.CURDIR}/pfaltq${n}.ok 275 ${SUDO} pfctl -o none -Fa >/dev/null 2>&1 276 277.endfor 278 279pfaltq: ${PFALTQ_TARGETS} 280pfaltq-update: ${PFALTQ_UPDATES} 281 282NODEFAULT_TARGETS+=pfaltq 283REGRESS_ROOT_TARGETS+=pfaltq 284 285.for n in ${PFCHKSUM} 286PFCHKSUM_TARGETS+=pfchksum${n} 287PFCHKSUM_UPDATES+=pfchksum${n}-update 288 289pfchksum${n}: 290 ${SUDO} pfctl -o none -Fa >/dev/null 2>&1 291 ${SUDO} pfctl -o none -f - < ${.CURDIR}/pfchksum${n}.in 292 ${SUDO} pfctl -o none -vsi | grep '^Checksum:' | \ 293 diff -u ${.CURDIR}/pfchksum${n}.ok /dev/stdin 294 ${SUDO} pfctl -o none -Fa >/dev/null 2>&1 295 296pfchksum${n}-update: 297 ${SUDO} pfctl -o none -Fa >/dev/null 2>&1 298 ${SUDO} pfctl -o none -f - < ${.CURDIR}/pfchksum${n}.in 299 ${SUDO} pfctl -o none -vsi | grep '^Checksum:' > ${.CURDIR}/pfchksum${n}.ok 300 ${SUDO} pfctl -o none -Fa >/dev/null 2>&1 301 302.endfor 303 304pfchksum: ${PFCHKSUM_TARGETS} 305pfchksum-update: ${PFCHKSUM_UPDATES} 306 307NODEFAULT_TARGETS+=pfchksum 308REGRESS_ROOT_TARGETS+=pfchksum 309 310update: ${UPDATE_TARGETS} 311 312alltests: ${REGRESS_TARGETS} ${NODEFAULT_TARGETS} 313 314.PHONY: ${REGRESS_TARGETS} 315 316.include <bsd.regress.mk> 317