def test_reference_vector(): t = Telemetry(None,None) d = Delimiter(cb) d.decode(bytearray.fromhex("f70700666f6f0062617247027f")) assert t._decode_frame(Cache.frame) == ('foo','bar') d.decode(bytearray.fromhex("f70700666f6f2077697468207370616365730062617220776974682073706163657317dc7f")) assert t._decode_frame(Cache.frame) == ('foo with spaces','bar with spaces') d.decode(bytearray.fromhex("f7070030313233343536373839003031323334353637383973c07f")) assert t._decode_frame(Cache.frame) == ('0123456789', '0123456789') d.decode(bytearray.fromhex("f703006b6c6d6f707100ffffffff107b7f")) assert t._decode_frame(Cache.frame) == ('klmopq', 4294967295)
def test_delimiter_stats(): t = Telemetry(None,None) d = Delimiter(cb) measures = d.stats() assert measures["rx_processed_bytes"] == 0 assert measures["rx_discarded_bytes"] == 0 assert measures["rx_escaped_bytes"] == 0 assert measures["rx_complete_frames"] == 0 assert measures["rx_uncomplete_frames"] == 0 assert measures["tx_processed_bytes"] == 0 assert measures["tx_encoded_frames"] == 0 assert measures["tx_escaped_bytes"] == 0 d.decode(bytearray.fromhex("f70700666f6f0062617247027f")) measures = d.stats() assert measures["rx_processed_bytes"] == 13 assert measures["rx_discarded_bytes"] == 0 assert measures["rx_escaped_bytes"] == 0 assert measures["rx_complete_frames"] == 1 assert measures["rx_uncomplete_frames"] == 0 assert measures["tx_processed_bytes"] == 0 assert measures["tx_encoded_frames"] == 0 assert measures["tx_escaped_bytes"] == 0 # Added 'eade' to previous frame d.decode(bytearray.fromhex("eadef70700666f6f0062617247027f")) measures = d.stats() assert measures["rx_processed_bytes"] == 13 + 13 + 2 assert measures["rx_discarded_bytes"] == 2 assert measures["rx_escaped_bytes"] == 0 assert measures["rx_complete_frames"] == 2 assert measures["rx_uncomplete_frames"] == 0 assert measures["tx_processed_bytes"] == 0 assert measures["tx_encoded_frames"] == 0 assert measures["tx_escaped_bytes"] == 0 # Added 'f7eade' to original frame d.decode(bytearray.fromhex("f7eadef70700666f6f0062617247027f")) measures = d.stats() assert measures["rx_processed_bytes"] == 13 + 13 + 2 + 13 + 3 assert measures["rx_discarded_bytes"] == 2 # bytes eade after f7 are not discarded because after a valid SOF assert measures["rx_escaped_bytes"] == 0 assert measures["rx_complete_frames"] == 3 assert measures["rx_uncomplete_frames"] == 1 # but 1 more uncomplete frame assert measures["tx_processed_bytes"] == 0 assert measures["tx_encoded_frames"] == 0 assert measures["tx_escaped_bytes"] == 0 # Dummy frame to test escaping d.decode(bytearray.fromhex("f7007df7007d7d007d7f7f")) measures = d.stats() assert measures["rx_processed_bytes"] == 13 + 13 + 2 + 13 + 3 + 11 assert measures["rx_discarded_bytes"] == 2 assert measures["rx_escaped_bytes"] == 3 # 3 escaped bytes assert measures["rx_complete_frames"] == 4 assert measures["rx_uncomplete_frames"] == 1 assert measures["tx_processed_bytes"] == 0 assert measures["tx_encoded_frames"] == 0 assert measures["tx_escaped_bytes"] == 0