blob: 6ccb8320a5edc303abaa9eb003438fbb81278867 [file] [log] [blame]
"""Tests for report."""
import os
import ifstats
import report
from wvtest import * # pylint: disable=wildcard-import
@wvtest
def LoadExternalData():
print
report.LoadNRates()
WVPASS(report.nrates)
idx = (0, 20, 800)
print 'Testing MCS rate in file', idx
WVPASSEQ(report.nrates[idx], 6.5)
idx = (25, 40, 400)
print 'Testing computed MCS rate', idx
WVPASSEQ(report.nrates[idx], 120)
print
report.LoadChannels()
WVPASS(report.channels)
ch = 5
print 'Testing 2.4GHz channel', ch
WVPASSEQ(report.channels[ch], 2432)
ch = 149
print 'Testing 5GHz channel', ch
WVPASSEQ(report.channels[ch], 5745)
@wvtest
def TVBoxReport():
rpt = 'testdata/wifi-1424739295.41-0010'
print 'Checking IP address'
system, cache = ifstats.Restore(rpt)
addrmap = ifstats.ParseIpAddr(cache['ipaddr'])
WVPASSEQ(addrmap.get('lo'), '127.0.0.1/32')
WVPASSEQ(addrmap.get('wcli0'), '192.168.1.222/24')
print 'Checking for link information'
data = ifstats.ParseIwLink(cache['iwlink'])
WVPASSEQ(data.get('SSID'), 'GSAFNS1441P0208_TestWifi')
WVPASSEQ(data.get('BSSID'), 'f4:f5:e8:80:f3:d0')
line = report.ReportLine(rpt)
print ('Checking report. Implemented measures: steps, channel, width, rssi, '
'TCP performance, UDP performance')
print line
(steps, ch, width, rssi, _, _, _, _, _,
tcperf, tcpbw, udperf, udpbw) = line
WVPASSEQ(steps, 10)
WVPASSEQ(ch, 5745)
WVPASSEQ(width, 80)
WVPASSEQ(rssi, -39)
WVPASSEQ(tcperf, 92.1)
WVPASSEQ(tcpbw, 'Mbits/sec')
WVPASSEQ(udperf, 91.2)
WVPASSEQ(udpbw, 'Mbits/sec')
@wvtest
def MacbookReport():
rpt = 'testdata/wifi-1424744066.47-0010'
line = report.ReportLine(rpt)
print ('Checking report. Implemented measures: steps, channel, width, rssi, '
'noise, devices on channel, off channel, MCS, PHY rate, '
'TCP performance, UDP performance.')
print line
(steps, ch, width, rssi, noise, shared, conflict,
mcs, phy, tcperf, tcpbw, udperf, udpbw) = line
WVPASSEQ(steps, 10)
WVPASSEQ(ch, 5755)
WVPASSEQ(width, 40)
WVPASSEQ(rssi, -29)
WVPASSEQ(noise, -90)
WVPASSEQ(shared, 17)
WVPASSEQ(conflict, 10)
WVPASSEQ(mcs, 21)
WVPASS(abs(phy - 340.9) < 0.1)
WVPASSEQ(tcperf, 196.0)
WVPASSEQ(tcpbw, 'Mbits/sec')
WVPASSEQ(udperf, 260.0)
WVPASSEQ(udpbw, 'Mbits/sec')
@wvtest
def ReportWithHyphensInPath():
rpt = 'testdata/this-failed-before/wifi-1425669615.33-0010'
try:
_ = report.ReportLine(rpt)
except ValueError:
WVFAIL('Failed to read report directory with hyphens in path.')
return
WVPASS('Report with hyphens in path read successfully.')
@wvtest
def ReportWithoutIperfFiles():
try:
rl = report.ReportLine('testdata/wifi-1426545351.85-0085')
WVPASSEQ(rl[-4:], [None, None, None, None])
except IOError:
WVFAIL('Failed to read report without iperf output files.')