def testAutoChannel(self): (script, out) = self.MakeTestScript( '[ $3 == autochannel ] && echo "60l (0xd83e)" || true') brcmwifi.WL_EXE = script.name bw = brcmwifi.BrcmWifiWlanConfiguration('wifi0') bw.StartTransaction() bw.Enable = 'True' bw.RadioEnabled = 'True' bw.AutoChannelEnable = 'True' out.truncate() bw.CommitTransaction() output = out.read() out.close() # AutoChannel changes the order of the initial commands # slightly. outlist = [x for x in output.split('\n') if x] self.assertEqual(outlist[0], '-i wifi0 radio on') self.assertEqual(outlist[1], '-i wifi0 down') self.assertEqual(outlist[2], '-i wifi0 band b') self.assertEqual(outlist[3], '-i wifi0 down') self.assertEqual(outlist[4], '-i wifi0 ssid') self.assertEqual(outlist[5], '-i wifi0 ap 0') self.assertTrue(self.RmFromList(outlist, 'spect 0')) self.assertTrue(self.RmFromList(outlist, 'mpc 0')) self.assertTrue(self.RmFromList(outlist, 'up')) self.assertTrue(self.RmFromList(outlist, 'ssid')) self.assertTrue(self.RmFromList(outlist, 'autochannel 1')) self.assertTrue(self.RmFromList(outlist, 'autochannel')) self.assertTrue(self.RmFromList(outlist, 'down')) self.assertTrue(self.RmFromList(outlist, 'mpc 1')) self.assertTrue(self.RmFromList(outlist, 'spect 1'))
def testValidateChannel(self): brcmwifi.WL_EXE = 'testdata/brcmwifi/wlchannel' bw = brcmwifi.BrcmWifiWlanConfiguration('wifi0') self.assertRaises(ValueError, bw.SetChannel, '166') self.assertRaises(ValueError, bw.SetChannel, '14') self.assertRaises(ValueError, bw.SetChannel, '0') self.assertRaises(ValueError, bw.SetChannel, '20')
def testSetSSIDAdvertisementEnabled(self): bw = brcmwifi.BrcmWifiWlanConfiguration('wifi0') bw.StartTransaction() (script, out) = self.MakeTestScript() brcmwifi.WL_EXE = script.name tr.session.cache.flush() bw.Enable = 'True' bw.RadioEnabled = 'True' bw.Channel = '11' out.truncate() bw.SSIDAdvertisementEnabled = 'True' bw.CommitTransaction() output = out.read() outlist = self.VerifyCommonWlCommands(output) self.assertTrue(self.RmFromList(outlist, 'closed 0')) self.assertFalse(outlist) out.truncate() bw.StartTransaction() bw.SSIDAdvertisementEnabled = 'False' bw.CommitTransaction() output = out.read() outlist = self.VerifyCommonWlCommands(output) out.close() self.assertTrue(self.RmFromList(outlist, 'closed 1')) self.assertFalse(outlist)
def testValidateSSID(self): brcmwifi.WL_EXE = 'testdata/brcmwifi/wlssid' bw = brcmwifi.BrcmWifiWlanConfiguration('wifi0') bw.SSID = r'myssid' bw.SSID = r'my ssid' # A ValueError will fail the test here. self.assertRaises(ValueError, bw.SetSSID, r'myssidiswaaaaaaaaaaaaaaaaaytoolongtovalidate')
def testPossibleChannels(self): brcmwifi.WL_EXE = 'testdata/brcmwifi/wlchannels' bw = brcmwifi.BrcmWifiWlanConfiguration('wifi0') self.assertEqual( bw.PossibleChannels, '1-11,36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,' '128,132,136,140,149,153,157,161,165')
def testEncryptionModes(self): bw = brcmwifi.BrcmWifiWlanConfiguration('wifi0') brcmwifi.WL_EXE = 'testdata/brcmwifi/wlwsec0' self.assertEqual(bw.IEEE11iEncryptionModes, 'X_CATAWAMPUS-ORG_None') self.assertEqual(bw.WPAEncryptionModes, 'X_CATAWAMPUS-ORG_None') brcmwifi.WL_EXE = 'testdata/brcmwifi/wlwsec1' self.assertEqual(bw.IEEE11iEncryptionModes, 'WEPEncryption') self.assertEqual(bw.WPAEncryptionModes, 'WEPEncryption') brcmwifi.WL_EXE = 'testdata/brcmwifi/wlwsec2' self.assertEqual(bw.IEEE11iEncryptionModes, 'TKIPEncryption') self.assertEqual(bw.WPAEncryptionModes, 'TKIPEncryption') brcmwifi.WL_EXE = 'testdata/brcmwifi/wlwsec3' self.assertEqual(bw.IEEE11iEncryptionModes, 'WEPandTKIPEncryption') self.assertEqual(bw.WPAEncryptionModes, 'WEPandTKIPEncryption') brcmwifi.WL_EXE = 'testdata/brcmwifi/wlwsec4' self.assertEqual(bw.IEEE11iEncryptionModes, 'AESEncryption') self.assertEqual(bw.WPAEncryptionModes, 'AESEncryption') brcmwifi.WL_EXE = 'testdata/brcmwifi/wlwsec5' self.assertEqual(bw.IEEE11iEncryptionModes, 'WEPandAESEncryption') self.assertEqual(bw.WPAEncryptionModes, 'WEPandAESEncryption') brcmwifi.WL_EXE = 'testdata/brcmwifi/wlwsec6' self.assertEqual(bw.IEEE11iEncryptionModes, 'TKIPandAESEncryption') self.assertEqual(bw.WPAEncryptionModes, 'TKIPandAESEncryption') brcmwifi.WL_EXE = 'testdata/brcmwifi/wlwsec7' self.assertEqual(bw.IEEE11iEncryptionModes, 'WEPandTKIPandAESEncryption') self.assertEqual(bw.WPAEncryptionModes, 'WEPandTKIPandAESEncryption') brcmwifi.WL_EXE = 'testdata/brcmwifi/wlwsec15' self.assertEqual(bw.IEEE11iEncryptionModes, 'WEPandTKIPandAESEncryption') self.assertEqual(bw.WPAEncryptionModes, 'WEPandTKIPandAESEncryption')
def testOperationalRateSet(self): bw = brcmwifi.BrcmWifiWlanConfiguration('wifi0') self.assertEqual(bw.OperationalDataTransmitRates, '1,2,5.5,6,9,11,12,18,24,36,48,54') brcmwifi.WL_EXE = 'testdata/brcmwifi/wlrateset2' tr.session.cache.flush() self.assertEqual(bw.OperationalDataTransmitRates, '1,2,5.5,7.5,11,16.445')
def testInvalidBooleans(self): bw = brcmwifi.BrcmWifiWlanConfiguration('wifi0') self.assertRaises(ValueError, bw.SetAutoRateFallBackEnabled, 'InvalidBool') self.assertRaises(ValueError, bw.SetEnable, 'InvalidBool') self.assertRaises(ValueError, bw.SetRadioEnabled, 'InvalidBool') self.assertRaises(ValueError, bw.SetSSIDAdvertisementEnabled, 'InvalidBool')
def testStatus(self): brcmwifi.WL_EXE = 'testdata/brcmwifi/wlbssup' bw = brcmwifi.BrcmWifiWlanConfiguration('wifi0') self.assertEqual(bw.Status, 'Up') brcmwifi.WL_EXE = 'testdata/brcmwifi/wlbssdown' self.assertEqual(bw.Status, 'Disabled') brcmwifi.WL_EXE = 'testdata/brcmwifi/wlbsserr' self.assertEqual(bw.Status, 'Error')
def testNoEnable(self): (script, out) = self.MakeTestScript() brcmwifi.WL_EXE = script.name bw = brcmwifi.BrcmWifiWlanConfiguration('wifi0') bw.Enable = 'False' output = out.read() out.close() self.assertFalse(output) self.assertFalse(bw.Enable)
def testStatus(self): bw = brcmwifi.BrcmWifiWlanConfiguration('wifi0') self.assertEqual(bw.Status, 'Up') brcmwifi.WL_EXE = 'testdata/brcmwifi/wlbssdown' tr.session.cache.flush() self.assertEqual(bw.Status, 'Disabled') brcmwifi.WL_EXE = 'testdata/brcmwifi/wlbsserr' tr.session.cache.flush() self.assertEqual(bw.Status, 'Error')
def testAuthenticationMode(self): bw = brcmwifi.BrcmWifiWlanConfiguration('wifi0') self.assertRaises(ValueError, bw.SetBasicAuthenticationMode, 'Invalid') bw.BasicAuthenticationMode = 'None' bw.BasicAuthenticationMode = 'SharedAuthentication' self.assertRaises(ValueError, bw.SetIEEE11iAuthenticationMode, 'Invalid') bw.IEEE11iAuthenticationMode = 'PSKAuthentication' self.assertRaises(ValueError, bw.SetWPAAuthenticationMode, 'Invalid') bw.WPAAuthenticationMode = 'PSKAuthentication'
def testNoEnable(self): (script, out) = self.MakeTestScript() brcmwifi.WL_EXE = script.name tr.session.cache.flush() bw = brcmwifi.BrcmWifiWlanConfiguration('wifi0') bw.Enable = 'False' bw.Channel = '11' output = out.read() out.close() self.assertFalse(output) self.assertFalse(bw.Enable)
def testAuthenticationModes(self): (script, out) = self.MakeTestScript() brcmwifi.WL_EXE = script.name bw = brcmwifi.BrcmWifiWlanConfiguration('wifi0') bw.StartTransaction() bw.Enable = 'True' bw.RadioEnabled = 'True' bw.Channel = '11' bw.CommitTransaction() output = out.read() outlist = self.VerifyCommonWlCommands(output, wpa_auth=0) self.assertFalse(outlist) out.truncate() # Test WEP bw.StartTransaction() bw.BeaconType = 'Basic' bw.BasicAuthenticationMode = 'None' bw.BasicEncryptionModes = 'WEPEncryption' bw.CommitTransaction() output = out.read() outlist = self.VerifyCommonWlCommands(output, sup_wpa=0, wpa_auth=0, wsec=1) self.assertFalse(outlist) # Test WPA-TKIP bw.StartTransaction() bw.BeaconType = 'WPA' bw.WPAAuthenticationMode = 'PSKAuthentication' bw.WPAEncryptionModes = 'TKIPEncryption' bw.CommitTransaction() output = out.read() outlist = self.VerifyCommonWlCommands(output, sup_wpa=1, wpa_auth=4, wsec=2) self.assertFalse(outlist) out.truncate() # Test WPA2-AES bw.StartTransaction() bw.BeaconType = '11i' bw.IEEE11iAuthenticationMode = 'PSKAuthentication' bw.IEEE11iEncryptionModes = 'AESEncryption' bw.CommitTransaction() output = out.read() outlist = self.VerifyCommonWlCommands(output, sup_wpa=1, wpa_auth=128, wsec=4) self.assertFalse(outlist) out.truncate()
def testPreSharedKey(self): (script, out) = self.MakeTestScript() brcmwifi.WL_EXE = script.name bw = brcmwifi.BrcmWifiWlanConfiguration('wifi0') bw.StartTransaction() bw.Enable = 'True' bw.PreSharedKeyList[1].PreSharedKey = 'password1' bw.CommitTransaction() output = out.read() outlist = self.VerifyCommonWlCommands(output, rmwep=0, wsec=0) self.assertTrue(self.RmFromList(outlist, 'set_pmk password1')) self.assertFalse(outlist)
def testAutoRateFallBackEnabled(self): bw = brcmwifi.BrcmWifiWlanConfiguration('wifi0') brcmwifi.WL_EXE = 'testdata/brcmwifi/wlinterference0' self.assertFalse(bw.AutoRateFallBackEnabled) brcmwifi.WL_EXE = 'testdata/brcmwifi/wlinterference1' self.assertFalse(bw.AutoRateFallBackEnabled) brcmwifi.WL_EXE = 'testdata/brcmwifi/wlinterference2' self.assertFalse(bw.AutoRateFallBackEnabled) brcmwifi.WL_EXE = 'testdata/brcmwifi/wlinterference3' self.assertTrue(bw.AutoRateFallBackEnabled) brcmwifi.WL_EXE = 'testdata/brcmwifi/wlinterference4' self.assertTrue(bw.AutoRateFallBackEnabled)
def testSetChannel(self): (script, out) = self.MakeTestScript() brcmwifi.WL_EXE = script.name bw = brcmwifi.BrcmWifiWlanConfiguration('wifi0') bw.StartTransaction() bw.Enable = 'True' bw.RadioEnabled = 'True' bw.Channel = '11' bw.CommitTransaction() output = out.read() out.close() outlist = self.VerifyCommonWlCommands(output, autochan=False) self.assertFalse(outlist)
def testSetOperatingFrequencyBand2_4GHz(self): bw = brcmwifi.BrcmWifiWlanConfiguration('wifi0') (script, out) = self.MakeTestScript() brcmwifi.WL_EXE = script.name bw.StartTransaction() bw.Enable = 'True' bw.RadioEnabled = 'True' bw.Channel = '11' out.truncate() bw.OperatingFrequencyBand = '2.4GHz' bw.CommitTransaction() output = out.read() out.close() outlist = self.VerifyCommonWlCommands(output, band='b') self.assertFalse(outlist)
def testSetBSSID(self): (script, out) = self.MakeTestScript() brcmwifi.WL_EXE = script.name bw = brcmwifi.BrcmWifiWlanConfiguration('wifi0') bw.StartTransaction() bw.Enable = 'True' bw.RadioEnabled = 'True' out.truncate() bw.BSSID = '00:99:aa:bb:cc:dd' bw.CommitTransaction() output = out.read() out.close() outlist = self.VerifyCommonWlCommands(output) self.assertTrue(self.RmFromList(outlist, 'bssid 00:99:aa:bb:cc:dd')) self.assertFalse(outlist)
def testSetTransmitPower(self): bw = brcmwifi.BrcmWifiWlanConfiguration('wifi0') (script, out) = self.MakeTestScript() brcmwifi.WL_EXE = script.name bw.StartTransaction() bw.Enable = 'True' bw.RadioEnabled = 'True' out.truncate() bw.TransmitPower = '77' bw.CommitTransaction() output = out.read() out.close() outlist = self.VerifyCommonWlCommands(output) self.assertTrue(self.RmFromList(outlist, 'pwr_percent 77')) self.assertFalse(outlist)
def testAutoRateFallBackEnabled(self): bw = brcmwifi.BrcmWifiWlanConfiguration('wifi0') self.assertFalse(bw.AutoRateFallBackEnabled) brcmwifi.WL_EXE = 'testdata/brcmwifi/wlinterference1' tr.session.cache.flush() self.assertFalse(bw.AutoRateFallBackEnabled) brcmwifi.WL_EXE = 'testdata/brcmwifi/wlinterference2' tr.session.cache.flush() self.assertFalse(bw.AutoRateFallBackEnabled) brcmwifi.WL_EXE = 'testdata/brcmwifi/wlinterference3' tr.session.cache.flush() self.assertTrue(bw.AutoRateFallBackEnabled) brcmwifi.WL_EXE = 'testdata/brcmwifi/wlinterference4' tr.session.cache.flush() self.assertTrue(bw.AutoRateFallBackEnabled)
def testSetRegulatoryDomain(self): bw = brcmwifi.BrcmWifiWlanConfiguration('wifi0') bw.StartTransaction() bw.RegulatoryDomain = 'US' (script, out) = self.MakeTestScript() brcmwifi.WL_EXE = script.name bw.Enable = 'True' out.truncate() bw.RadioEnabled = 'True' bw.Channel = '11' bw.CommitTransaction() output = out.read() out.close() outlist = self.VerifyCommonWlCommands(output) self.assertTrue(self.RmFromList(outlist, 'country US')) self.assertFalse(outlist)
def testSetOperatingFrequencyBand5GHz(self): bw = brcmwifi.BrcmWifiWlanConfiguration('wifi0') (script, out) = self.MakeTestScript( '[ $3 == autochannel ] && echo "60l (0xd83e)" || true') brcmwifi.WL_EXE = script.name bw.StartTransaction() bw.Enable = 'True' bw.RadioEnabled = 'True' bw.Channel = '11' out.truncate() bw.OperatingFrequencyBand = '5GHz' bw.CommitTransaction() output = out.read() out.close() outlist = self.VerifyCommonWlCommands(output, band='a', autochan=True) self.assertTrue(self.RmFromList(outlist, 'chanspec 60l')) self.assertFalse(outlist)
def testWepKey(self): (script, out) = self.MakeTestScript() brcmwifi.WL_EXE = script.name bw = brcmwifi.BrcmWifiWlanConfiguration('wifi0') bw.StartTransaction() bw.Enable = 'True' bw.WEPKeyList[1].WEPKey = 'password1' bw.WEPKeyList[2].WEPKey = 'password2' bw.WEPKeyList[3].WEPKey = 'password3' bw.WEPKeyList[4].WEPKey = 'password4' bw.CommitTransaction() output = out.read() outlist = self.VerifyCommonWlCommands(output, rmwep=4, wsec=0) self.assertTrue(self.RmFromList(outlist, 'addwep 0 password1')) self.assertTrue(self.RmFromList(outlist, 'addwep 1 password2')) self.assertTrue(self.RmFromList(outlist, 'addwep 2 password3')) self.assertTrue(self.RmFromList(outlist, 'addwep 3 password4')) print outlist self.assertFalse(outlist)
def testSetRadioEnabled(self): (script, out) = self.MakeTestScript() brcmwifi.WL_EXE = script.name bw = brcmwifi.BrcmWifiWlanConfiguration('wifi0') bw.StartTransaction() bw.Enable = 'True' out.truncate() bw.RadioEnabled = 'True' bw.CommitTransaction() output = out.read() outlist = self.VerifyCommonWlCommands(output) self.assertFalse(outlist) out.truncate() bw.StartTransaction() bw.RadioEnabled = 'False' bw.CommitTransaction() output = out.read() out.close() self.assertEqual(output, '-i wifi0 radio off\n')
def testAssociatedDevice(self): bw = brcmwifi.BrcmWifiWlanConfiguration('wifi0') self.assertEqual(bw.TotalAssociations, 3) speeds = { 'a0:b0:c0:00:00:01': '1', 'a0:b0:c0:00:00:02': '2', 'a0:b0:c0:00:00:03': '3' } auth = { 'a0:b0:c0:00:00:01': True, 'a0:b0:c0:00:00:02': False, 'a0:b0:c0:00:00:03': True } uplink = { 'a0:b0:c0:00:00:01': 1001, 'a0:b0:c0:00:00:02': 2001, 'a0:b0:c0:00:00:03': 3001 } dnlink = { 'a0:b0:c0:00:00:01': 1000, 'a0:b0:c0:00:00:02': 2000, 'a0:b0:c0:00:00:03': 3000 } active = { 'a0:b0:c0:00:00:01': True, 'a0:b0:c0:00:00:02': True, 'a0:b0:c0:00:00:03': False } seen = set() for ad in bw.AssociatedDeviceList.values(): tr.handle.ValidateExports(ad) mac = ad.AssociatedDeviceMACAddress.lower() self.assertEqual(ad.LastDataTransmitRate, speeds[mac]) self.assertEqual(ad.AssociatedDeviceAuthenticationState, auth[mac]) self.assertEqual(ad.X_CATAWAMPUS_ORG_LastDataUplinkRate, uplink[mac]) self.assertEqual(ad.X_CATAWAMPUS_ORG_LastDataDownlinkRate, dnlink[mac]) self.assertEqual(ad.X_CATAWAMPUS_ORG_Active, active[mac]) seen.add(mac) self.assertEqual(len(seen), 3)
def testStats(self): netdev.PROC_NET_DEV = 'testdata/brcmwifi/proc_net_dev' bw = brcmwifi.BrcmWifiWlanConfiguration('wifi0') stats = bw.Stats stats.ValidateExports() # pylint: disable-msg=E1101 self.assertEqual(stats.BroadcastPacketsReceived, None) self.assertEqual(stats.BroadcastPacketsSent, None) self.assertEqual(stats.BytesReceived, '1') self.assertEqual(stats.BytesSent, '9') self.assertEqual(stats.DiscardPacketsReceived, '4') self.assertEqual(stats.DiscardPacketsSent, '11') self.assertEqual(stats.ErrorsReceived, '9') self.assertEqual(stats.ErrorsSent, '12') self.assertEqual(stats.MulticastPacketsReceived, '8') self.assertEqual(stats.MulticastPacketsSent, None) self.assertEqual(stats.PacketsReceived, '100') self.assertEqual(stats.PacketsSent, '10') self.assertEqual(stats.UnicastPacketsReceived, '92') self.assertEqual(stats.UnicastPacketsSent, '10') self.assertEqual(stats.UnknownProtoPacketsReceived, None)
def testAssociatedDevice(self): brcmwifi.WL_EXE = 'testdata/brcmwifi/wlassociated' bw = brcmwifi.BrcmWifiWlanConfiguration('wifi0') self.assertEqual(bw.TotalAssociations, 3) speeds = { 'a0:b0:c0:00:00:01': '1', 'a0:b0:c0:00:00:02': '2', 'a0:b0:c0:00:00:03': '3' } auth = { 'a0:b0:c0:00:00:01': True, 'a0:b0:c0:00:00:02': False, 'a0:b0:c0:00:00:03': True } seen = set() for ad in bw.AssociatedDeviceList.values(): ad.ValidateExports() mac = ad.AssociatedDeviceMACAddress.lower() self.assertEqual(ad.LastDataTransmitRate, speeds[mac]) self.assertEqual(ad.AssociatedDeviceAuthenticationState, auth[mac]) seen.add(mac) self.assertEqual(len(seen), 3)
def testSetRadioEnabled(self): (script, out) = self.MakeTestScript() brcmwifi.WL_EXE = script.name tr.session.cache.flush() bw = brcmwifi.BrcmWifiWlanConfiguration('wifi0') bw.StartTransaction() bw.Enable = 'True' out.truncate() bw.RadioEnabled = 'True' bw.Channel = '11' bw.CommitTransaction() output = out.read() outlist = self.VerifyCommonWlCommands(output) self.assertFalse(outlist) self.assertTrue(os.path.isfile(brcmwifi.WL_RADIO_STATE_MARKER_FILE)) out.truncate() bw.StartTransaction() bw.RadioEnabled = 'False' bw.CommitTransaction() output = out.read() out.close() self.assertEqual(output, '-i wifi0 radio off\n') self.assertFalse(os.path.isfile(brcmwifi.WL_RADIO_STATE_MARKER_FILE))
def testSetAutoRateFallBackEnabled(self): (script, out) = self.MakeTestScript() brcmwifi.WL_EXE = script.name bw = brcmwifi.BrcmWifiWlanConfiguration('wifi0') bw.StartTransaction() bw.Enable = 'True' bw.RadioEnabled = 'True' out.truncate() bw.AutoRateFallBackEnabled = 'True' bw.CommitTransaction() output = out.read() outlist = self.VerifyCommonWlCommands(output) self.assertTrue(self.RmFromList(outlist, 'interference 4')) self.assertFalse(outlist) out.truncate() bw.StartTransaction() bw.AutoRateFallBackEnabled = 'False' bw.CommitTransaction() output = out.read() outlist = self.VerifyCommonWlCommands(output) out.close() self.assertTrue(self.RmFromList(outlist, 'interference 3')) self.assertFalse(outlist)