Sequence

tests.testing.binaries.sass.sequence.test_sequence.DADD_DMUL = (Instruction(offset=0, instruction='DADD R4, R4, c[0x0][0x180]', hex='0x0', control=ControlCode(stall_count=1, yield_flag=True, read=7, write=0, wait=[False, False, False, False, False, False], reuse={'A': False, 'B': False, 'C': False, 'D': False})), Instruction(offset=0, instruction='DMUL R6, R6, c[0x0][0x188]', hex='0x1', control=ControlCode(stall_count=1, yield_flag=True, read=7, write=0, wait=[False, False, False, False, False, False], reuse={'A': False, 'B': False, 'C': False, 'D': False})))

One DADD followed by a DMUL.

tests.testing.binaries.sass.sequence.test_sequence.DADD_NOP_DMUL = (Instruction(offset=0, instruction='DADD R4, R4, c[0x0][0x180]', hex='0x0', control=ControlCode(stall_count=1, yield_flag=True, read=7, write=0, wait=[False, False, False, False, False, False], reuse={'A': False, 'B': False, 'C': False, 'D': False})), Instruction(offset=0, instruction='NOP', hex='0x2', control=ControlCode(stall_count=1, yield_flag=True, read=7, write=0, wait=[False, False, False, False, False, False], reuse={'A': False, 'B': False, 'C': False, 'D': False})), Instruction(offset=0, instruction='NOP', hex='0x2', control=ControlCode(stall_count=1, yield_flag=True, read=7, write=0, wait=[False, False, False, False, False, False], reuse={'A': False, 'B': False, 'C': False, 'D': False})), Instruction(offset=0, instruction='NOP', hex='0x2', control=ControlCode(stall_count=1, yield_flag=True, read=7, write=0, wait=[False, False, False, False, False, False], reuse={'A': False, 'B': False, 'C': False, 'D': False})), Instruction(offset=0, instruction='DMUL R6, R6, c[0x0][0x188]', hex='0x1', control=ControlCode(stall_count=1, yield_flag=True, read=7, write=0, wait=[False, False, False, False, False, False], reuse={'A': False, 'B': False, 'C': False, 'D': False})))

One DADD instruction followed by a few NOP, and a DMUL.

tests.testing.binaries.sass.sequence.test_sequence.NOP_DMUL_NOP_DADD = (Instruction(offset=0, instruction='NOP', hex='0x2', control=ControlCode(stall_count=1, yield_flag=True, read=7, write=0, wait=[False, False, False, False, False, False], reuse={'A': False, 'B': False, 'C': False, 'D': False})), Instruction(offset=0, instruction='DMUL R6, R6, c[0x0][0x188]', hex='0x1', control=ControlCode(stall_count=1, yield_flag=True, read=7, write=0, wait=[False, False, False, False, False, False], reuse={'A': False, 'B': False, 'C': False, 'D': False})), Instruction(offset=0, instruction='NOP', hex='0x2', control=ControlCode(stall_count=1, yield_flag=True, read=7, write=0, wait=[False, False, False, False, False, False], reuse={'A': False, 'B': False, 'C': False, 'D': False})), Instruction(offset=0, instruction='NOP', hex='0x2', control=ControlCode(stall_count=1, yield_flag=True, read=7, write=0, wait=[False, False, False, False, False, False], reuse={'A': False, 'B': False, 'C': False, 'D': False})), Instruction(offset=0, instruction='DADD R4, R4, c[0x0][0x180]', hex='0x0', control=ControlCode(stall_count=1, yield_flag=True, read=7, write=0, wait=[False, False, False, False, False, False], reuse={'A': False, 'B': False, 'C': False, 'D': False})))

NOP instructions with one DADD and one DMUL.

class tests.testing.binaries.sass.sequence.test_sequence.TestAllInSequenceMatcherView on GitHub

Bases: object

Tests for reprospect.testing.binaries.sass.sequence.sequence.AllInSequenceMatcher.

test_no_match() NoneView on GitHub
test_sequence() NoneView on GitHub

The inner matcher is a reprospect.testing.binaries.sass.sequence.sequence.SequenceMatcher.

test_single() NoneView on GitHub

The inner matcher is a reprospect.testing.binaries.sass.instruction.instruction.InstructionMatcher.

class tests.testing.binaries.sass.sequence.test_sequence.TestAnyOfView on GitHub

Bases: object

Tests for reprospect.testing.binaries.sass.sequence.sequence.any_of().

test() NoneView on GitHub
class tests.testing.binaries.sass.sequence.test_sequence.TestAnyOfMatcherView on GitHub

Bases: object

Tests for reprospect.testing.binaries.sass.sequence.sequence.AnyOfMatcher.

test_explain() NoneView on GitHub
test_matches() NoneView on GitHub
test_no_match() NoneView on GitHub
class tests.testing.binaries.sass.sequence.test_sequence.TestCountInSequenceMatcherView on GitHub

Bases: object

Tests for reprospect.testing.binaries.sass.sequence.sequence.CountInSequenceMatcher.

