def test_IdbFcsLen(): val_1 = 97 c1 = option.IdbFcsLen(val_1) c1u = option.IdbFcsLen.unpack(c1.pack()) assert c1.fcs_len == c1u.fcs_len == val_1 assert util.classname(c1) == util.classname( c1u) == 'pcapng.option.IdbFcsLen'
def test_IdbFilter(): s1 = 'Natural Brown #4' c1 = option.IdbFilter(s1) c1u = option.IdbFilter.unpack(c1.pack()) assert c1.content == c1u.content == s1 assert util.classname(c1) == util.classname( c1u) == 'pcapng.option.IdbFilter'
def test_IdbTsResol(): power = 3 is_power_2 = False c1 = option.IdbTsResol(power, is_power_2) packed_bytes = c1.pack() c1u = option.IdbTsResol.unpack(packed_bytes) assert len(packed_bytes) == 8 assert c1.ts_resol_power == c1u.ts_resol_power == power assert c1.is_power_2 == c1u.is_power_2 == is_power_2 assert util.classname(c1) == util.classname( c1u) == 'pcapng.option.IdbTsResol' util.assert_rel_equal(c1.get_ts_resolution_secs(), 0.001, digits=5) util.assert_rel_equal(c1u.get_ts_resolution_secs(), 0.001, digits=5) power = 5 is_power_2 = True c1 = option.IdbTsResol(power, is_power_2) packed_bytes = c1.pack() c1u = option.IdbTsResol.unpack(packed_bytes) assert len(packed_bytes) == 8 assert c1.ts_resol_power == c1u.ts_resol_power == power assert c1.is_power_2 == c1u.is_power_2 == is_power_2 assert util.classname(c1) == util.classname( c1u) == 'pcapng.option.IdbTsResol' util.assert_rel_equal(c1.get_ts_resolution_secs(), (1.0 / 32.0), digits=5) util.assert_rel_equal(c1u.get_ts_resolution_secs(), (1.0 / 32.0), digits=5)
def test_IdbDescription(): s1 = 'ifc supercool' c1 = option.IdbDescription(s1) c1u = option.IdbDescription.unpack(c1.pack()) assert c1.content == c1u.content == s1 assert util.classname(c1) == util.classname( c1u) == 'pcapng.option.IdbDescription'
def test_ShbUserAppl(): s1 = 'x86 water heater' c1 = option.ShbUserAppl(s1) c1u = option.ShbUserAppl.unpack(c1.pack()) assert c1.content == c1u.content == s1 assert util.classname(c1) == util.classname( c1u) == 'pcapng.option.ShbUserAppl'
def test_CustomBinaryNonCopyable(): s1 = 'Mary had a non-copyable binary lamb' c1 = option.CustomBinaryNonCopyable(pen.BROCADE_PEN, s1) c1u = option.CustomBinaryNonCopyable.unpack(c1.pack()) assert c1.content == c1u.content == s1 assert c1.pen_val == c1u.pen_val == pen.BROCADE_PEN assert util.classname(c1) == util.classname( c1u) == 'pcapng.option.CustomBinaryNonCopyable'
def test_EpbFlags(): content = to_bytes([1, 2, 3, 4]) c1 = option.EpbFlags(content) packed_bytes = c1.pack() c1u = option.EpbFlags.unpack(packed_bytes) assert len(packed_bytes) == 8 #todo add this test everywhere assert c1.content == c1u.content == content assert util.classname(c1) == util.classname( c1u) == 'pcapng.option.EpbFlags'
def test_IdbSpeed(): speed = 123456789 c1 = option.IdbSpeed(speed) packed_bytes = c1.pack() c1u = option.IdbSpeed.unpack(packed_bytes) assert len(packed_bytes) == 12 assert c1.speed == c1u.speed == speed assert util.classname(c1) == util.classname( c1u) == 'pcapng.option.IdbSpeed'
def test_IdbEuiAddr(): addr_bytes = [11, 12, 13, 14, 15, 16, 17, 18] c1 = option.IdbEuiAddr(addr_bytes) packed_bytes = c1.pack() c1u = option.IdbEuiAddr.unpack(packed_bytes) assert len(packed_bytes) == 12 assert c1.addr_bytes == c1u.addr_bytes == addr_bytes assert util.classname(c1) == util.classname( c1u) == 'pcapng.option.IdbEuiAddr'
def test_EpbDropCount(): dropcount = 271 c1 = option.EpbDropCount(dropcount) packed_bytes = c1.pack() c1u = option.EpbDropCount.unpack(packed_bytes) assert len(packed_bytes) == 12 #todo add this test everywhere assert c1.dropcount == c1u.dropcount == dropcount assert util.classname(c1) == util.classname( c1u) == 'pcapng.option.EpbDropCount'
def test_IdbTsOffset(): ts_offset = 1234567 c1 = option.IdbTsOffset(ts_offset) packed_bytes = c1.pack() c1u = option.IdbTsOffset.unpack(packed_bytes) assert len(packed_bytes) == 12 assert c1.ts_offset == c1u.ts_offset == ts_offset assert util.classname(c1) == util.classname( c1u) == 'pcapng.option.IdbTsOffset'
def test_IdbTZone(): offset = 7 c1 = option.IdbTZone(offset) packed_bytes = c1.pack() c1u = option.IdbTZone.unpack(packed_bytes) assert len(packed_bytes) == 8 assert c1.offset == c1u.offset == offset assert util.classname(c1) == util.classname( c1u) == 'pcapng.option.IdbTZone'
def test_IdbIpv4Addr(): addr_bytes = [1, 2, 3, 4] netmask_bytes = [5, 6, 7, 8] c1 = option.IdbIpv4Addr(addr_bytes, netmask_bytes) packed_bytes = c1.pack() c1u = option.IdbIpv4Addr.unpack(packed_bytes) assert len(packed_bytes) == 12 #todo add this test everywhere assert c1.addr_bytes == c1u.addr_bytes == addr_bytes assert c1.netmask_bytes == c1u.netmask_bytes == netmask_bytes assert util.classname(c1) == util.classname( c1u) == 'pcapng.option.IdbIpv4Addr'
def test_IdbIpv6Addr(): addr_bytes = [ 11, 12, 13, 14, 15, 16, 17, 18, 21, 22, 23, 24, 25, 26, 27, 28 ] prefix_len = 65 c1 = option.IdbIpv6Addr(addr_bytes, prefix_len) packed_bytes = c1.pack() c1u = option.IdbIpv6Addr.unpack(packed_bytes) assert len(packed_bytes) == 24 assert c1.addr_bytes == c1u.addr_bytes == addr_bytes assert c1.prefix_len == c1u.prefix_len == prefix_len assert util.classname(c1) == util.classname( c1u) == 'pcapng.option.IdbIpv6Addr'
def assert_epb_codec(interface_id, pkt_data, pkt_data_orig_len=None, options_lst=[]): pkt_data = to_bytes(pkt_data) if pkt_data_orig_len is None: pkt_data_orig_len = len( pkt_data) #todo does not test None or invalid val epb_obj = block.EnhancedPacketBlock(interface_id, pkt_data, pkt_data_orig_len, options_lst) epb_bytes = epb_obj.pack() epb_obj_unpacked = block.EnhancedPacketBlock.unpack(epb_bytes) assert util.classname( epb_obj_unpacked) == 'pcapng.block.EnhancedPacketBlock' assert epb_obj_unpacked == epb_obj
def test_section_header_block(): opts = [ option.ShbHardware("Dell"), option.ShbOs("Ubuntu"), option.ShbUserAppl("IntelliJ Idea") ] shb_obj = block.SectionHeaderBlock(opts) idb_bytes = shb_obj.pack() shb_obj_unpacked = block.SectionHeaderBlock.unpack(idb_bytes) util.assert_type_bytes(idb_bytes) assert util.classname( shb_obj_unpacked) == 'pcapng.block.SectionHeaderBlock' print('710', shb_obj) print('711', shb_obj_unpacked) assert shb_obj == shb_obj_unpacked
def test_interface_desc_block(): opts = [ option.IdbName("Carrier Pigeon"), option.IdbDescription("don't you wish"), option.IdbIpv4Addr([192, 168, 13, 7], [255, 255, 255, 0]), option.IdbIpv6Addr( [11, 12, 13, 14, 15, 16, 17, 18, 21, 22, 23, 24, 25, 26, 27, 28], 65), option.IdbMacAddr([11, 12, 13, 14, 15, 16]), option.IdbEuiAddr([11, 12, 13, 14, 15, 16, 17, 18]), option.IdbSpeed(1234567), option.IdbTsResol(3, False), option.IdbTZone(7), option.IdbFilter("Natural Brown #4"), option.IdbOs('Ubuntu Xenial 16.04.1 LTS'), option.IdbFcsLen(97), option.IdbTsOffset(314159) ] idb_obj = block.InterfaceDescBlock(linktype.LINKTYPE_ETHERNET, opts) idb_bytes = idb_obj.pack() idb_obj_unpacked = block.InterfaceDescBlock.unpack(idb_bytes) assert util.classname( idb_obj_unpacked) == 'pcapng.block.InterfaceDescBlock' assert idb_obj == idb_obj_unpacked
def test_Comment(): s1 = 'Five Stars!' c1 = option.Comment(s1) c1u = option.Comment.unpack(c1.pack()) assert c1.content == c1u.content == s1 assert util.classname(c1) == util.classname(c1u) == 'pcapng.option.Comment'
def test_IdbName(): s1 = 'ifc downlow' c1 = option.IdbName(s1) c1u = option.IdbName.unpack(c1.pack()) assert c1.content == c1u.content == s1 assert util.classname(c1) == util.classname(c1u) == 'pcapng.option.IdbName'
def test_EpbHash(): content = to_bytes("<generic hash spec here>") c1 = option.EpbHash(content) c1u = option.EpbHash.unpack(c1.pack()) assert c1.content == c1u.content == content assert util.classname(c1) == util.classname(c1u) == 'pcapng.option.EpbHash'
def test_IdbOs(): s1 = 'Ubuntu Xenial 16.04.1 LTS' c1 = option.IdbOs(s1) c1u = option.IdbOs.unpack(c1.pack()) assert c1.content == c1u.content == s1 assert util.classname(c1) == util.classname(c1u) == 'pcapng.option.IdbOs'