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