tests: Add a test for kernel KUnit tests
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@intel.com>
This commit is contained in:
parent
73f06af143
commit
c0674fb4f4
1 changed files with 17 additions and 0 deletions
|
@ -10,9 +10,11 @@ import hostapd
|
||||||
import binascii
|
import binascii
|
||||||
import os, time
|
import os, time
|
||||||
import struct
|
import struct
|
||||||
|
import subprocess, re
|
||||||
from test_wnm import expect_ack
|
from test_wnm import expect_ack
|
||||||
from tshark import run_tshark
|
from tshark import run_tshark
|
||||||
from utils import clear_regdom, long_duration_test
|
from utils import clear_regdom, long_duration_test
|
||||||
|
from utils import HwsimSkip
|
||||||
|
|
||||||
def _test_kernel_bss_leak(dev, apdev, deauth):
|
def _test_kernel_bss_leak(dev, apdev, deauth):
|
||||||
ssid = "test-bss-leak"
|
ssid = "test-bss-leak"
|
||||||
|
@ -148,3 +150,18 @@ def test_kernel_reg_disconnect(dev, apdev):
|
||||||
finally:
|
finally:
|
||||||
dev[0].request("DISCONNECT")
|
dev[0].request("DISCONNECT")
|
||||||
clear_regdom(hapd, dev)
|
clear_regdom(hapd, dev)
|
||||||
|
|
||||||
|
def test_kernel_kunit(dev, apdev):
|
||||||
|
"""KUnit tests"""
|
||||||
|
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")}')
|
||||||
|
|
Loading…
Add table
Reference in a new issue