. $(atf_get_srcdir)/utils.subr atf_test_case "nr" "cleanup" nr_head() { atf_set descr 'Test $nr expansion' atf_set require.user root } nr_body() { # Ensure that when the optimiser collapses rules the macro expansion # has the correct rule number pft_init vnet_mkjail alcatraz jexec alcatraz ifconfig lo0 inet 127.0.0.1/8 jexec alcatraz ifconfig lo0 inet 127.0.0.2/32 alias pft_set_rules alcatraz \ "pass quick on lo from lo:network to lo:network" \ "block quick all label \"ruleNo:\$nr\"" no=$(jexec alcatraz pfctl -sr -vv | awk '/ruleNo/ { gsub("@", "", $1); print $1; }') ruleno=$(jexec alcatraz pfctl -sr -vv | awk '/ruleNo/ { gsub(/"ruleNo:/, "", $7); gsub(/"/, "", $7); print $7; }') if [ "${no}" -ne "${ruleno}" ]; then atf_fail "Expected ruleNo $no != $ruleno" fi } nr_cleanup() { pft_cleanup } atf_init_test_cases() { atf_add_test_case "nr" }