}
static void
-check_ancestors_after_aggregation(const struct trie_node *node)
+check_trie_after_aggregation(const struct trie_node *node)
{
ASSERT_DIE(node != NULL);
ASSERT_DIE(node->ancestor != NULL);
if (node->status == IN_FIB)
{
+ ASSERT_DIE(node->px_origin == ORIGINAL || node->px_origin == AGGREGATED);
ASSERT_DIE(node->selected_bucket != NULL);
ASSERT_DIE(node->ancestor != NULL);
ASSERT_DIE(node->ancestor == node);
}
else if (node->status == NON_FIB)
{
+ ASSERT_DIE(node->px_origin == ORIGINAL || node->px_origin == FILLER);
ASSERT_DIE(node->selected_bucket == NULL);
ASSERT_DIE(node->ancestor != NULL);
ASSERT_DIE(node->ancestor != node);
bug("Unknown node status");
if (node->child[0])
- check_ancestors_after_aggregation(node->child[0]);
+ check_trie_after_aggregation(node->child[0]);
if (node->child[1])
- check_ancestors_after_aggregation(node->child[1]);
+ check_trie_after_aggregation(node->child[1]);
}
/*
struct trie_node *highest_node = aggregator_merge_buckets_above(node);
ASSERT_DIE(highest_node != NULL);
aggregator_third_pass(p, highest_node);
+
+ check_trie_after_aggregation(highest_node);
}
/*
struct trie_node *highest_node = aggregator_merge_buckets_above(node);
ASSERT_DIE(highest_node != NULL);
aggregator_third_pass(p, highest_node);
+
+ check_trie_after_aggregation(highest_node);
}
static void
aggregator_second_pass(p->root);
aggregator_third_pass(p, p->root);
- check_ancestors_after_aggregation(p->root);
+ check_trie_after_aggregation(p->root);
}
void