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