X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=test%2Fapp_test%2Fex_rts_receiver.c;fp=test%2Fapp_test%2Fex_rts_receiver.c;h=287143f4f7ebf699c273b0d50fc4c95f46fefc4b;hb=c113b0836f3ebd58911c30de1636a707174efe55;hp=e2a73e68aa57a27ac569e44c4760cd51661ccaf9;hpb=06a08e215376adc488f6cd39b9647d7b589f7b75;p=ric-plt%2Flib%2Frmr.git diff --git a/test/app_test/ex_rts_receiver.c b/test/app_test/ex_rts_receiver.c index e2a73e6..287143f 100644 --- a/test/app_test/ex_rts_receiver.c +++ b/test/app_test/ex_rts_receiver.c @@ -100,6 +100,8 @@ int main( int argc, char** argv ) { char osrc[128]; // src strings to test when cloning char nsrc[128]; int verbose = 0; + int old_len; + int dmb_size = 2048; // default message buffer size data = getenv( "RMR_RTG_SVC" ); if( data == NULL ) { @@ -135,15 +137,20 @@ int main( int argc, char** argv ) { memset( count_bins, 0, sizeof( count_bins ) ); - fprintf( stderr, " listening on port: %s for a max of %d messages\n", listen_port, nmsgs ); + fprintf( stderr, " listening on port %s for a max of 20 seconds\n", listen_port ); fprintf( stderr, " copy=%d clone=%d\n", copy, clone ); + if( ! clone ) { + dmb_size = 128; // not cloning, force small buffer to test larger buffer receives + } + + fprintf( stderr, " default receive message buffer size: %d\n", dmb_size ); #ifdef MTC fprintf( stderr, " starting in multi-threaded mode\n" ); - mrc = rmr_init( listen_port, RMR_MAX_RCV_BYTES, RMRFL_MTCALL ); // start RMr in mt-receive mode + mrc = rmr_init( listen_port, dmb_size, RMRFL_MTCALL ); // start RMr in mt-receive mode #else fprintf( stderr, " starting in direct receive mode\n" ); - mrc = rmr_init( listen_port, RMR_MAX_RCV_BYTES, RMRFL_NONE ); // start your engines! + mrc = rmr_init( listen_port, dmb_size, RMRFL_NONE ); // start your engines! #endif if( mrc == NULL ) { fprintf( stderr, " ABORT: unable to initialise RMr\n" ); @@ -180,18 +187,22 @@ int main( int argc, char** argv ) { } if( clone ) { - need = rmr_payload_size( msg ); + need = msg->len; // clone what was sent, not entire payload } else { need = generate_payload( ack_header, ack_data, 0, 0 ); // create an ack w/ random payload in payload, and set data in header } if( clone || rmr_payload_size( msg ) < need ) { // received message too small or we want to clone the original for test + old_len = msg->len; resized++; omsg = msg; rmr_get_src( omsg, osrc ); msg = rmr_realloc_payload( msg, need, copy, clone ); // reallocate the message with a payload big enough or clone if set rmr_get_src( msg, nsrc ); + if( msg->len != old_len ) { + fprintf( stderr, "[ERR] after realloc len=%d didn't match old len=%d\n", msg->len, old_len ); + } if( strcmp( osrc, nsrc ) != 0 ) { fprintf( stderr, "[ERR] realloc source strings don't match (%s) new=(%s)\n", osrc, nsrc ); } else {