X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=test%2Frt_static_test.c;h=79d05614d80a54246da61c236b14964a379a6762;hb=refs%2Fchanges%2F02%2F5102%2F1;hp=8fd91ac475f07d962e3cc3c0a72bafb4297b6e92;hpb=5ec64c5253b3b7611ec69cc1487989fae45eca26;p=ric-plt%2Flib%2Frmr.git diff --git a/test/rt_static_test.c b/test/rt_static_test.c index 8fd91ac..79d0561 100644 --- a/test/rt_static_test.c +++ b/test/rt_static_test.c @@ -127,6 +127,7 @@ static int rt_test( ) { char* seed_fname; // seed file SOCKET_TYPE nn_sock; // differnt in each transport (nng == struct, SI/Nano == int) rmr_mbuf_t* mbuf; // message for meid route testing + void* p; // generic pointer #ifndef NNG_UNDER_TEST si_ctx_t* si_ctx = NULL; @@ -294,6 +295,12 @@ static int rt_test( ) { state = uta_epsock_byname( NULL, "localhost:4561", &nn_sock, &ep ); // test coverage on nil checks #else state = uta_epsock_byname( NULL, "localhost:4561", &nn_sock, &ep ); + errors += fail_not_equal( state, 0, "socket (by name) nil context check returned true" ); + + p = ctx->si_ctx; + ctx->si_ctx = NULL; // set to drive second test + state = uta_epsock_byname( ctx, "localhost:4561", &nn_sock, &ep ); + ctx->si_ctx = p; #endif errors += fail_not_equal( state, 0, "socket (by name) nil check returned true" ); @@ -415,19 +422,57 @@ static int rt_test( ) { free( buf ); } -fprintf( stderr, ">>>>>> test is overtly dropping rt table at %p\n", rt ); + fprintf( stderr, " test is overtly dropping rt table at %p\n", rt ); + ctx->rtable = NULL; uta_rt_drop( rt ); rt = NULL; + // --- force the load of a RT which has some edge case forcing issues if( ctx ) { - if( (seed_fname = getenv( "RMR_SEED_RT" )) != NULL ) { - read_static_rt( ctx, 0 ); - rt = ctx->rtable; - errors += fail_if_nil( rt, "read seed table didn't generate a rtable pointer in context" ); - unsetenv( "RMR_SEED_RT" ); // remove for next test - } - + char* rt_stuff = + "newrt | start | dummy-seed\n" + "mse | 1 | -1 | localhost:84306\n" + "mse | 10 | -1 | localhost:84306\n" + "mse | 10 | 1 | localhost:84306\n" + "# should cause failure because there aren't 10 entries above\n" + "newrt | end | 10\n" + + "# this table has no end\n" + "newrt | start | dummy-seed\n" + "mse | 1 | -1 | localhost:84306\n" + "mse | 10 | -1 | localhost:84306\n" + "mse | 10 | 1 | localhost:84306\n" + + "# this table should be ok\n" + "newrt | start | dummy-seed\n" + "mse | 1 | -1 | localhost:84306\n" + "mse | 10 | -1 | localhost:84306\n" + "mse | 10 | 1 | localhost:84306\n" + "newrt | end | 3\n" + + "# for an update to the existing table\n" + "# not in progress; drive that exception check\n" + "update | end | 23\n" + + "update | start | dummy-seed\n" + "mse | 3 | 2 | localhost:2222\n" + "# short record to drive test\n" + "del\n" + "# no table end for exception handling\n" + + "update | start | dummy-seed\n" + "mse | 2 | 2 | localhost:2222\n" + "del | 10 | 1\n" + "update | end | 2\n"; + + fprintf( stderr, " loading RT from edge case static table\n" ); + fprintf( stderr, " %s\n", rt_stuff ); + gen_custom_rt( ctx, rt_stuff ); + fprintf( stderr, " edge case load completed\n" ); + errors += fail_if_nil( ctx->rtable, "edge case route table didn't generate a pointer into the context" ); + + unsetenv( "RMR_SEED_RT" ); // remove for next read try read_static_rt( ctx, 0 ); // drive for not there coverage } @@ -620,5 +665,10 @@ fprintf( stderr, ">>>>>> test is overtly dropping rt table at %p\n", rt ); errors += fail_not_nil( ep, "fd2ep delete returned a pointer for unknown mapping" ); #endif + // ---------------- misc coverage tests -------------------------------------------------------------------------- + collect_things( NULL, NULL, NULL, NULL, NULL ); // these both return null, these test NP checks + collect_things( NULL, NULL, NULL, NULL, (void *) 1234 ); // the last is an invalid pointer, but check needed to force check on previous param + del_rte( NULL, NULL, NULL, NULL, NULL ); + return !!errors; // 1 or 0 regardless of count }