diff options
| author | Brian Potchik <brian@vector35.com> | 2021-01-20 10:55:19 -0500 |
|---|---|---|
| committer | Brian Potchik <brian@vector35.com> | 2021-01-20 10:55:19 -0500 |
| commit | 8f9004fa3cba785ec67909e9f96498b00086a3a7 (patch) | |
| tree | 79fec1ee88ed2fb3935454c9d60e3f3199f5af6b | |
| parent | f1166563f54d28a745eb781dfe27c13a099bb7d9 (diff) | |
Expand instruction mapping unit tests.
| -rw-r--r-- | suite/testcommon.py | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/suite/testcommon.py b/suite/testcommon.py index 091f967c..a4ca8969 100644 --- a/suite/testcommon.py +++ b/suite/testcommon.py @@ -190,7 +190,10 @@ class BinaryViewTestBuilder(Builder): for func in self.bv.functions: for bb in func.low_level_il.basic_blocks: for ins in bb: - retinfo.append("Function: {:x} Instruction: {:x} MLIL: {}".format(func.start, ins.address, str(ins.medium_level_il))) + retinfo.append("Function: {:x} Instruction: {:x} LLIL->MLIL: {}".format(func.start, ins.address, str(ins.mlil))) + retinfo.append("Function: {:x} Instruction: {:x} LLIL->MLILS: {}".format(func.start, ins.address, str(ins.mlils))) + # TODO figure out the LLIL->HLIL instability + #retinfo.append("Function: {:x} Instruction: {:x} LLIL->HLIL: {}".format(func.start, ins.address, str(ins.hlil))) retinfo.append("Function: {:x} Instruction: {:x} Mapped MLIL: {}".format(func.start, ins.address, str(ins.mapped_medium_level_il))) retinfo.append("Function: {:x} Instruction: {:x} Value: {}".format(func.start, ins.address, str(ins.value))) retinfo.append("Function: {:x} Instruction: {:x} Possible Values: {}".format(func.start, ins.address, str(ins.possible_values))) @@ -242,6 +245,10 @@ class BinaryViewTestBuilder(Builder): retinfo.append("Function: {:x} Instruction: {:x} SSA instruction index: {}".format(func.source_function.start, ins.address, str(func.get_ssa_instruction_index(tempind)))) retinfo.append("Function: {:x} Instruction: {:x} MLIL instruction index: {}".format(func.source_function.start, ins.address, str(func.get_medium_level_il_instruction_index(ins.instr_index)))) retinfo.append("Function: {:x} Instruction: {:x} Mapped MLIL instruction index: {}".format(func.source_function.start, ins.address, str(func.get_mapped_medium_level_il_instruction_index(ins.instr_index)))) + retinfo.append("Function: {:x} Instruction: {:x} LLIL_SSA->MLIL: {}".format(func.source_function.start, ins.address, str(ins.mlil))) + retinfo.append("Function: {:x} Instruction: {:x} LLIL_SSA->MLILS: {}".format(func.source_function.start, ins.address, str(ins.mlils))) + # TODO figure out the LLIL_SSA->HLIL instability + #retinfo.append("Function: {:x} Instruction: {:x} LLIL_SSA->HLIL: {}".format(func.source_function.start, ins.address, str(ins.hlil))) return fixOutput(retinfo) def test_med_il_instructions(self): @@ -251,7 +258,10 @@ class BinaryViewTestBuilder(Builder): for bb in func.mlil.basic_blocks: for ins in bb: retinfo.append("Function: {:x} Instruction: {:x} Expression type: {}".format(func.start, ins.address, str(ins.expr_type))) - retinfo.append("Function: {:x} Instruction: {:x} LLIL: {}".format(func.start, ins.address, str(ins.low_level_il))) + retinfo.append("Function: {:x} Instruction: {:x} MLIL->LLIL: {}".format(func.start, ins.address, str(ins.llil))) + retinfo.append("Function: {:x} Instruction: {:x} MLIL->LLILS: {}".format(func.start, ins.address, str(ins.llils))) + # TODO figure out the MLIL->HLIL instability + #retinfo.append("Function: {:x} Instruction: {:x} MLIL->HLIL: {}".format(func.start, ins.address, str(ins.hlil))) retinfo.append("Function: {:x} Instruction: {:x} Value: {}".format(func.start, ins.address, str(ins.value))) retinfo.append("Function: {:x} Instruction: {:x} Possible values: {}".format(func.start, ins.address, str(ins.possible_values))) retinfo.append("Function: {:x} Instruction: {:x} Branch dependence: {}".format(func.start, ins.address, str(sorted(ins.branch_dependence.items())))) @@ -332,12 +342,14 @@ class BinaryViewTestBuilder(Builder): for func in self.bv.functions: for llilbb in func.llil_basic_blocks: retinfo.append("Function: {:x} LLIL basic block: {}".format(func.start, str(llilbb))) - for llilins in func.llil_instructions: + for llilins in func.llil.instructions: retinfo.append("Function: {:x} Instruction: {:x} LLIL instruction: {}".format(func.start, llilins.address, str(llilins))) for mlilbb in func.mlil_basic_blocks: retinfo.append("Function: {:x} MLIL basic block: {}".format(func.start, str(mlilbb))) - for mlilins in func.mlil_instructions: + for mlilins in func.mlil.instructions: retinfo.append("Function: {:x} Instruction: {:x} MLIL instruction: {}".format(func.start, mlilins.address, str(mlilins))) + for hlilins in func.hlil.instructions: + retinfo.append("Function: {:x} Instruction: {:x} HLIL instruction: {}".format(func.start, hlilins.address, str(hlilins))) for ins in func.instructions: retinfo.append("Function: {:x} Instruction: {}: {}".format(func.start, hex(ins[1]), ''.join([str(i) for i in ins[0]]))) return fixOutput(retinfo) @@ -348,6 +360,10 @@ class BinaryViewTestBuilder(Builder): for func in self.bv.functions: for line in func.hlil.root.lines: retinfo.append("Function: {:x} HLIL line: {}".format(func.start, str(line))) + for hlilins in func.hlil.instructions: + retinfo.append("Function: {:x} Instruction: {:x} HLIL->LLIL instruction: {}".format(func.start, hlilins.address, str(hlilins.llil))) + retinfo.append("Function: {:x} Instruction: {:x} HLIL->MLIL instruction: {}".format(func.start, hlilins.address, str(hlilins.mlil))) + retinfo.append("Function: {:x} Instruction: {:x} HLIL->MLILS instruction: {}".format(func.start, hlilins.address, str(hlilins.mlils))) return fixOutput(retinfo) def test_functions_attributes(self): |
