Fix dropped change flags + FIDI parsing
- capture.py: DirectSniffer/GsmtapListener yield (type, data, flags), CaptureManager passes flags to insert_message (change flags were previously dropped, leaving every change row with flags=0) - protocol.py: add _parse_fidi (1-byte value) — FIDI was mis-mapped to _parse_change (4-byte flags), so FIDI messages were silently dropped - database.py: pass flags into decode_sniff_msg - decode.py: decode_change(flags) reads flags directly; decode_sniff_msg gains flags parameter; change messages no longer require non-empty data - tests: fix FIDI test, add change/fidi decode tests (43 total)
This commit is contained in:
1 parent
4097bb864e
commit
2a58fec0a3
7 files changed
+52
-20
No files matched your search
@@ -83,13 +83,14 @@ class TestParseMessage(unittest.TestCase):
|
||||
self.assertEqual(msg.flags, CHANGE_FLAG_TIMEOUT_WT)
|
||||
|
||||
def test_fidi_message(self):
|
||||
payload = struct.pack('<I', 0x97) # Fi=9, Di=7
|
||||
payload = b'\x97' # Fi=9, Di=7
|
||||
buf = _build_hdr(SIMTRACE_MSGC_SNIFF, SIMTRACE_MSGT_SNIFF_FIDI,
|
||||
payload=payload)
|
||||
msg, consumed = parse_message(buf)
|
||||
self.assertEqual(msg.type, 'fidi')
|
||||
self.assertEqual(len(msg.data), 0)
|
||||
self.assertEqual(msg.flags, 0x97)
|
||||
self.assertEqual(len(msg.data), 1)
|
||||
self.assertEqual(msg.data, b'\x97')
|
||||
self.assertEqual(msg.flags, 0)
|
||||
|
||||
def test_atr_message(self):
|
||||
atr = b'\x3b\x9e\x12\x34\x56\x78\x90'
|
||||
|
||||
Reference in new issue
Block a user