-
Notifications
You must be signed in to change notification settings - Fork 408
/
Copy pathtest_wireshark.py
51 lines (36 loc) · 2.24 KB
/
test_wireshark.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import canmatrix.formats.wireshark
import io
import os
def test_wireshark_frame_exists():
db = canmatrix.CanMatrix()
db.add_frame(canmatrix.Frame("some_frame"))
outlua = io.BytesIO()
canmatrix.formats.dump(db, outlua, "wireshark")
assert 'some_frame = Proto("some_frame", "some_frame")' in outlua.getvalue().decode("utf8")
def test_wireshark_muliplexed_frame():
# here = os.path.dirname(os.path.realpath(__file__))
# db = canmatrix.formats.loadp_flat(os.path.join(here, "test_frame_decoding.dbc"))
test_file = "tests/files/dbc/test_frame_decoding.dbc"
db = canmatrix.formats.loadp_flat(test_file)
outlua = io.BytesIO()
canmatrix.formats.dump(db, outlua, "wireshark")
assert "if muxer ==" in outlua.getvalue().decode("utf8")
assert "if muxer == 0" in outlua.getvalue().decode("utf8")
assert "if muxer == 1" in outlua.getvalue().decode("utf8")
def test_wireshark_signal_exists():
db = canmatrix.CanMatrix()
db.add_frame(canmatrix.Frame("some_frame"))
db.frame_by_name("some_frame").add_signal(canmatrix.Signal("some_signal", start_bit=3, size=11, factor=1.5, offset=42, unit="cm" ))
outlua = io.BytesIO()
canmatrix.formats.dump(db, outlua, "wireshark")
assert 'my_frame_tree:add(some_frame_some_signal, reversed_pdu:bitfield(-14,11))' in outlua.getvalue().decode("utf8")
assert 'my_frame_tree:add(some_frame_some_signal, reversed_pdu:bitfield(-14,11) - 2048)' in outlua.getvalue().decode("utf8")
def test_wireshark_get_coorect_bits_for_signal():
frame = canmatrix.Frame("some_frame")
sig_big_endian = canmatrix.Signal("some_signal", is_little_endian=False, start_bit=3, size=11, factor=1.5, offset=42, unit="cm")
sig_little_endian = canmatrix.Signal("some_signal2", is_little_endian=True, start_bit=3, size=11, factor=1.5, offset=42, unit="cm")
frame.add_signal(sig_big_endian)
frame.add_signal(sig_little_endian)
assert 'pdu:bitfield(3,11)' == canmatrix.formats.wireshark.get_coorect_bits_for_signal(frame, sig_big_endian)
assert 'reversed_pdu:bitfield(-14,11)' == canmatrix.formats.wireshark.get_coorect_bits_for_signal(frame, sig_little_endian)
assert 'pdu:bitfield(3,3)' == canmatrix.formats.wireshark.get_coorect_bits_for_signal(frame, sig_big_endian, 3)