507 CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc)); |
507 CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc)); |
508 } |
508 } |
509 cx_testing_allocator_destroy(&talloc); |
509 cx_testing_allocator_destroy(&talloc); |
510 } |
510 } |
511 |
511 |
|
512 CX_TEST(test_tree_visitor_create_and_dispose) { |
|
513 tree_node root; |
|
514 tree_node child; |
|
515 cx_tree_link(&root, &child, tree_node_layout); |
|
516 CX_TEST_DO { |
|
517 CxTreeVisitor iter = cx_tree_visitor(&root, tree_child_list); |
|
518 CX_TEST_ASSERT(iter.counter == 1); |
|
519 CX_TEST_ASSERT(iter.node == &root); |
|
520 CX_TEST_ASSERT(!iter.base.mutating); |
|
521 CX_TEST_ASSERT(!iter.base.remove); |
|
522 CX_TEST_ASSERT(iter.queue_next != NULL); |
|
523 CX_TEST_ASSERT(iter.queue_last != NULL); |
|
524 CX_TEST_ASSERT(iter.depth == 1); |
|
525 CX_TEST_ASSERT(iter.loc_next == offsetof(tree_node, next)); |
|
526 CX_TEST_ASSERT(iter.loc_children == offsetof(tree_node, children)); |
|
527 cxTreeVisitorDispose(&iter); |
|
528 CX_TEST_ASSERT(iter.queue_next == NULL); |
|
529 CX_TEST_ASSERT(iter.queue_last == NULL); |
|
530 } |
|
531 } |
|
532 |
512 CX_TEST(test_tree_visitor) { |
533 CX_TEST(test_tree_visitor) { |
513 tree_node root = {0}; |
534 tree_node root = {0}; |
514 tree_node a = {0}; |
535 tree_node a = {0}; |
515 tree_node b = {0}; |
536 tree_node b = {0}; |
516 tree_node c = {0}; |
537 tree_node c = {0}; |