diff options
| author | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2015-06-02 11:41:38 +0200 |
|---|---|---|
| committer | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2015-06-02 11:41:38 +0200 |
| commit | 256e4fab9d028b559872ada875ef5a91d30ed5dc (patch) | |
| tree | d42a4578e64b5620ea8788f4b560b159e507e945 /test/core/graph.py | |
| parent | 6d64ffa872b3f996828f275f63fcbe5027801889 (diff) | |
| download | miasm-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.py | 36 |
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]) |