From 4ec77aad9b00f5ac6152576f999243c6f793c345 Mon Sep 17 00:00:00 2001 From: KyleMiles Date: Mon, 26 Jul 2021 16:00:47 -0400 Subject: Update tests for new register printing and IL variable API --- suite/testcommon.py | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/suite/testcommon.py b/suite/testcommon.py index 6ee3d7bc..8fa887fa 100644 --- a/suite/testcommon.py +++ b/suite/testcommon.py @@ -970,7 +970,7 @@ class TestBuilder(Builder): results.append("type undefined: {0}".format(name)) def type_ref_changed(self, view, name, type): - results.append("type reference changed: {0}".format(name)) + results.append("type reference changed: {0}".format(name)) test = NotifyTest() bv.register_notification(test) @@ -1308,17 +1308,27 @@ class VerifyBuilder(Builder): try: with binja.BinaryViewType.get_view_of_file(file_name) as bv: main_func = bv.get_functions_by_name("main")[0] - - mlil_vars = main_func.get_il_vars(FunctionGraphType.MediumLevelILFunctionGraph) - mlil_vars = list(map(lambda v: v.name, mlil_vars)) - mlil_vars.sort() - - hlil_vars = main_func.get_il_vars(FunctionGraphType.HighLevelILFunctionGraph) - hlil_vars = list(map(lambda v: v.name, hlil_vars)) - hlil_vars.sort() - - assert mlil_vars == ['argc', 'argv', 'envp', 'r0', 'r3', 'var_10', 'var_c'] - assert hlil_vars == ['argc', 'argv', 'envp'] + assert sorted(list(map(lambda v: str(v), main_func.vars))) == ['__saved_r11', 'arg_0', 'argc', 'argv', 'envp', 'r0', 'r3', 'var_10', 'var_4', 'var_c'] + assert sorted(list(map(lambda v: str(v), main_func.lifted_il.vars))) == [] + assert sorted(list(map(lambda v: str(v), main_func.lifted_il.ssa_vars))) == [] + assert sorted(list(map(lambda v: str(v), main_func.llil.vars))) == ['lr', 'r0', 'r1', 'r11', 'r12', 'r2', 'r3', 'sp', 'temp0'] + assert sorted(list(map(lambda v: str(v), main_func.llil.ssa_vars))) == [] + assert sorted(list(map(lambda v: str(v), main_func.llil.ssa_form.vars))) == ['lr', 'r0', 'r1', 'r11', 'r12', 'r2', 'r3', 'sp', 'temp0'] + assert sorted(list(map(lambda v: str(v), main_func.llil.ssa_form.ssa_registers))) == [' version 0>', ' version 1>', ' version 2>', ' version 3>', ' version 0>', ' version 1>', ' version 2>', ' version 3>', ' version 4>', ' version 5>', ' version 6>', ' version 0>', ' version 1>', ' version 2>', ' version 1>', ' version 2>', ' version 3>', ' version 0>', ' version 1>', ' version 2>', ' version 3>', ' version 0>', ' version 1>', ' version 2>', ' version 3>', ' version 1>', ' version 2>', ' version 3>', ' version 4>', ' version 5>', ' version 0>', ' version 1>', ' version 2>', ' version 3>', ' version 4>', ' version 5>', ' version 6>', ' version 1>'] + assert sorted(list(map(lambda v: str(v), main_func.llil.ssa_form.ssa_register_stacks))) == [] + assert sorted(list(map(lambda v: str(v), main_func.llil.ssa_form.ssa_flags))) == [] + assert sorted(list(map(lambda v: str(v), main_func.llil.mapped_medium_level_il.vars))) == ['', '', '', '', '', '', '', '', '__saved_r11', 'argc', 'argv', 'envp', 'var_4'] + assert sorted(list(map(lambda v: str(v), main_func.llil.mapped_medium_level_il.ssa_vars))) == [] + assert sorted(list(map(lambda v: str(v), main_func.llil.mapped_medium_level_il.ssa_form.vars))) == ['', '', '', '', '', '', '', '', '__saved_r11', 'argc', 'argv', 'envp', 'var_4'] + assert sorted(list(map(lambda v: str(v), main_func.llil.mapped_medium_level_il.ssa_form.ssa_vars))) == [' version 0>', ' version 1>', ' version 2>', ' version 3>', ' version 0>', ' version 1>', ' version 2>', ' version 3>', ' version 1>', ' version 0>', ' version 1>', ' version 2>', ' version 3>', ' version 4>', ' version 5>', ' version 6>', ' version 1>', ' version 0>', ' version 0>', ' version 1>', ' version 1>', ' version 1>', ' version 1>', ' version 1>', ' version 1>', ' version 1>', ' version 1>', ' version 2>', ' version 2>', ' version 2>', ' version 2>', ' version 2>', ' version 3>', ' version 3>', ' version 3>', ' version 3>', ' version 4>', ' version 4>', ' version 5>', ' version 5>', ' version 6>'] + assert sorted(list(map(lambda v: str(v), main_func.mlil.vars))) == ['argc', 'argv', 'envp', 'r0', 'r3', 'var_10', 'var_c'] + assert sorted(list(map(lambda v: str(v), main_func.mlil.ssa_vars))) == [] + assert sorted(list(map(lambda v: str(v), main_func.mlil.ssa_form.vars))) == ['argc', 'argv', 'envp', 'r0', 'r3', 'var_10', 'var_c'] + assert sorted(list(map(lambda v: str(v), main_func.mlil.ssa_form.ssa_vars))) == [' version 0>', ' version 0>', ' version 1>', ' version 0>', ' version 1>', ' version 1>', ' version 1>'] + assert sorted(list(map(lambda v: str(v), main_func.hlil.vars))) == ['argc', 'argv', 'envp'] + assert sorted(list(map(lambda v: str(v), main_func.hlil.ssa_vars))) == [] + assert sorted(list(map(lambda v: str(v), main_func.hlil.ssa_form.vars))) == ['argc', 'argv', 'envp'] + assert sorted(list(map(lambda v: str(v), main_func.hlil.ssa_form.ssa_vars))) == [' version 0>', ' version 0>', ' version 0>'] return True finally: self.delete_package("helloworld") @@ -1910,7 +1920,7 @@ class VerifyBuilder(Builder): self.delete_package("old_tags.bndb") return ret - + def test_get_paths(self): """Get install directory and bundled plugin directory""" core_platform = platform.system() -- cgit v1.3.1