mirror of
				https://git.kernel.org/pub/scm/network/wireless/iwd.git
				synced 2025-10-30 20:37:26 +01:00 
			
		
		
		
	auto-t: add a no candidate test to testAPRoam
This tests the new behavior where the roam request does not indicate disassociation is imminent. In this case if no candidates are found IWD should not roam.
This commit is contained in:
		
							parent
							
								
									cd258df337
								
							
						
					
					
						commit
						174e9f2fe9
					
				| @ -12,11 +12,7 @@ from hostapd import HostapdCLI | ||||
| 
 | ||||
| class Test(unittest.TestCase): | ||||
| 
 | ||||
|     def test_connection_success(self): | ||||
|         bss_hostapd = [ HostapdCLI(config='ssid1.conf'), | ||||
|                         HostapdCLI(config='ssid2.conf'), | ||||
|                         HostapdCLI(config='ssid3.conf') ] | ||||
| 
 | ||||
|     def validate(self, expect_roam=True): | ||||
|         wd = IWD() | ||||
| 
 | ||||
|         devices = wd.list_devices(1) | ||||
| @ -29,38 +25,47 @@ class Test(unittest.TestCase): | ||||
|         condition = 'not obj.connected' | ||||
|         wd.wait_for_object_condition(ordered_network.network_object, condition) | ||||
| 
 | ||||
|         device.connect_bssid(bss_hostapd[0].bssid) | ||||
|         device.connect_bssid(self.bss_hostapd[0].bssid) | ||||
| 
 | ||||
|         condition = 'obj.state == DeviceState.connected' | ||||
|         wd.wait_for_object_condition(device, condition) | ||||
| 
 | ||||
|         bss_hostapd[0].wait_for_event('AP-STA-CONNECTED') | ||||
|         self.bss_hostapd[0].wait_for_event('AP-STA-CONNECTED') | ||||
| 
 | ||||
|         self.assertFalse(bss_hostapd[1].list_sta()) | ||||
|         self.assertFalse(self.bss_hostapd[1].list_sta()) | ||||
| 
 | ||||
|         bss_hostapd[0].send_bss_transition(device.address, | ||||
|                 [(bss_hostapd[1].bssid, '8f0000005102060603000000')]) | ||||
|         self.bss_hostapd[0].send_bss_transition(device.address, | ||||
|                 [(self.bss_hostapd[1].bssid, '8f0000005102060603000000')], | ||||
|                 disassoc_imminent=expect_roam) | ||||
| 
 | ||||
|         condition = 'obj.state == DeviceState.roaming' | ||||
|         wd.wait_for_object_condition(device, condition) | ||||
|         if expect_roam: | ||||
|             from_condition = 'obj.state == DeviceState.roaming' | ||||
|             to_condition = 'obj.state == DeviceState.connected' | ||||
|             wd.wait_for_object_change(device, from_condition, to_condition) | ||||
| 
 | ||||
|         condition = 'obj.state != DeviceState.roaming' | ||||
|         wd.wait_for_object_condition(device, condition) | ||||
| 
 | ||||
|         condition = 'obj.state == DeviceState.connected' | ||||
|         wd.wait_for_object_condition(device, condition) | ||||
| 
 | ||||
|         bss_hostapd[1].wait_for_event('AP-STA-CONNECTED %s' % device.address) | ||||
|             self.bss_hostapd[1].wait_for_event('AP-STA-CONNECTED %s' % device.address) | ||||
|         else: | ||||
|             device.wait_for_event("no-roam-candidates") | ||||
| 
 | ||||
|         device.disconnect() | ||||
| 
 | ||||
|         condition = 'not obj.connected' | ||||
|         wd.wait_for_object_condition(ordered_network.network_object, condition) | ||||
| 
 | ||||
|     def test_disassoc_imminent(self): | ||||
|         self.validate(expect_roam=True) | ||||
| 
 | ||||
|     def test_no_candidates(self): | ||||
|         self.validate(expect_roam=False) | ||||
| 
 | ||||
|     @classmethod | ||||
|     def setUpClass(cls): | ||||
|         IWD.copy_to_storage('TestAPRoam.psk') | ||||
| 
 | ||||
|         cls.bss_hostapd = [ HostapdCLI(config='ssid1.conf'), | ||||
|                             HostapdCLI(config='ssid2.conf'), | ||||
|                             HostapdCLI(config='ssid3.conf') ] | ||||
| 
 | ||||
|     @classmethod | ||||
|     def tearDownClass(cls): | ||||
|         IWD.clear_storage() | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 James Prestwood
						James Prestwood