[PATCH v2 3/4] auto-t: Add test to roam back to BSS with existing PMKSA

James Prestwood <[email protected]> Mon, 9 Mar 2026 08:36:28 -0700
Newsgroups dev.linux.lists.iwd
Message-ID <[email protected]>
This test exposes a bug where if a PMKSA already exists for a BSS
that we are roaming to IWD crashes due to a missing check in
station.c
---
 autotests/testSAE-roam/connection_test.py | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/autotests/testSAE-roam/connection_test.py b/autotests/testSAE-roam/connection_test.py
index c813f00f..243178a4 100644
--- a/autotests/testSAE-roam/connection_test.py
+++ b/autotests/testSAE-roam/connection_test.py
@@ -109,6 +109,26 @@ class Test(unittest.TestCase):
 
         self.validate_connection(wd, True, check_used_pmksa=True)
 
+    def test_ft_roam_with_pmksa(self):
+        wd = IWD(True)
+
+        self.bss_hostapd[0].set_value('wpa_key_mgmt', 'FT-SAE SAE')
+        self.bss_hostapd[0].reload()
+        self.bss_hostapd[0].wait_for_event("AP-ENABLED")
+        self.bss_hostapd[1].set_value('wpa_key_mgmt', 'FT-SAE SAE')
+        self.bss_hostapd[1].reload()
+        self.bss_hostapd[1].wait_for_event("AP-ENABLED")
+        self.bss_hostapd[2].set_value('wpa_key_mgmt', 'FT-PSK')
+        self.bss_hostapd[2].reload()
+        self.bss_hostapd[2].wait_for_event("AP-ENABLED")
+
+        device = wd.list_devices(1)[0]
+
+        self.connect(wd, device, self.bss_hostapd[0])
+
+        self.roam(wd, device, self.bss_hostapd[0], self.bss_hostapd[1])
+        self.roam(wd, device, self.bss_hostapd[1], self.bss_hostapd[0])
+
     def test_reassociate_roam_success(self):
         wd = IWD(True)
 
-- 
2.34.1