git: c3fe41b3a375 - stable/14 - vnet tests: check for if_bridge.ko

From: Kristof Provost <kp_at_FreeBSD.org>
Date: Tue, 11 Jun 2024 13:27:38 UTC
The branch stable/14 has been updated by kp:

URL: https://cgit.FreeBSD.org/src/commit/?id=c3fe41b3a375bebef2bec5f0a5c2159b4a2ba347

commit c3fe41b3a375bebef2bec5f0a5c2159b4a2ba347
Author:     Kristof Provost <kp@FreeBSD.org>
AuthorDate: 2024-06-04 18:02:18 +0000
Commit:     Kristof Provost <kp@FreeBSD.org>
CommitDate: 2024-06-11 06:03:23 +0000

    vnet tests: check for if_bridge.ko
    
    A number of tests create a bridge, but did not check if if_bridge.ko is loaded.
    
    We usually get away with that, because `ifconfig bridge create` autoloads the
    module, but if we run the tests in a jail (e.g. because of kyua's upcoming
    execenv.jail.params feature) we can't load the module and these tests can fail.
    
    Check if the module is loaded, skip the test if it is not.
    
    Reviewed by:    markj
    MFC after:      1 week
    Event:          Kitchener-Waterloo Hackathon 202406
    Differential Revision:  https://reviews.freebsd.org/D45487
    
    (cherry picked from commit 480ad4055314efbfff7eedbb34272031d836ba89)
---
 tests/sys/common/vnet.subr       |  7 +++++++
 tests/sys/net/if_bridge_test.sh  | 13 +++++++++++++
 tests/sys/net/if_ovpn/if_ovpn.sh |  2 ++
 tests/sys/netinet/carp.sh        |  7 ++++++-
 tests/sys/netpfil/common/rdr.sh  |  1 +
 tests/sys/netpfil/pf/altq.sh     |  4 +---
 tests/sys/netpfil/pf/pfsync.sh   |  1 +
 tests/sys/netpfil/pf/sctp.sh     |  1 +
 tests/sys/netpfil/pf/tcp.sh      |  1 +
 9 files changed, 33 insertions(+), 4 deletions(-)

diff --git a/tests/sys/common/vnet.subr b/tests/sys/common/vnet.subr
index 50abadaec81d..0f7dec0dc6f1 100644
--- a/tests/sys/common/vnet.subr
+++ b/tests/sys/common/vnet.subr
@@ -26,6 +26,13 @@ vnet_mkepair()
 	echo ${ifname%a}
 }
 
