svn commit: r360045 - head/tests/sys/net/routing

Olivier Cochard olivier at FreeBSD.org
Fri Apr 17 16:31:09 UTC 2020


Author: olivier (ports committer)
Date: Fri Apr 17 16:31:07 2020
New Revision: 360045
URL: https://svnweb.freebsd.org/changeset/base/360045

Log:
  Skip routing regression tests depending on if_epair if this module isn't installed.
  
  Approved by:	melifaro
  Sponsored by:	Netflix
  Differential Revision:	https://reviews.freebsd.org/D24468

Modified:
  head/tests/sys/net/routing/Makefile
  head/tests/sys/net/routing/rtsock_common.h
  head/tests/sys/net/routing/rtsock_config.h

Modified: head/tests/sys/net/routing/Makefile
==============================================================================
--- head/tests/sys/net/routing/Makefile	Fri Apr 17 15:19:42 2020	(r360044)
+++ head/tests/sys/net/routing/Makefile	Fri Apr 17 16:31:07 2020	(r360045)
@@ -14,4 +14,6 @@ ${PACKAGE}FILESMODE_generic_cleanup.sh=0555
 # so running them in parallel will lead to weird results.
 TEST_METADATA+=	is_exclusive=true
 
+CFLAGS+=	-I${.CURDIR:H:H:H}
+
 .include <bsd.test.mk>

Modified: head/tests/sys/net/routing/rtsock_common.h
==============================================================================
--- head/tests/sys/net/routing/rtsock_common.h	Fri Apr 17 15:19:42 2020	(r360044)
+++ head/tests/sys/net/routing/rtsock_common.h	Fri Apr 17 16:31:07 2020	(r360045)
@@ -45,6 +45,7 @@
 #include <sys/socket.h>
 #include <sys/ioctl.h>
 #include <sys/jail.h>
+#include <sys/linker.h>
 #include <net/if.h>
 #include <net/if_dl.h>
 #include <net/route.h>
@@ -63,6 +64,7 @@
 #include <sysexits.h>
 
 #include <atf-c.h>
+#include "freebsd_test_suite/macros.h"
 
 #include "rtsock_print.h"
 #include "params.h"
@@ -126,33 +128,6 @@ _check_cloner(char *name)
 	return (found);
 }
 
-/*
- * Tries to ensure if_tap is loaded.
- * Checks list of interface cloners first, then tries
- * to load the module.
- *
- * return nonzero on success.
- */
-static int
-_enforce_cloner_loaded(char *cloner_name)
-{
-	if (_check_cloner(cloner_name))
-		return (1);
-	/* need to load */
-	RLOG("trying to load %s driver", cloner_name);
-
-	char cmd[64];
-
-	snprintf(cmd, sizeof(cmd), "/sbin/kldload if_%s", cloner_name);
-	int ret = system(cmd);
-	if (ret != 0) {
-		RLOG("'%s' failed, error %d", cmd, ret);
-		return (0);
-	}
-
-	return (1);
-}
-
 static char *
 iface_create(char *ifname_orig)
 {
@@ -164,9 +139,6 @@ iface_create(char *ifname_orig)
 	for (src = ifname_orig, dst = prefix; *src && isalpha(*src); src++)
 		*dst++ = *src;
 	*dst = '\0';
-
-	if (_enforce_cloner_loaded(prefix) == 0)
-		return (NULL);
 
 	memset(&ifr, 0, sizeof(struct ifreq));
 

Modified: head/tests/sys/net/routing/rtsock_config.h
==============================================================================
--- head/tests/sys/net/routing/rtsock_config.h	Fri Apr 17 15:19:42 2020	(r360044)
+++ head/tests/sys/net/routing/rtsock_config.h	Fri Apr 17 16:31:07 2020	(r360045)
@@ -127,6 +127,9 @@ config_setup(const atf_tc_t *tc, struct rtsock_config_
 	inet_ntop(AF_INET6, &c->addr6.sin6_addr, c->addr6_str, INET6_ADDRSTRLEN);
 
 	if (co->num_interfaces > 0) {
+		kldload("if_epair");
+		ATF_REQUIRE_KERNEL_MODULE("if_epair");
+
 		c->ifnames = calloc(co->num_interfaces, sizeof(char *));
 		for (int i = 0; i < co->num_interfaces; i++)
 			c->ifnames[i] = iface_create("epair");


More information about the svn-src-all mailing list