Added small node test, working on edge tests

This commit is contained in:
thorkill 2015-07-02 21:33:28 +02:00
parent 743671278f
commit bfea5f350f

View file

@ -36,45 +36,94 @@
#include "splay_tree.h" #include "splay_tree.h"
#include "conf.h" #include "conf.h"
#include "edge.h" #include "edge.h"
#include "node.h"
#include "xalloc.h" #include "xalloc.h"
/*
node tests
*/
static int node_setup(void **state) {
UNUSED(state);
init_nodes();
return 0;
}
static int node_teardown(void **state) {
UNUSED(state);
return 0;
}
static void test_node_init(void **state) {
node_t *n1, *n2;
UNUSED(state);
n1 = new_node();
assert_non_null(n1);
n2 = new_node();
assert_non_null(n2);
}
/* /*
edge tests edge tests
*/ */
static int edge_setup(void **state) { static int edge_setup(void **state) {
splay_tree_t *edge_tree; UNUSED(state);
edge_tree = new_edge_tree(); init_edges();
*state = edge_tree;
return 0; return 0;
} }
static int edge_teardown(void **state) { static int edge_teardown(void **state) {
splay_tree_t *edge_tree = *state; UNUSED(state);
splay_delete_tree(edge_tree); exit_edges();
return 0; return 0;
} }
static void test_edge_init(void **state) { static void test_edge_init(void **state) {
splay_tree_t *edge_tree = *state; UNUSED(state);
edge_t *e1, *e2; edge_t *e1, *e2;
node_t *n1, *n2;
assert_non_null(edge_tree);
e1 = new_edge(); e1 = new_edge();
assert_non_null(e1); assert_non_null(e1);
assert_null(e1->from);
assert_null(e1->to);
init_nodes();
n1 = new_node();
n2 = new_node();
assert_null(n1->name);
assert_null(n2->name);
n1->name = xstrdup("node1");
n2->name = xstrdup("node2");
e1->from = n1;
e1->to = n2;
//TODO: make edge_add work on any edge_tree //TODO: make edge_add work on any edge_tree
//edge_add(edge_tree, e1); // edge_add needs from and to to be set
e2 = clone_edge(e1); //e2 = clone_edge(e1);
assert_non_null(e2); e2 = new_edge();
//edge_add(edge_tree, e2); e2->from = n2;
e2->to = n1;
assert_int_equal(edge_tree->count, 2); assert_ptr_not_equal(e1, e2);
edge_add(e1);
edge_add(e2);
assert_int_equal(edge_weight_tree->count, 2);
//TODO: make edge_del work on any edge_tree //TODO: make edge_del work on any edge_tree
//edge_del(edge_tree, e2); edge_del(e1);
assert_int_equal(edge_tree->count, 1); assert_int_equal(edge_weight_tree->count, 1);
exit_nodes();
} }
@ -246,6 +295,8 @@ static void test_config_add_item_no_filename(void **state) {
int main(void) { int main(void) {
const struct CMUnitTest tests[] = { const struct CMUnitTest tests[] = {
// node tests
cmocka_unit_test_setup_teardown(test_node_init, node_setup, node_teardown),
// edge tests // edge tests
cmocka_unit_test_setup_teardown(test_edge_init, edge_setup, edge_teardown), cmocka_unit_test_setup_teardown(test_edge_init, edge_setup, edge_teardown),
// config tests // config tests