1 #include <check.h>
2 #include <stdlib.h>
3 #include "pathtree.hh"
4
START_TEST(test1)5 START_TEST(test1)
6 {
7 PathTree< int> pt( "/" );
8
9 pt.addPath( "/a", 1 );
10 pt.addPath( "/a/b/c", 2 );
11 pt.addPath( "/a/b/c/d/e", 3 );
12
13 auto n1 = pt.outerFind( "/c", true );
14 auto n2 = pt.outerFind( "/a/b", true );
15 auto n3 = pt.outerFind( "/a/b/c", true );
16 auto n4 = pt.outerFind( "/a/b/c/d", true );
17 auto n5 = pt.outerFind( "/a/f", true );
18 auto n6 = pt.outerFind( "/a/b/c/g", true );
19 auto n7 = pt.outerFind( "/a/b/c/d/e/f", true );
20
21 ck_assert_ptr_eq( n1, NULL );
22 ck_assert_ptr_ne( n2, NULL );
23 ck_assert_int_eq( n2->getNodeData(), 1 );
24 ck_assert_ptr_ne( n3, NULL );
25 ck_assert_int_eq( n3->getNodeData(), 2 );
26 ck_assert_ptr_ne( n4, NULL );
27 ck_assert_int_eq( n4->getNodeData(), 2 );
28 ck_assert_ptr_ne( n5, NULL );
29 ck_assert_int_eq( n5->getNodeData(), 1 );
30 ck_assert_ptr_ne( n6, NULL );
31 ck_assert_int_eq( n6->getNodeData(), 2 );
32 ck_assert_ptr_ne( n7, NULL );
33 ck_assert_int_eq( n7->getNodeData(), 3 );
34 }
35 END_TEST
36
pathtree_suite(void)37 Suite * pathtree_suite( void )
38 {
39 Suite *s;
40 TCase *tc_pathtree;
41
42 s = suite_create("pathtree test");
43
44 /* Core test case */
45 tc_pathtree = tcase_create( "test1" );
46
47 tcase_add_test( tc_pathtree, test1 );
48 suite_add_tcase( s, tc_pathtree );
49
50 return s;
51 }
52
main(void)53 int main(void)
54 {
55 int number_failed;
56 Suite *s;
57 SRunner *sr;
58
59 s = pathtree_suite();
60 sr = srunner_create( s );
61
62 srunner_run_all( sr, CK_NORMAL );
63 number_failed = srunner_ntests_failed( sr );
64 srunner_free( sr );
65 return ( number_failed == 0 ) ? EXIT_SUCCESS : EXIT_FAILURE;
66 }
67