From 1861bcebbe78d945102135d94b88d0c367c9200f Mon Sep 17 00:00:00 2001 From: KyleMiles Date: Thu, 21 Oct 2021 19:53:32 -0400 Subject: Add test for liveness_at --- suite/testcommon.py | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/suite/testcommon.py b/suite/testcommon.py index dcb7570b..2d67bba1 100644 --- a/suite/testcommon.py +++ b/suite/testcommon.py @@ -466,7 +466,6 @@ class BinaryViewTestBuilder(Builder): return fixOutput(retinfo) - def test_dominators(self): """Dominators don't match oracle""" retinfo = [] @@ -478,6 +477,25 @@ class BinaryViewTestBuilder(Builder): retinfo.append("PostDominator: %x of %x" % (pdom.start, bb.start)) return fixOutput(retinfo) + def test_liveness(self): + """Liveness results don't match oracle""" + retinfo = [] + + for func in self.bv.functions: + for var in func.hlil.vars: + for bb in func.hlil: + for inst in bb: + retinfo.append(f"{func.name}-hlil@{inst.instr_index}: {func.hlil.is_var_live_at(var, inst.instr_index)}") + + for func in self.bv.functions: + for var in func.hlil.ssa_form.ssa_vars: + for bb in func.hlil.ssa_form: + for inst in bb: + retinfo.append(f"{func.name}-hlil-ssa@{inst.instr_index}: {func.hlil.ssa_form.is_ssa_var_live_at(var, inst.instr_index)}") + + return retinfo + + class TestBuilder(Builder): """ The TestBuilder is for tests that need to be checked against a stored oracle data that isn't from a binary. These test are @@ -1199,6 +1217,7 @@ class TestBuilder(Builder): self.delete_package("array_test.bndb") return fixOutput(sorted(retinfo)) + class VerifyBuilder(Builder): """ The VerifyBuilder is for tests that verify Binary Ninja against expected output. -- cgit v1.3.1