aboutsummaryrefslogtreecommitdiff
path: root/tests/sys/netinet
diff options
context:
space:
mode:
authorKristof Provost <kp@FreeBSD.org>2021-08-17 14:19:29 +0000
committerKristof Provost <kp@FreeBSD.org>2021-08-17 15:01:21 +0000
commite86469075c5e391cc86e5bcd4f252712a69de37e (patch)
treee342efd4ae82af7889c8504be816c6dde8beea93 /tests/sys/netinet
parentee3ca711a898cf41330c320826ea1e0e6e451f1d (diff)
Diffstat (limited to 'tests/sys/netinet')
-rwxr-xr-xtests/sys/netinet/arp.sh36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/sys/netinet/arp.sh b/tests/sys/netinet/arp.sh
index 8b5b30911314..b909b9a48fb3 100755
--- a/tests/sys/netinet/arp.sh
+++ b/tests/sys/netinet/arp.sh
@@ -85,12 +85,48 @@ arp_del_success_cleanup() {
vnet_cleanup
}
+atf_test_case "pending_delete_if" "cleanup"
+pending_delete_if_head() {
+ atf_set descr 'Test having pending link layer lookups on interface delete'
+ atf_set require.user root
+}
+
+pending_delete_if_body() {
+ vnet_init
+
+ jname="arp_pending_delete_if"
+ epair=$(vnet_mkepair)
+
+ ifconfig ${epair}b up
+
+ vnet_mkjail ${jname} ${epair}a
+ jexec ${jname} ifconfig ${epair}a 198.51.100.1/24
+ for i in `seq 2 200`
+ do
+ jexec ${jname} ping 198.51.100.${i} &
+ done
+
+ # Give the ping processes time to send their ARP requests
+ sleep 1
+
+ jexec ${jname} arp -an
+ jexec ${jname} killall ping
+
+ # Delete the interface. Test failure panics the machine.
+ ifconfig ${epair}b destroy
+}
+
+pending_delete_if_cleanup() {
+ vnet_cleanup
+}
+
atf_init_test_cases()
{
atf_add_test_case "arp_add_success"
atf_add_test_case "arp_del_success"
+ atf_add_test_case "pending_delete_if"
}
# end