Merge "Correct summary bug in python wrapper"
[ric-plt/lib/rmr.git] / test / rmr_nng_api_static_test.c
index a3c8350..f08c2f1 100644 (file)
@@ -122,16 +122,25 @@ static int rmr_api_test( ) {
                return 1;
        }
 
+       setenv( "RMR_SRC_ID", "somehost", 1 );                                                          // context should have this as source
        if( (rmc2 = rmr_init( ":6789", 1024, FL_NOTHREAD )) == NULL ) {         // init without starting a thread
                errors += fail_if_nil( rmc, "rmr_init returned a nil pointer for non-threaded init "  );
        }
 
+       fprintf( stderr, "<INFO> with RMR_SRC_ID env set, source name in context: (%s)\n", ((uta_ctx_t *) rmc2)->my_name );
+       v = strcmp( ((uta_ctx_t *) rmc2)->my_name, "somehost:6789" );
+       errors += fail_not_equal( v, 0, "source name not set from environment variable (see previous info)" );
        free_ctx( rmc2 );                       // coverage
-
+       
+       unsetenv( "RMR_SRC_ID" );                                                                                               // context should NOT have our artificial name 
        if( (rmc2 = rmr_init( NULL, 1024, FL_NOTHREAD )) == NULL ) {                    // drive default port selector code
                errors += fail_if_nil( rmc, "rmr_init returned a nil pointer when driving for default port "  );
        }
 
+       fprintf( stderr, "<INFO> after unset of RMR_SRC_ID, source name in context: (%s)\n", ((uta_ctx_t *) rmc2)->my_name );
+       v = strcmp( ((uta_ctx_t *) rmc2)->my_name, "somehost:6789" );
+       errors += fail_if_equal( v, 0, "source name smells when removed from environment (see previous info)" );
+       free_ctx( rmc2 );                       // attempt to reduce leak check errors
 
        v = rmr_ready( rmc );           // unknown return; not checking at the moment
 
@@ -184,12 +193,14 @@ static int rmr_api_test( ) {
        msg->len = 100;
        msg->mtype = 1;
        msg->state = 999;
+       msg->tp_state = 999;
        errno = 999;
        msg = rmr_send_msg( rmc, msg );
        errors += fail_if_nil( msg, "send_msg_ did not return a message on send "  );
        if( msg ) {
                errors += fail_not_equal( msg->state, RMR_ERR_NOENDPT, "send_msg did not return no endpoints before rtable added "  );
                errors += fail_if( errno == 0, "send_msg did not set errno "  );
+               errors += fail_if( msg->tp_state == 999, "send_msg did not set tp_state (1)" );
        }
 
        gen_rt( rmc );          // --- after this point there is a dummy route table so send and rts calls should be ok
@@ -197,6 +208,7 @@ static int rmr_api_test( ) {
        msg->len = 100;
        msg->mtype = 1;
        msg->state = 999;
+       msg->tp_state = 999;
        errno = 999;
        msg = rmr_send_msg( rmc, msg );
        errors += fail_if_nil( msg, "send_msg_ did not return a message on send "  );
@@ -205,6 +217,7 @@ static int rmr_api_test( ) {
                errors += fail_if( errno != 0, "send_msg set errno for send that should work "  );
                v = rmr_payload_size( msg );
                errors += fail_if( v != 2048, "send_msg did not allocate new buffer with correct size "  );
+               errors += fail_if( msg->tp_state == 999, "send_msg did not set tp_state (2)" );
        }
 
        rmr_set_stimeout( NULL, 0 );
@@ -436,6 +449,10 @@ static int rmr_api_test( ) {
        em_set_mtc_msgs( 0 );                                                   // turn off 
        em_set_rcvdelay( 0 );                                                   // full speed receive rate
        ((uta_ctx_t *)rmc)->shutdown = 1;                               // force the mt-reciver attached to the context to stop
+
+       em_set_rcvdelay( 0 );                                                   // let the receive loop spin w/o receives so we drive warning code about queue full
+       sleep( 5 );
+       em_set_rcvdelay( 1 );                                                   // restore slow receive pace for any later tests
 #endif