Allow report lines to have no iperf files.
This fixes an edge case, since when our ping tests fail we won't output
iperf files. Normally this is due to being on the wrong network, but
sometimes it's an actual finding and we want to keep those runs.
Change-Id: Ic596fb34d76689b26a86da81b1570840911498fb
diff --git a/wifitables/report.py b/wifitables/report.py
index 92660b2..9ea993b 100755
--- a/wifitables/report.py
+++ b/wifitables/report.py
@@ -265,16 +265,18 @@
else:
line += ['', '']
- it = open(os.path.join(report_dir, 'iperf'))
- iu = open(os.path.join(report_dir, 'iperfu'))
+ # If the initial ping test fails, we won't collect performance information.
+ # deal with this gracefully.
+ for fn, infile in [(ParseIperfTCP, 'iperf'),
+ (ParseIperfUDP, 'iperfu')]:
+ ipath = os.path.join(report_dir, infile)
+ if not os.path.isfile(ipath):
+ line += [None, None]
+ continue
- tcp_perf = ParseIperfTCP(it.read())
- udp_perf = ParseIperfUDP(iu.read())
- line += [tcp_perf.get('bandwidth'), tcp_perf.get('bandwidth_unit'),
- udp_perf.get('bandwidth'), udp_perf.get('bandwidth_unit')]
-
- iu.close()
- it.close()
+ with open(ipath) as ip:
+ perf = fn(ip.read())
+ line += [perf.get('bandwidth'), perf.get('bandwidth_unit')]
return line
diff --git a/wifitables/report_test.py b/wifitables/report_test.py
index 3abc02e..b324fe4 100644
--- a/wifitables/report_test.py
+++ b/wifitables/report_test.py
@@ -103,5 +103,14 @@
WVFAIL('Failed to read report directory with hyphens in path.')
return
- WVPASS('Report with hypens in path read successfully.')
+ 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.')
diff --git a/wifitables/testdata/wifi-1426545351.85-0085/airport b/wifitables/testdata/wifi-1426545351.85-0085/airport
new file mode 100644
index 0000000..5f16291
--- /dev/null
+++ b/wifitables/testdata/wifi-1426545351.85-0085/airport
@@ -0,0 +1,15 @@
+ agrCtlRSSI: -57
+ agrExtRSSI: 0
+ agrCtlNoise: -87
+ agrExtNoise: 0
+ state: running
+ op mode: station
+ lastTxRate: 243
+ maxRate: 450
+lastAssocStatus: 0
+ 802.11 auth: open
+ link auth: wpa2-psk
+ BSSID: e8:fc:af:fa:a1:8a
+ SSID: NETGEAR20-5G-2
+ MCS: 20
+ channel: 153,-1
diff --git a/wifitables/testdata/wifi-1426545351.85-0085/airportscan b/wifitables/testdata/wifi-1426545351.85-0085/airportscan
new file mode 100644
index 0000000..2da0158
--- /dev/null
+++ b/wifitables/testdata/wifi-1426545351.85-0085/airportscan
@@ -0,0 +1,125 @@
+ SSID BSSID RSSI CHANNEL HT CC SECURITY (auth/unicast/group)
+ Google-A d8:c7:c8:d7:72:30 -63 36,+1 Y US WPA2(802.1x/AES/AES)
+ GIN-3g d8:c7:c8:d7:72:32 -66 36,+1 Y US WPA2(PSK/AES/AES)
+ GIN-2g d8:c7:c8:d7:72:35 -66 36,+1 Y US WPA2(PSK/AES/AES)
+ GIN-2g-poor 9c:1c:12:a4:3e:d6 -80 36,+1 Y US WPA2(PSK/AES/AES)
+ GoogleGuest d8:c7:c8:d7:72:71 -58 48,-1 Y US NONE
+ GoogleWiFi d8:c7:c8:d7:72:74 -58 48,-1 Y US WPA2(802.1x/AES/AES)
+ GIN-3g d8:c7:c8:d7:72:72 -58 48,-1 Y US WPA2(PSK/AES/AES)
+ GIN-2g d8:c7:c8:d7:72:75 -58 48,-1 Y US WPA2(PSK/AES/AES)
+ Google-A d8:c7:c8:d7:72:70 -58 48,-1 Y US WPA2(802.1x/AES/AES)
+ GIN-2g-poor d8:c7:c8:d7:72:76 -58 48,-1 Y US WPA2(PSK/AES/AES)
+ Google-A 00:1a:1e:54:ce:70 -70 48,-1 Y US WPA2(802.1x/AES/AES)
+ rofrankel f4:f5:e8:80:ff:92 -57 149,+1 Y US WPA2(PSK/AES/AES)
+ eqvoip 0e:01:02:14:6d:39 -78 149,+1 Y US WPA2(PSK/AES/AES)
+ TWCWiFi-Passpoint dc:a5:f4:b8:f1:cb -88 149,+1 Y US WPA2(802.1x/AES/AES)
+ GIN-2g-poor 6c:f3:7f:b1:a1:86 -72 11 Y US WPA2(PSK/AES/AES)
+ Google 6c:f3:7f:b1:a1:81 -72 11 Y US WPA2(802.1x/AES/AES)
+ TWCWiFi 7c:95:f3:8a:1e:ef -90 64,-1 Y US NONE
+ TWCWiFi-Passpoint 7c:95:f3:8a:1e:eb -90 64,-1 Y US WPA2(802.1x/AES/AES)
+ CableWiFi dc:a5:f4:b8:f1:cc -87 149,+1 Y US NONE
+ TWCWiFi dc:a5:f4:b8:f1:cf -87 149,+1 Y US NONE
+ CableWiFi 7c:95:f3:8a:1e:ec -89 64,-1 Y US NONE
+ NTTA-GUEST c0:25:5c:f3:d4:b6 -86 56 Y US NONE
+ NTTA-CORP c0:25:5c:f3:d4:b7 -87 56 Y US WPA2(802.1x/AES/AES)
+ NTTA-GUEST c0:25:5c:f3:d4:be -79 56 Y US NONE
+ NTTA-CORP c0:25:5c:f3:d4:bf -80 56 Y US WPA2(802.1x/AES/AES)
+ 5UWN5 00:26:62:91:2b:02 -74 11 Y US WEP
+ T4393 00:26:b8:53:5b:22 -71 11 Y US WEP
+ GoogleGuest 6c:f3:7f:b1:a1:80 -67 11 Y US NONE
+ GIN-2g-poor 9c:1c:12:a4:4c:66 -62 11 Y US WPA2(PSK/AES/AES)
+ GIN-2g 9c:1c:12:a4:4c:65 -63 11 Y US WPA2(PSK/AES/AES)
+ GIN-3g 9c:1c:12:a4:4c:62 -62 11 Y US WPA2(PSK/AES/AES)
+ Google 9c:1c:12:a4:4c:61 -63 11 Y US WPA2(802.1x/AES/AES)
+ Google d8:c7:c8:d7:72:81 -53 11 Y US WPA2(802.1x/AES/AES)
+ GIN-2g-poor d8:c7:c8:d7:72:66 -41 11 Y US WPA2(PSK/AES/AES)
+ GIN-2g d8:c7:c8:d7:72:65 -41 11 Y US WPA2(PSK/AES/AES)
+ GIN-3g d8:c7:c8:d7:72:62 -41 11 Y US WPA2(PSK/AES/AES)
+ Google d8:c7:c8:d7:72:61 -41 11 Y US WPA2(802.1x/AES/AES)
+ GoogleGuest d8:c7:c8:d7:72:60 -41 11 Y US NONE
+ GIN-2g-poor d8:c7:c8:d7:72:c6 -71 11 Y US WPA2(PSK/AES/AES)
+ Google d8:c7:c8:d7:6b:01 -52 6 Y US WPA2(802.1x/AES/AES)
+ jeltz 02:1a:11:f7:f0:c3 -69 6 Y Q2 WPA2(PSK/AES/AES)
+ NETGEAR20 e8:fc:af:fa:a1:89 -47 5,+1 Y -- WPA2(PSK/AES/AES)
+ GSAFNS1441P0208_TestWifi f4:f5:e8:80:f3:cf -53 5 Y US WPA2(PSK/AES/AES)
+ TG1672G12-5G 14:cf:e2:8c:02:15 -84 149,+1 Y US WPA2(PSK/AES/AES)
+ GoogleWiFi d8:c7:c8:d7:73:64 -53 1 Y US WPA2(802.1x/AES/AES)
+ GIN-2g-poor d8:c7:c8:d7:73:66 -44 1 Y US WPA2(PSK/AES/AES)
+ GoogleGuest d8:c7:c8:d7:73:60 -45 1 Y US NONE
+ eqvoip 0e:01:01:14:6d:39 -52 1 Y US WPA2(PSK/AES/AES)
+ Equinix 0e:02:01:14:6c:bd -58 1 Y US NONE
+ Equinix 0e:02:01:14:6d:39 -52 1 Y US NONE
+ eqvoip 0e:01:01:14:6c:bd -58 1 Y US WPA2(PSK/AES/AES)
+ Equinix 0e:02:01:14:6c:c1 -55 1 Y US NONE
+ eqvoip 0e:01:01:14:6c:c1 -55 1 Y US WPA2(PSK/AES/AES)
+ GIN-2g d8:c7:c8:d7:73:65 -44 1 Y US WPA2(PSK/AES/AES)
+ GIN-3g d8:c7:c8:d7:73:62 -44 1 Y US WPA2(PSK/AES/AES)
+ Google d8:c7:c8:d7:73:61 -44 1 Y US WPA2(802.1x/AES/AES)
+ eqvoip 0e:01:01:14:6a:c3 -59 1 Y US WPA2(PSK/AES/AES)
+ TG1672G82-5G 14:cf:e2:8d:a6:85 -86 149,+1 Y US WPA2(PSK/AES/AES)
+ eqvoip 0e:01:02:14:6c:c1 -72 149,+1 Y US WPA2(PSK/AES/AES)
+ Google-A 9c:1c:12:a4:4e:d0 -68 149,+1 Y US WPA2(802.1x/AES/AES)
+ GIN-3g 9c:1c:12:a4:4e:d2 -67 149,+1 Y US WPA2(PSK/AES/AES)
+ Equinix 0e:02:02:14:6c:bd -75 149,+1 Y US NONE
+ GSAFNS1441P0208_TestWifi 88:dc:96:21:6d:45 -58 149,+1 Y US WPA2(PSK/AES/AES)
+ GIN-2g-poor 9c:1c:12:a4:4e:d6 -67 149,+1 Y US WPA2(PSK/AES/AES)
+ GIN-2g 9c:1c:12:a4:4e:d5 -68 149,+1 Y US WPA2(PSK/AES/AES)
+ GoogleGuest 9c:1c:12:a4:4e:d1 -68 149,+1 Y US NONE
+ foo f8:8f:ca:00:19:b7 -72 149 Y -- NONE
+ GIN-2g-poor 00:1a:1e:54:ce:76 -75 48,-1 Y US WPA2(PSK/AES/AES)
+ GIN-2g 00:1a:1e:54:ce:75 -76 48,-1 Y US WPA2(PSK/AES/AES)
+ GIN-3g 00:1a:1e:54:ce:72 -76 48,-1 Y US WPA2(PSK/AES/AES)
+ GoogleGuest 00:1a:1e:54:ce:71 -77 48,-1 Y US NONE
+ GIN-2g-poor 24:de:c6:06:7f:f6 -84 48,-1 Y US WPA2(PSK/AES/AES)
+ GIN-2g 24:de:c6:06:7f:f5 -85 48,-1 Y US WPA2(PSK/AES/AES)
+ GIN-3g 24:de:c6:06:7f:f2 -85 48,-1 Y US WPA2(PSK/AES/AES)
+ GoogleGuest 24:de:c6:06:7f:f1 -84 48,-1 Y US NONE
+ Google-A 9c:1c:12:a4:4c:70 -66 48,-1 Y US WPA2(802.1x/AES/AES)
+ GIN-2g-poor 9c:1c:12:a4:4c:76 -67 48,-1 Y US WPA2(PSK/AES/AES)
+ GIN-2g 9c:1c:12:a4:4c:75 -67 48,-1 Y US WPA2(PSK/AES/AES)
+ GIN-3g 9c:1c:12:a4:4c:72 -67 48,-1 Y US WPA2(PSK/AES/AES)
+ GoogleGuest 9c:1c:12:a4:4c:71 -66 48,-1 Y US NONE
+ NETGEAR20-5G-1 e8:fc:af:fa:a1:88 -58 44,+1 Y -- WPA2(PSK/AES/AES)
+ AutoMoose 00:1a:11:30:57:d5 -79 44 Y US WPA2(PSK/AES/AES)
+ Google-A d8:c7:c8:d7:6b:10 -65 40,-1 Y US WPA2(802.1x/AES/AES)
+ GIN-2g-poor d8:c7:c8:d7:6b:16 -65 40,-1 Y US WPA2(PSK/AES/AES)
+ GIN-2g d8:c7:c8:d7:6b:15 -65 40,-1 Y US WPA2(PSK/AES/AES)
+ GIN-3g d8:c7:c8:d7:6b:12 -65 40,-1 Y US WPA2(PSK/AES/AES)
+ GoogleGuest d8:c7:c8:d7:6b:11 -62 40,-1 Y US NONE
+ Google-A d8:c7:c8:d7:73:70 -51 40,-1 Y US WPA2(802.1x/AES/AES)
+ GIN-2g-poor d8:c7:c8:d7:73:76 -51 40,-1 Y US WPA2(PSK/AES/AES)
+ GIN-2g d8:c7:c8:d7:73:75 -51 40,-1 Y US WPA2(PSK/AES/AES)
+ GIN-3g d8:c7:c8:d7:73:72 -51 40,-1 Y US WPA2(PSK/AES/AES)
+ GoogleGuest d8:c7:c8:d7:73:71 -51 40,-1 Y US NONE
+ AutoMoose a0:0b:ba:82:ff:1d -76 36 Y US WPA2(PSK/AES/AES)
+ GIN-2g-poor d8:c7:c8:d7:72:36 -74 36,+1 Y US WPA2(PSK/AES/AES)
+ GIN-2g 9c:1c:12:a4:3e:d5 -74 36,+1 Y US WPA2(PSK/AES/AES)
+ GIN-3g 9c:1c:12:a4:3e:d2 -74 36,+1 Y US WPA2(PSK/AES/AES)
+ GoogleGuest 9c:1c:12:a4:3e:d1 -73 36,+1 Y US NONE
+ GoogleGuest d8:c7:c8:d7:72:31 -75 36,+1 Y US NONE
+ GoogleWiFi d8:c7:c8:d7:72:94 -54 161,-1 Y US WPA2(802.1x/AES/AES)
+ GIN-3g d8:c7:c8:d7:72:92 -53 161,-1 Y US WPA2(PSK/AES/AES)
+ Google-A 24:de:c6:06:84:50 -78 161,-1 Y US WPA2(802.1x/AES/AES)
+ GIN-2g 24:de:c6:e0:91:55 -76 161,-1 Y US WPA2(PSK/AES/AES)
+ GIN-3g 24:de:c6:e0:91:52 -78 161,-1 Y US WPA2(PSK/AES/AES)
+ Google-A d8:c7:c8:d7:72:90 -53 161,-1 Y US WPA2(802.1x/AES/AES)
+ GIN-2g-poor d8:c7:c8:d7:72:96 -53 161,-1 Y US WPA2(PSK/AES/AES)
+ GIN-2g d8:c7:c8:d7:72:95 -53 161,-1 Y US WPA2(PSK/AES/AES)
+ GoogleGuest d8:c7:c8:d7:72:91 -52 161,-1 Y US NONE
+ Google-A d8:c7:c8:d7:73:d0 -65 157,+1 Y US WPA2(802.1x/AES/AES)
+ GIN-2g-poor d8:c7:c8:d7:73:d6 -65 157,+1 Y US WPA2(PSK/AES/AES)
+ Google-A 6c:f3:7f:b1:a1:90 -75 157,+1 Y US WPA2(802.1x/AES/AES)
+ GIN-2g 6c:f3:7f:b1:a1:95 -76 157,+1 Y US WPA2(PSK/AES/AES)
+ GIN-2g-poor 6c:f3:7f:b1:a1:96 -76 157,+1 Y US WPA2(PSK/AES/AES)
+ GIN-2g d8:c7:c8:d7:73:d5 -65 157,+1 Y US WPA2(PSK/AES/AES)
+ GIN-3g d8:c7:c8:d7:73:d2 -65 157,+1 Y US WPA2(PSK/AES/AES)
+ GoogleGuest d8:c7:c8:d7:73:d1 -65 157,+1 Y US NONE
+ GoogleGuest 6c:f3:7f:b1:a1:91 -72 157,+1 Y US NONE
+ GoogleWiFi d8:c7:c8:d7:72:d4 -65 153,-1 Y US WPA2(802.1x/AES/AES)
+ xfinitywifi dc:a5:f4:b8:f1:ce -87 149,+1 Y US NONE
+ Google-A d8:c7:c8:d7:72:d0 -67 153,-1 Y US WPA2(802.1x/AES/AES)
+ GIN-2g-poor d8:c7:c8:d7:72:d6 -67 153,-1 Y US WPA2(PSK/AES/AES)
+ GIN-2g d8:c7:c8:d7:72:d5 -67 153,-1 Y US WPA2(PSK/AES/AES)
+ GIN-3g d8:c7:c8:d7:72:d2 -67 153,-1 Y US WPA2(PSK/AES/AES)
+ GoogleGuest d8:c7:c8:d7:72:d1 -67 153,-1 Y US NONE
+ NETGEAR20-5G-2 e8:fc:af:fa:a1:8a -50 153,-1 Y -- WPA2(PSK/AES/AES)
diff --git a/wifitables/testdata/wifi-1426545351.85-0085/mcs b/wifitables/testdata/wifi-1426545351.85-0085/mcs
new file mode 100644
index 0000000..2775caf
--- /dev/null
+++ b/wifitables/testdata/wifi-1426545351.85-0085/mcs
@@ -0,0 +1,82 @@
+ . 23 15 . . 23 15 . . 23 15 . . 23 15 . . 23 15 . . 23 21 . .
+23 . 15 . 23 15 . . 23 15 . . 23 15 . . 23 15 . . . 23 15 . .
+23 15 15 . 23 23 15 . 15 . . 15 . . . . . . . . . . . 15 .
+15 15 15 15 . . 23 23 23 23 15 . 15 . . 23 23 . 23 23 15 . 15 . .
+23 23 15 . 15 . 15 . . 23 . 23 23 15 . 15 . . 23 15 . . . . .
+ . 15 15 . 15 15 15 . . 23 23 23 15 . 15 15 . . 23 23 23 . 23 23 15
+ . 15 . . 23 23 21 . 15 15 . . 23 15 . . . . . . . . . . .
+ . . . . . . . . . . . . . . . . . . . . . . . . .
+ . 15 . 15 . 15 15 . . 23 23 23 . 23 15 . . 23 23 15 . 15 . . 23
+15 . 15 . . 23 15 15 . 15 15 15 . . 23 . 23 23 15 . 15 . . . 23
+23 15 . 15 . 15 15 . . 23 . 23 23 23 23 23 23 23 23 23 23 15 . . 23
+23 15 15 . 15 15 . . 23 23 23 23 23 23 23 23 23 23 23 23 23 23 15 . 15
+15 . 15 15 . . . . 23 23 23 23 23 23 23 23 . 23 23 23 23 . 23 23 23
+23 23 23 23 23 23 23 23 23 23 23 23 23 . 23 23 23 23 23 23 23 23 15 . .
+15 15 15 15 . 15 15 . 15 15 . 15 . . 23 23 23 23 21 . 15 15 . . .
+23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 . . 23 23 23
+23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 . 23 23 23 23
+23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23
+23 15 . 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 .
+ . 23 23 23 23 23 23 23 23 23 23 15 . . . 23 23 23 23 23 23 23 23 23 23
+23 23 23 23 23 23 23 23 23 23 . 23 23 23 23 23 23 23 23 23 23 23 23 23 23
+23 23 15 . . 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 . 23 23
+23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 . 23 23 23 23
+23 23 23 23 23 23 23 23 23 23 23 23 23 23 15 . 15 15 15 15 15 15 15 15 15
+15 15 15 15 15 15 . 15 15 15 15 15 15 15 15 . 15 15 15 . . 23 23 23 23
+23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 20 20 20 . 23 23
+23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23
+23 23 . 23 23 23 23 23 23 23 23 23 23 23 23 15 . 15 15 15 15 . . 23 23
+23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 15 15 15 15 15 15 15 15 .
+ . 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 15 15 15 15 15
+ . . 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 15 15 15 15 15 15 . .
+23 23 23 23 23 23 23 23 23 23 23 15 15 15 15 . . 23 23 23 23 23 23 23 15
+15 15 15 15 15 15 . . 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23
+23 15 15 15 . . 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 15 15
+15 15 15 . 15 . . 23 23 23 23 23 23 23 23 23 23 23 23 23 23 15 15 15 15
+15 15 . . 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23
+14 14 14 14 . . 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23
+23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23
+23 23 23 23 23 23 23 23 23 . 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23
+23 23 23 23 23 23 23 14 14 14 14 14 . . 14 14 14 14 14 14 14 14 14 14 14
+14 14 14 14 14 14 14 14 14 14 14 14 . . 23 23 23 23 23 23 23 23 23 23 23
+23 23 23 23 23 14 . 14 . . 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23
+23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 14 . . 23 23 23 23 23 23 23
+23 23 23 23 23 23 23 23 14 . 20 . . 23 23 23 23 23 23 23 23 23 23 23 23
+23 23 23 23 23 23 23 23 23 14 . 14 . . 23 23 23 23 23 23 23 23 23 23 23
+23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23
+23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23
+23 23 23 14 . 14 14 . . 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23
+23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23
+23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 . 23 23 23 23 23
+23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23
+23 23 . 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 . 23
+23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 14 . 14 14 14 14 14 . . 23
+23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 14 . 14 . . 23 23 23 23 23
+23 23 23 23 23 23 23 23 23 23 23 23 23 14 . 14 . . 23 23 23 23 23 23 23
+23 23 23 23 23 23 23 23 23 23 23 23 23 23 14 . 14 . . 23 23 23 23 23 23
+23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 14 . . 23 23 23 23 23 23 23
+23 23 23 23 23 23 23 23 23 23 23 23 23 23 . 23 23 23 23 23 23 23 23 23 23
+23 23 23 23 23 23 23 23 23 23 23 23 14 . 14 . . 23 23 23 23 23 23 23 23
+23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23
+23 23 23 23 23 23 23 23 23 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
+20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
+23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23
+23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23
+23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 14 . . 23 23 23 23
+23 23 23 23 14 . 14 14 14 14 . . 23 23 23 23 23 23 23 23 23 23 23 23 14
+ . 14 . . 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23
+23 23 23 23 23 23 23 15 . 15 . . 23 23 23 23 23 23 23 23 23 23 23 23 23
+23 23 23 23 23 23 23 23 15 . . 23 23 23 23 23 23 23 23 23 23 23 23 23 23
+23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23
+23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23
+23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 15 . . . 23 23
+23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 . 23 23 23 23
+23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23
+23 15 15 . 15 . 14 . . 23 23 14 . 14 . . 14 . 14 14 . 13 . . 23
+23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23
+23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23
+23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23
+23 23 23 23 23 23 23 23 . 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23
+23 23 13 . . 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 13 13 13
+13 13 . . . 13 . . 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
+20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
\ No newline at end of file
diff --git a/wifitables/testdata/wifi-1426545351.85-0085/mcserr b/wifitables/testdata/wifi-1426545351.85-0085/mcserr
new file mode 100644
index 0000000..639dbc7
--- /dev/null
+++ b/wifitables/testdata/wifi-1426545351.85-0085/mcserr
@@ -0,0 +1,5 @@
+tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
+listening on en0, link-type IEEE802_11_RADIO (802.11 plus radiotap header), capture size 65535 bytes
+2352 packets captured
+7333 packets received by filter
+1187 packets dropped by kernel