INNER: Final[OpcodeModsMatcher] = OpcodeModsMatcher(pattern=regex.Regex('(?P<opcode>YIELD)(?:\\.(?P<modifiers>[A-Z0-9_]+))*', flags=regex.V0))
test_explain() NoneView on GitHub
test_match() NoneView on GitHub
test_no_match() NoneView on GitHub
class tests.testing.binaries.sass.sequence.test_sequence.TestFindallView on GitHub

Bases: object

Tests for reprospect.testing.binaries.sass.sequence.sequence.findall().

test() NoneView on GitHub
class tests.testing.binaries.sass.sequence.test_sequence.TestFinduniqueView on GitHub

Bases: object

Tests for reprospect.testing.binaries.sass.sequence.sequence.findunique().

test() NoneView on GitHub
class tests.testing.binaries.sass.sequence.test_sequence.TestInSequenceAtMatcherView on GitHub

Bases: object

Tests for reprospect.testing.binaries.sass.sequence.sequence.InSequenceAtMatcher.

MATCHER: Final[InSequenceAtMatcher] = <reprospect.testing.binaries.sass.sequence.sequence.InSequenceAtMatcher object>
test_explain() NoneView on GitHub
test_match_first_element() NoneView on GitHub

Matches the first element.

test_match_with_start() NoneView on GitHub

Matches the element pointed to by start.

test_no_match() NoneView on GitHub

Raises if the first element does not match.

class tests.testing.binaries.sass.sequence.test_sequence.TestInSequenceMatcherView on GitHub

Bases: object

Tests for reprospect.testing.binaries.sass.sequence.sequence.InSequenceMatcher.

test_explain() NoneView on GitHub
test_matches() NoneView on GitHub
test_no_match() NoneView on GitHub
class tests.testing.binaries.sass.sequence.test_sequence.TestInstructionCountIsView on GitHub

Bases: object

Tests for reprospect.testing.binaries.sass.sequence.sequence.instruction_count_is().

test() NoneView on GitHub
class tests.testing.binaries.sass.sequence.test_sequence.TestInstructionIsView on GitHub

Bases: object

Tests for reprospect.testing.binaries.sass.sequence.sequence.instruction_is().

test() NoneView on GitHub
test_one_or_more_times() NoneView on GitHub
test_times_1() NoneView on GitHub
test_times_2() NoneView on GitHub
test_with_modifier() NoneView on GitHub

Test reprospect.testing.binaries.sass.sequence.sequence.Fluentizer.with_modifier().

test_with_operand() NoneView on GitHub

Test reprospect.testing.binaries.sass.sequence.sequence.Fluentizer.with_operand().

test_with_operand_composed() NoneView on GitHub

Similar to test_with_operands() but calls reprospect.testing.binaries.sass.sequence.sequence.Fluentizer.with_operand() many times.

test_with_operands() NoneView on GitHub

Test reprospect.testing.binaries.sass.sequence.sequence.Fluentizer.with_operands().

test_zero_or_more_time() NoneView on GitHub
class tests.testing.binaries.sass.sequence.test_sequence.TestInstructionsAreView on GitHub

Bases: object

Tests for reprospect.testing.binaries.sass.sequence.sequence.instructions_are().

test() NoneView on GitHub
test_mix() NoneView on GitHub
class tests.testing.binaries.sass.sequence.test_sequence.TestInstructionsContainView on GitHub

Bases: object

Tests for reprospect.testing.binaries.sass.sequence.sequence.instructions_contain().

test() NoneView on GitHub
class tests.testing.binaries.sass.sequence.test_sequence.TestInterleavedInstructionsAreView on GitHub

Bases: object

Tests for reprospect.testing.binaries.sass.sequence.sequence.interleaved_instructions_are().

test() NoneView on GitHub
class tests.testing.binaries.sass.sequence.test_sequence.TestOneOrMoreInSequenceMatcherView on GitHub

Bases: object

Tests for reprospect.testing.binaries.sass.sequence.sequence.OneOrMoreInSequenceMatcher.

test_explain() NoneView on GitHub
test_matches_more() NoneView on GitHub

Matches the sequence DADD_NOP_DMUL many times starting at 1.

test_matches_one() NoneView on GitHub

Matches the sequence DADD_NOP_DMUL.

test_matches_zero() NoneView on GitHub

Does not match sequence DADD_NOP_DMUL.

class tests.testing.binaries.sass.sequence.test_sequence.TestOrderedInSequenceMatcherView on GitHub

Bases: object

Tests for reprospect.testing.binaries.sass.sequence.sequence.OrderedInSequenceMatcher.

MATCHER: Final[OrderedInSequenceMatcher] = <reprospect.testing.binaries.sass.sequence.sequence.OrderedInSequenceMatcher object>
test_explain() NoneView on GitHub
test_match() NoneView on GitHub

Matches the sequence DADD_DMUL.

test_match_with_nop() NoneView on GitHub

Matches the sequence DADD_NOP_DMUL.

test_no_match() NoneView on GitHub

Does not match reversed sequence DADD_DMUL.

class tests.testing.binaries.sass.sequence.test_sequence.TestOrderedInterleavedInSequenceMatcherView on GitHub

Bases: object

