xref: /freebsd/tests/sys/netpfil/pf/macro.sh (revision 914ec9c78dcd5d8f77552fb93d3bc15efe9c0f40)
1*914ec9c7SKristof Provost. $(atf_get_srcdir)/utils.subr
2*914ec9c7SKristof Provost
3*914ec9c7SKristof Provostatf_test_case "nr" "cleanup"
4*914ec9c7SKristof Provostnr_head()
5*914ec9c7SKristof Provost{
6*914ec9c7SKristof Provost	atf_set descr 'Test $nr expansion'
7*914ec9c7SKristof Provost	atf_set require.user root
8*914ec9c7SKristof Provost}
9*914ec9c7SKristof Provost
10*914ec9c7SKristof Provostnr_body()
11*914ec9c7SKristof Provost{
12*914ec9c7SKristof Provost	# Ensure that when the optimiser collapses rules the macro expansion
13*914ec9c7SKristof Provost	# has the correct rule number
14*914ec9c7SKristof Provost	pft_init
15*914ec9c7SKristof Provost
16*914ec9c7SKristof Provost	vnet_mkjail alcatraz
17*914ec9c7SKristof Provost	jexec alcatraz ifconfig lo0 inet 127.0.0.1/8
18*914ec9c7SKristof Provost	jexec alcatraz ifconfig lo0 inet 127.0.0.2/32 alias
19*914ec9c7SKristof Provost
20*914ec9c7SKristof Provost	pft_set_rules alcatraz \
21*914ec9c7SKristof Provost	    "pass quick on lo from lo:network to lo:network" \
22*914ec9c7SKristof Provost	    "block quick all label \"ruleNo:\$nr\""
23*914ec9c7SKristof Provost
24*914ec9c7SKristof Provost	no=$(jexec alcatraz pfctl -sr -vv | awk '/ruleNo/ { gsub("@", "", $1); print $1; }')
25*914ec9c7SKristof Provost	ruleno=$(jexec alcatraz pfctl -sr -vv | awk '/ruleNo/ { gsub(/"ruleNo:/, "", $7); gsub(/"/, "", $7); print $7; }')
26*914ec9c7SKristof Provost	if [ "${no}" -ne "${ruleno}" ];
27*914ec9c7SKristof Provost	then
28*914ec9c7SKristof Provost		atf_fail "Expected ruleNo $no != $ruleno"
29*914ec9c7SKristof Provost	fi
30*914ec9c7SKristof Provost}
31*914ec9c7SKristof Provost
32*914ec9c7SKristof Provostnr_cleanup()
33*914ec9c7SKristof Provost{
34*914ec9c7SKristof Provost	pft_cleanup
35*914ec9c7SKristof Provost}
36*914ec9c7SKristof Provost
37*914ec9c7SKristof Provostatf_init_test_cases()
38*914ec9c7SKristof Provost{
39*914ec9c7SKristof Provost	atf_add_test_case "nr"
40*914ec9c7SKristof Provost}
41