def test_parse_log_counts(): loop = parse(''' [i7] i9 = int_lt(i7, 1003) label(i9, descr=grrr) guard_true(i9, descr=<Guard0xaf>) [] i13 = getfield_raw(151937600, descr=<SignedFieldDescr pypysig_long_struct.c_value 0>) label(i13, descr=asb) i19 = int_lt(i13, 1003) guard_true(i19, descr=<Guard0x3>) [] i113 = getfield_raw(151937600, descr=<SignedFieldDescr pypysig_long_struct.c_value 0>) ''') bridge = parse(''' # bridge out of Guard 0xaf with 1 ops [] i0 = int_lt(1, 2) finish(i0) ''') bridge.comment = 'bridge out of Guard 0xaf with 1 ops' loop.comment = 'Loop 0' loops = split_trace(loop) + split_trace(bridge) input = ['grrr:123\nasb:12\nbridge 175:1234'] parse_log_counts(input, loops) assert loops[-1].count == 1234 assert loops[1].count == 123 assert loops[2].count == 12
def test_parse_log_counts(): loop = parse(''' [i7] i9 = int_lt(i7, 1003) label(i9, descr=grrr) guard_true(i9, descr=<Guard0xaf>) [] i13 = getfield_raw(151937600, descr=<SignedFieldDescr pypysig_long_struct.c_value 0>) label(i13, descr=asb) i19 = int_lt(i13, 1003) guard_true(i19, descr=<Guard0x3>) [] i113 = getfield_raw(151937600, descr=<SignedFieldDescr pypysig_long_struct.c_value 0>) ''') bridge = parse(''' # bridge out of Guard 0xaf with 1 ops [] i0 = int_lt(1, 2) finish(i0) ''') bridge.comment = 'bridge out of Guard 0xaf with 1 ops' loop.comment = 'Loop 0' loops = split_trace(loop) + split_trace(bridge) input = ['grrr:123\nasb:12\nbridge 175:1234'] parse_log_counts(input, loops) assert loops[-1].count == 1234 assert loops[1].count == 123 assert loops[2].count == 12
def test_split_trace(): loop = parse(''' [i7] i9 = int_lt(i7, 1003) label(i9, descr=grrr) guard_true(i9, descr=<Guard0x2>) [] i13 = getfield_raw(151937600, descr=<SignedFieldDescr pypysig_long_struct.c_value 0>) label(i13, descr=asb) i19 = int_lt(i13, 1003) guard_true(i19, descr=<Guard0x2>) [] i113 = getfield_raw(151937600, descr=<SignedFieldDescr pypysig_long_struct.c_value 0>) ''') loop.comment = 'Loop 0' parts = split_trace(loop) assert len(parts) == 3 assert len(parts[0].operations) == 2 assert len(parts[1].operations) == 4 assert len(parts[2].operations) == 4 assert parts[1].descr == 'grrr' assert parts[2].descr == 'asb'
def test_split_trace(): loop = parse(''' [i7] i9 = int_lt(i7, 1003) label(i9, descr=grrr) guard_true(i9, descr=<Guard0x2>) [] i13 = getfield_raw(151937600, descr=<SignedFieldDescr pypysig_long_struct.c_value 0>) label(i13, descr=asb) i19 = int_lt(i13, 1003) guard_true(i19, descr=<Guard0x2>) [] i113 = getfield_raw(151937600, descr=<SignedFieldDescr pypysig_long_struct.c_value 0>) ''') loop.comment = 'Loop 0' parts = split_trace(loop) assert len(parts) == 3 assert len(parts[0].operations) == 2 assert len(parts[1].operations) == 4 assert len(parts[2].operations) == 4 assert parts[1].descr == 'grrr' assert parts[2].descr == 'asb'