[PATCH] tests: hwsim: kernel: add a test for kunit

Johannes Berg johannes at sipsolutions.net
Wed Jan 3 05:58:21 PST 2024


From: Johannes Berg <johannes.berg at intel.com>

Add a test that runs the cfg80211/mac80211 kunit tests
(they must be built as modules to run at this point),
and checks the results. The test is skipped if all the
modules fail to load.

Signed-off-by: Johannes Berg <johannes.berg at intel.com>
---
 tests/hwsim/test_kernel.py | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/tests/hwsim/test_kernel.py b/tests/hwsim/test_kernel.py
index d8bb3fb8b3c5..5d007cb705cf 100644
--- a/tests/hwsim/test_kernel.py
+++ b/tests/hwsim/test_kernel.py
@@ -10,9 +10,11 @@ import hostapd
 import binascii
 import os, time
 import struct
+import subprocess, re
 from test_wnm import expect_ack
 from tshark import run_tshark
 from utils import clear_regdom, long_duration_test
+from utils import HwsimSkip
 
 def _test_kernel_bss_leak(dev, apdev, deauth):
     ssid = "test-bss-leak"
@@ -148,3 +150,17 @@ def test_kernel_reg_disconnect(dev, apdev):
     finally:
         dev[0].request("DISCONNECT")
         clear_regdom(hapd, dev)
+
+def test_kernel_kunit(dev, apdev):
+    modules = ('cfg80211-tests', 'mac80211-tests')
+    results = (subprocess.call(['modprobe', mod], stderr=subprocess.PIPE)
+               for mod in modules)
+
+    if all((r != 0 for r in results)):
+        raise HwsimSkip("KUnit tests not available")
+
+    dmesg = subprocess.check_output(['dmesg'])
+    fail_rx = re.compile(b'fail:[^0]')
+    for line in dmesg.split(b'\n'):
+        if fail_rx.search(line):
+            raise Exception(f'kunit test failed: {line.decode("utf-8")}')
-- 
2.43.0




More information about the Hostap mailing list