Tests for reprospect.testing.binaries.sass.sequence.sequence.OrderedInterleavedInSequenceMatcher.

INSTRUCTIONS_DADD: Final[tuple[str, ...]] = ('LDG.E.ENL2.256 R8, R4, desc[UR6][R2.64]', 'DADD R4, R4, UR12', 'NOP', 'NOP', 'NOP', 'NOP', 'DADD R6, R6, UR14', 'NOP', 'NOP', 'NOP', 'NOP', 'DADD R8, R8, UR16', 'NOP', 'NOP', 'NOP', 'NOP', 'DADD R10, R10, UR18', 'STG.E.ENL2.256 desc[UR6][R2.64], R4, R8')
INSTRUCTIONS_LDG: Final[tuple[str, ...]] = ('LDG.E.U16.SYS R2, [R2]', 'LDG.E.U16.SYS R4, [R4]')
MATCHERS_DADD: Final[tuple[OpcodeModsWithOperandsMatcher, ...]] = (OpcodeModsWithOperandsMatcher(pattern=regex.Regex('(?P<opcode>DADD)\\s*(?P<operands>R4),?\\s*(?P<operands>R4),?\\s*(?P<operands>UR[0-9]+)', flags=regex.V0)), OpcodeModsWithOperandsMatcher(pattern=regex.Regex('(?P<opcode>DADD)\\s*(?P<operands>R6),?\\s*(?P<operands>R6),?\\s*(?P<operands>UR[0-9]+)', flags=regex.V0)), OpcodeModsWithOperandsMatcher(pattern=regex.Regex('(?P<opcode>DADD)\\s*(?P<operands>R8),?\\s*(?P<operands>R8),?\\s*(?P<operands>UR[0-9]+)', flags=regex.V0)), OpcodeModsWithOperandsMatcher(pattern=regex.Regex('(?P<opcode>DADD)\\s*(?P<operands>R10),?\\s*(?P<operands>R10),?\\s*(?P<operands>UR[0-9]+)', flags=regex.V0)))
MATCHERS_LDG: Final[tuple[LoadGlobalMatcher, ...]] = (LoadGlobalMatcher(pattern=regex.Regex('(?P<opcode>LDG)\\.(?P<modifiers>E)\\.(?P<modifiers>U16)\\.(?P<modifiers>SYS) (?P<operands>R[0-9]+), (?P<address>(?P<operands>\\[R[0-9]+(?:\\+-?0x[0-9A-Fa-f]+)?\\]))', flags=regex.V0)), LoadGlobalMatcher(pattern=regex.Regex('(?P<opcode>LDG)\\.(?P<modifiers>E)\\.(?P<modifiers>U16)\\.(?P<modifiers>SYS) (?P<operands>R[0-9]+), (?P<address>(?P<operands>\\[R[0-9]+(?:\\+-?0x[0-9A-Fa-f]+)?\\]))', flags=regex.V0)))
test_dadd() NoneView on GitHub
test_ldg() NoneView on GitHub
test_no_match() NoneView on GitHub
class tests.testing.binaries.sass.sequence.test_sequence.TestUnorderedInSequenceMatcherView on GitHub

Bases: object

Tests for reprospect.testing.binaries.sass.sequence.sequence.UnorderedInSequenceMatcher.

test_explain() NoneView on GitHub
test_match_with_nop() NoneView on GitHub

Matches the sequence DADD_NOP_DMUL.

test_no_match() NoneView on GitHub

All permutations fail on sequence NOP_DMUL_NOP_DADD.

test_with_split_nop() NoneView on GitHub

Matches the sequence NOP_DMUL_NOP_DADD.

test_without_nop() NoneView on GitHub

Matches the sequence DADD_DMUL.

class tests.testing.binaries.sass.sequence.test_sequence.TestUnorderedInstructionsAreView on GitHub

Bases: object

Tests for reprospect.testing.binaries.sass.sequence.sequence.unordered_instructions_are().

test() NoneView on GitHub
class tests.testing.binaries.sass.sequence.test_sequence.TestUnorderedInterleavedInSequenceMatcherView on GitHub

Bases: object

Tests for reprospect.testing.binaries.sass.sequence.sequence.UnorderedInterleavedInSequenceMatcher.

test_dadd() NoneView on GitHub
class tests.testing.binaries.sass.sequence.test_sequence.TestUnorderedInterleavedInstructionsAreView on GitHub

Bases: object

Tests for reprospect.testing.binaries.sass.sequence.sequence.unordered_interleaved_instructions_are().

test() NoneView on GitHub
class tests.testing.binaries.sass.sequence.test_sequence.TestZeroOrMoreInSequenceMatcherView on GitHub

Bases: object

Tests for reprospect.testing.binaries.sass.sequence.sequence.ZeroOrMoreInSequenceMatcher.

test_assert_matches_always_true() NoneView on GitHub

Matching zero time is fine.

test_explain() NoneView on GitHub
test_matches_with_start() NoneView on GitHub

Matches many times, with a start and sequence DADD_NOP_DMUL.

test_matches_zero() NoneView on GitHub

Matches zero time with sequence DADD_NOP_DMUL.