mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-18 22:14:16 +00:00
selftests: drv-net-hw: support using Python from net hw tests
We created a separate directory for HW-only tests, recently. Glue in the Python test library there, Python is a bit annoying when it comes to using library code located "lower" in the directory structure. Reuse the Env class, but let tests require non-nsim setup. Reviewed-by: Willem de Bruijn <willemb@google.com> Link: https://lore.kernel.org/r/20240429144426.743476-3-kuba@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
12b6c3a038
commit
ff4b2bfa63
4 changed files with 26 additions and 3 deletions
|
@ -119,7 +119,7 @@ TARGETS_HOTPLUG = cpu-hotplug
|
|||
TARGETS_HOTPLUG += memory-hotplug
|
||||
|
||||
# Networking tests want the net/lib target, include it automatically
|
||||
ifneq ($(filter net drivers/net,$(TARGETS)),)
|
||||
ifneq ($(filter net drivers/net drivers/net/hw,$(TARGETS)),)
|
||||
ifeq ($(filter net/lib,$(TARGETS)),)
|
||||
INSTALL_DEP_TARGETS := net/lib
|
||||
endif
|
||||
|
|
|
@ -16,6 +16,7 @@ TEST_FILES := \
|
|||
#
|
||||
|
||||
TEST_INCLUDES := \
|
||||
$(wildcard lib/py/*.py ../lib/py/*.py) \
|
||||
../../../net/lib.sh \
|
||||
../../../net/forwarding/lib.sh \
|
||||
../../../net/forwarding/ipip_lib.sh \
|
||||
|
|
16
tools/testing/selftests/drivers/net/hw/lib/py/__init__.py
Normal file
16
tools/testing/selftests/drivers/net/hw/lib/py/__init__.py
Normal file
|
@ -0,0 +1,16 @@
|
|||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
KSFT_DIR = (Path(__file__).parent / "../../../../..").resolve()
|
||||
|
||||
try:
|
||||
sys.path.append(KSFT_DIR.as_posix())
|
||||
from net.lib.py import *
|
||||
from drivers.net.lib.py import *
|
||||
except ModuleNotFoundError as e:
|
||||
ksft_pr("Failed importing `net` library from kernel sources")
|
||||
ksft_pr(str(e))
|
||||
ktap_result(True, comment="SKIP")
|
||||
sys.exit(4)
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
import os
|
||||
from pathlib import Path
|
||||
from lib.py import KsftSkipEx
|
||||
from lib.py import KsftSkipEx, KsftXfailEx
|
||||
from lib.py import cmd, ip
|
||||
from lib.py import NetNS, NetdevSimDev
|
||||
from .remote import Remote
|
||||
|
@ -76,7 +76,7 @@ class NetDrvEpEnv:
|
|||
nsim_v4_pfx = "192.0.2."
|
||||
nsim_v6_pfx = "2001:db8::"
|
||||
|
||||
def __init__(self, src_path):
|
||||
def __init__(self, src_path, nsim_test=None):
|
||||
|
||||
self.env = _load_env_file(src_path)
|
||||
|
||||
|
@ -88,7 +88,10 @@ class NetDrvEpEnv:
|
|||
self._ns_peer = None
|
||||
|
||||
if "NETIF" in self.env:
|
||||
if nsim_test is True:
|
||||
raise KsftXfailEx("Test only works on netdevsim")
|
||||
self._check_env()
|
||||
|
||||
self.dev = ip("link show dev " + self.env['NETIF'], json=True)[0]
|
||||
|
||||
self.v4 = self.env.get("LOCAL_V4")
|
||||
|
@ -98,6 +101,9 @@ class NetDrvEpEnv:
|
|||
kind = self.env["REMOTE_TYPE"]
|
||||
args = self.env["REMOTE_ARGS"]
|
||||
else:
|
||||
if nsim_test is False:
|
||||
raise KsftXfailEx("Test does not work on netdevsim")
|
||||
|
||||
self.create_local()
|
||||
|
||||
self.dev = self._ns.nsims[0].dev
|
||||
|
|
Loading…
Add table
Reference in a new issue