about summary refs log tree commit diff stats
path: root/test/core/graph.py
diff options
context:
space:
mode:
authorFabrice Desclaux <fabrice.desclaux@cea.fr>2015-06-02 11:41:38 +0200
committerFabrice Desclaux <fabrice.desclaux@cea.fr>2015-06-02 11:41:38 +0200
commit256e4fab9d028b559872ada875ef5a91d30ed5dc (patch)
treed42a4578e64b5620ea8788f4b560b159e507e945 /test/core/graph.py
parent6d64ffa872b3f996828f275f63fcbe5027801889 (diff)
downloadmiasm-256e4fab9d028b559872ada875ef5a91d30ed5dc.tar.gz
miasm-256e4fab9d028b559872ada875ef5a91d30ed5dc.zip
Test/Graph: add regression tests for walk_dominator/walk_postdominator
Diffstat (limited to 'test/core/graph.py')
-rw-r--r--test/core/graph.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/test/core/graph.py b/test/core/graph.py
index 40f34f5c..eb320542 100644
--- a/test/core/graph.py
+++ b/test/core/graph.py
@@ -40,6 +40,13 @@ assert(dominators == {1: set([1]),
                       5: set([1, 2, 5]),
                       6: set([1, 2, 6])})
 
+assert(list(g1.walk_dominators(1, dominators)) == [])
+assert(list(g1.walk_dominators(2, dominators)) == [1])
+assert(list(g1.walk_dominators(3, dominators)) == [2, 1])
+assert(list(g1.walk_dominators(4, dominators)) == [2, 1])
+assert(list(g1.walk_dominators(5, dominators)) == [2, 1])
+assert(list(g1.walk_dominators(6, dominators)) == [2, 1])
+
 # Regression test with multiple heads
 g2 = DiGraph()
 g2.add_edge(1, 2)
@@ -55,6 +62,13 @@ assert(dominators == {3: set([3, 5, 6]),
                       6: set([5, 6])})
 
 
+assert(list(g2.walk_dominators(1, dominators)) == [])
+assert(list(g2.walk_dominators(2, dominators)) == [])
+assert(list(g2.walk_dominators(3, dominators)) == [6, 5])
+assert(list(g2.walk_dominators(4, dominators)) == [3, 6, 5])
+assert(list(g2.walk_dominators(5, dominators)) == [])
+assert(list(g2.walk_dominators(6, dominators)) == [5])
+
 postdominators = g1.compute_postdominators(6)
 assert(postdominators == {1: set([1, 2, 6]),
                           2: set([2, 6]),
@@ -63,6 +77,14 @@ assert(postdominators == {1: set([1, 2, 6]),
                           5: set([2, 5, 6]),
                           6: set([6])})
 
+assert(list(g1.walk_postdominators(1, postdominators)) == [2, 6])
+assert(list(g1.walk_postdominators(2, postdominators)) == [6])
+assert(list(g1.walk_postdominators(3, postdominators)) == [5, 2, 6])
+assert(list(g1.walk_postdominators(4, postdominators)) == [5, 2, 6])
+assert(list(g1.walk_postdominators(5, postdominators)) == [2, 6])
+assert(list(g1.walk_postdominators(6, postdominators)) == [])
+
+
 postdominators = g1.compute_postdominators(5)
 assert(postdominators == {1: set([1, 2, 5]),
                           2: set([2, 5]),
@@ -70,6 +92,13 @@ assert(postdominators == {1: set([1, 2, 5]),
                           4: set([4, 5]),
                           5: set([5])})
 
+assert(list(g1.walk_postdominators(1, postdominators)) == [2, 5])
+assert(list(g1.walk_postdominators(2, postdominators)) == [5])
+assert(list(g1.walk_postdominators(3, postdominators)) == [5])
+assert(list(g1.walk_postdominators(4, postdominators)) == [5])
+assert(list(g1.walk_postdominators(5, postdominators)) == [])
+assert(list(g1.walk_postdominators(6, postdominators)) == [])
+
 postdominators = g2.compute_postdominators(4)
 assert(postdominators == {1: set([1, 2, 3, 4]),
                           2: set([2, 3, 4]),
@@ -77,3 +106,10 @@ assert(postdominators == {1: set([1, 2, 3, 4]),
                           4: set([4]),
                           5: set([3, 4, 5, 6]),
                           6: set([3, 4, 6])})
+
+assert(list(g2.walk_postdominators(1, postdominators)) == [2, 3, 4])
+assert(list(g2.walk_postdominators(2, postdominators)) == [3, 4])
+assert(list(g2.walk_postdominators(3, postdominators)) == [4])
+assert(list(g2.walk_postdominators(4, postdominators)) == [])
+assert(list(g2.walk_postdominators(5, postdominators)) == [6, 3, 4])
+assert(list(g2.walk_postdominators(6, postdominators)) == [3, 4])