+vnet_init_bridge()
+{
+	if ! kldstat -q -m if_bridge; then
+		atf_skip "This test requires if_bridge"
+	fi
+}
+
 vnet_mkbridge()
 {
 	ifname=$(ifconfig bridge create)
diff --git a/tests/sys/net/if_bridge_test.sh b/tests/sys/net/if_bridge_test.sh
index 44370a905223..66656be1d84f 100755
--- a/tests/sys/net/if_bridge_test.sh
+++ b/tests/sys/net/if_bridge_test.sh
@@ -39,6 +39,7 @@ bridge_transmit_ipv4_unicast_head()
 bridge_transmit_ipv4_unicast_body()
 {
 	vnet_init
+	vnet_init_bridge
 
 	epair_alcatraz=$(vnet_mkepair)
 	epair_singsing=$(vnet_mkepair)
@@ -76,6 +77,7 @@ stp_head()
 stp_body()
 {
 	vnet_init
+	vnet_init_bridge
 
 	epair_one=$(vnet_mkepair)
 	epair_two=$(vnet_mkepair)
@@ -142,6 +144,7 @@ stp_vlan_head()
 stp_vlan_body()
 {
 	vnet_init
+	vnet_init_bridge
 
 	epair_one=$(vnet_mkepair)
 	epair_two=$(vnet_mkepair)
@@ -216,6 +219,7 @@ static_head()
 static_body()
 {
 	vnet_init
+	vnet_init_bridge
 
 	epair=$(vnet_mkepair)
 	bridge=$(vnet_mkbridge)
@@ -273,6 +277,7 @@ span_head()
 span_body()
 {
 	vnet_init
+	vnet_init_bridge
 
 	epair=$(vnet_mkepair)
 	epair_span=$(vnet_mkepair)
@@ -326,6 +331,7 @@ delete_with_members_head()
 delete_with_members_body()
 {
 	vnet_init
+	vnet_init_bridge
 
 	bridge=$(vnet_mkbridge)
 	epair=$(vnet_mkepair)
@@ -352,6 +358,7 @@ mac_conflict_head()
 mac_conflict_body()
 {
 	vnet_init
+	vnet_init_bridge
 
 	epair=$(vnet_mkepair)
 
@@ -390,6 +397,7 @@ inherit_mac_head()
 inherit_mac_body()
 {
 	vnet_init
+	vnet_init_bridge
 
 	bridge=$(vnet_mkbridge)
 	epair=$(vnet_mkepair)
@@ -418,6 +426,7 @@ stp_validation_head()
 stp_validation_body()
 {
 	vnet_init
+	vnet_init_bridge
 
 	epair_one=$(vnet_mkepair)
 	epair_two=$(vnet_mkepair)
@@ -461,6 +470,7 @@ gif_head()
 gif_body()
 {
 	vnet_init
+	vnet_init_bridge
 
 	epair=$(vnet_mkepair)
 
@@ -545,6 +555,7 @@ check_mtu()
 mtu_body()
 {
 	vnet_init
+	vnet_init_bridge
 
 	epair=$(vnet_mkepair)
 	gif=$(ifconfig gif create)
@@ -606,6 +617,7 @@ vlan_head()
 vlan_body()
 {
 	vnet_init
+	vnet_init_bridge
 
 	vid=1
 
@@ -673,6 +685,7 @@ many_bridge_members_head()
 many_bridge_members_body()
 {
 	vnet_init
+	vnet_init_bridge
 
 	bridge=$(vnet_mkbridge)
 	ifcount=256
diff --git a/tests/sys/net/if_ovpn/if_ovpn.sh b/tests/sys/net/if_ovpn/if_ovpn.sh
index 88df430aead6..3623f57115ac 100644
--- a/tests/sys/net/if_ovpn/if_ovpn.sh
+++ b/tests/sys/net/if_ovpn/if_ovpn.sh
@@ -584,6 +584,7 @@ multi_client_head()
 multi_client_body()
 {
 	ovpn_init
+	vnet_init_bridge
 
 	bridge=$(vnet_mkbridge)
 	srv=$(vnet_mkepair)
@@ -796,6 +797,7 @@ ra_head()
 ra_body()
 {
 	ovpn_init
+	vnet_init_bridge
 
 	bridge=$(vnet_mkbridge)
 	srv=$(vnet_mkepair)
diff --git a/tests/sys/netinet/carp.sh b/tests/sys/netinet/carp.sh
index d08940d433d7..d0e10bc2c085 100755
--- a/tests/sys/netinet/carp.sh
+++ b/tests/sys/netinet/carp.sh
@@ -71,6 +71,7 @@ basic_v4_head()
 basic_v4_body()
 {
 	carp_init
+	vnet_init_bridge
 
 	bridge=$(vnet_mkbridge)
 	epair_one=$(vnet_mkepair)
@@ -105,7 +106,6 @@ basic_v4_cleanup()
 	vnet_cleanup
 }
 
-
 atf_test_case "unicast_v4" "cleanup"
 unicast_v4_head()
 {
@@ -116,6 +116,7 @@ unicast_v4_head()
 unicast_v4_body()
 {
 	carp_init
+	vnet_init_bridge
 
 	bridge=$(vnet_mkbridge)
 	epair_one=$(vnet_mkepair)
@@ -173,6 +174,7 @@ basic_v6_head()
 basic_v6_body()
 {
 	carp_init
+	vnet_init_bridge
 
 	bridge=$(vnet_mkbridge)
 	epair_one=$(vnet_mkepair)
@@ -220,6 +222,7 @@ unicast_v6_head()
 unicast_v6_body()
 {
 	carp_init
+	vnet_init_bridge
 
 	bridge=$(vnet_mkbridge)
 	epair_one=$(vnet_mkepair)
@@ -281,6 +284,7 @@ unicast_ll_v6_head()
 unicast_ll_v6_body()
 {
 	carp_init
+	vnet_init_bridge
 
 	j=carp_uni_ll_v6
 
@@ -391,6 +395,7 @@ nd6_ns_source_mac_head()
 nd6_ns_source_mac_body()
 {
         carp_init
+        vnet_init_bridge
 
         bridge=$(vnet_mkbridge)
         epair_one=$(vnet_mkepair)
diff --git a/tests/sys/netpfil/common/rdr.sh b/tests/sys/netpfil/common/rdr.sh
index 7d6297870e6c..0d6f27694c8c 100644
--- a/tests/sys/netpfil/common/rdr.sh
+++ b/tests/sys/netpfil/common/rdr.sh
@@ -83,6 +83,7 @@ local_redirect_body()
 	firewall=$1
 	firewall_init $firewall
 	nat_init $firewall
+	vnet_init_bridge
 
 	bridge=$(vnet_mkbridge)
 	ifconfig ${bridge} 192.0.2.1/24 up
diff --git a/tests/sys/netpfil/pf/altq.sh b/tests/sys/netpfil/pf/altq.sh
index 57a9edf11366..a902c7caaf4f 100644
--- a/tests/sys/netpfil/pf/altq.sh
+++ b/tests/sys/netpfil/pf/altq.sh
@@ -156,9 +156,7 @@ codel_bridge_body()
 {
 	altq_init
 	is_altq_supported codel
-	if ! kldstat -q -m if_bridge; then
-		atf_skip "This test requires if_bridge"
-	fi
+	vnet_init_bridge
 
 	epair=$(vnet_mkepair)
 	ifconfig ${epair}a 192.0.2.1/24 up
diff --git a/tests/sys/netpfil/pf/pfsync.sh b/tests/sys/netpfil/pf/pfsync.sh
index 91c7b8410a08..441221f39d27 100644
--- a/tests/sys/netpfil/pf/pfsync.sh
+++ b/tests/sys/netpfil/pf/pfsync.sh
@@ -326,6 +326,7 @@ pbr_common_body()
 		atf_skip "This test requires carp"
 	fi
 	pfsynct_init
+	vnet_init_bridge
 
 	bridge0=$(vnet_mkbridge)
 	bridge1=$(vnet_mkbridge)
diff --git a/tests/sys/netpfil/pf/sctp.sh b/tests/sys/netpfil/pf/sctp.sh
index 66225e132d1c..c6dba1719d00 100644
--- a/tests/sys/netpfil/pf/sctp.sh
+++ b/tests/sys/netpfil/pf/sctp.sh
@@ -504,6 +504,7 @@ pfsync_body()
 
 	sctp_init
 	pfsynct_init
+	vnet_init_bridge
 	if ! kldstat -q -m carp
 	then
 		atf_skip "This test requires carp"
diff --git a/tests/sys/netpfil/pf/tcp.sh b/tests/sys/netpfil/pf/tcp.sh
index 84536480b44e..f1bffdba2bfa 100644
--- a/tests/sys/netpfil/pf/tcp.sh
+++ b/tests/sys/netpfil/pf/tcp.sh
@@ -39,6 +39,7 @@ rst_head()
 rst_body()
 {
 	pft_init
+	vnet_init_bridge
 
 	epair_srv=$(vnet_mkepair)
 	epair_cl=$(vnet_mkepair)