diff options
author | Andres Noetzli <andres.noetzli@gmail.com> | 2019-03-28 21:02:37 -0700 |
---|---|---|
committer | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2019-03-28 23:02:37 -0500 |
commit | a1decafaf4c7c46a4eda3d816e9a8799b4c96ad3 (patch) | |
tree | 72ea26e545fd904738158c326f2c78c152479d2a /test | |
parent | 952ee3698e7760ccbd90fac5691d455d807af3a6 (diff) |
Fix freeing nodes with maxed refcounts (#2903)
Diffstat (limited to 'test')
-rw-r--r-- | test/unit/expr/node_manager_white.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/test/unit/expr/node_manager_white.h b/test/unit/expr/node_manager_white.h index 99ee171b7..0e5d550a9 100644 --- a/test/unit/expr/node_manager_white.h +++ b/test/unit/expr/node_manager_white.h @@ -70,4 +70,24 @@ class NodeManagerWhite : public CxxTest::TestSuite { TS_ASSERT_THROWS(nb.realloc(67108863), AssertionException&); #endif /* CVC4_ASSERTIONS */ } + + void testTopologicalSort() + { + TypeNode boolType = d_nm->booleanType(); + Node i = d_nm->mkSkolem("i", boolType); + Node j = d_nm->mkSkolem("j", boolType); + Node n1 = d_nm->mkNode(kind::AND, j, j); + Node n2 = d_nm->mkNode(kind::AND, i, n1); + + { + std::vector<NodeValue*> roots = {n1.d_nv}; + TS_ASSERT_EQUALS(NodeManager::TopologicalSort(roots), roots); + } + + { + std::vector<NodeValue*> roots = {n2.d_nv, n1.d_nv}; + std::vector<NodeValue*> result = {n1.d_nv, n2.d_nv}; + TS_ASSERT_EQUALS(NodeManager::TopologicalSort(roots), result); + } + } }; |