Make the PYPI page for rmr look nicer.
[ric-plt/lib/rmr.git] / test / mbuf_api_static_test.c
index f232b3e..2482f0c 100644 (file)
@@ -1,14 +1,14 @@
 // : vi ts=4 sw=4 noet :
 /*
 ==================================================================================
-        Copyright (c) 2019 Nokia
-        Copyright (c) 2018-2019 AT&T Intellectual Property.
+           Copyright (c) 2019 Nokia
+           Copyright (c) 2018-2019 AT&T Intellectual Property.
 
    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0
+          http://www.apache.org/licenses/LICENSE-2.0
 
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
 #include <errno.h>
 #include <string.h>
 #include <stdint.h>
+#include <pthread.h>
+#include <semaphore.h>
 
-#include "../src/common/include/rmr.h"
-#include "../src/common/include/rmr_agnostic.h"
+#include "rmr.h"
+#include "rmr_agnostic.h"
 
 
 int mbuf_api_test( ) {
@@ -45,6 +47,7 @@ int mbuf_api_test( ) {
        int state;
        int errors = 0;
        char*   buf;
+       void*   ptr;
        rmr_mbuf_t*     mbuf;
        unsigned char src_buf[256];
 
@@ -74,7 +77,7 @@ int mbuf_api_test( ) {
        rmr_bytes2payload( mbuf, src_buf, 8192 );                                               // bust the limit
        errors += fail_if( mbuf->state == RMR_OK, "huge buf copy to payload returned good state in mbuf" );
        errors += fail_if( errno == 0, "huge buf copy to payload returned good state in errno" );
-       
+
 
        snprintf( src_buf, sizeof( src_buf ), "This is some text in the buffer" );
        rmr_str2payload( mbuf, src_buf );                                                       // this uses bytes2payload, so only one invocation needed
@@ -133,7 +136,7 @@ int mbuf_api_test( ) {
        c = rmr_get_meid( NULL, NULL );
        errors += fail_if( c != NULL, "get meid with nil message buffer" );
        errors += fail_if( errno == 0, "(errno bad) get meid with nil msg buffer" );
-       
+
        c = rmr_get_meid( mbuf, NULL );                 // should allocate and return c
        errors += fail_if( c == NULL, "get meid with nil dest pointer (did not allocate a buffer)" );
        errors += fail_if( strcmp( c, "test-meid" ) != 0, "did not get expected meid from mbuffer" );
@@ -217,7 +220,25 @@ int mbuf_api_test( ) {
        state = rmr_get_trlen( NULL );                                                          // coverage test on nil check
        errors += fail_not_equal( state, 0, "get trace length with nil msg didn't return expected 0 status" );
 
-       
+       ptr = rmr_trace_ref( NULL, NULL );
+       errors += fail_not_nil( ptr, "trace ref returned non-nil pointer when given nil message" );
+
+       mbuf = test_mk_msg( 2048, 0 );          // initially no trace size to force realloc
+       ptr = rmr_trace_ref( mbuf, NULL );
+       errors += fail_not_nil( ptr, "trace ref returned non-nil pointer when given a message without trace data" );
+
+       i = 100;                                                                // ensure that i is reset when there is no trace data
+       ptr = rmr_trace_ref( mbuf, &i );
+       errors += fail_not_nil( ptr, "trace ref returned non-nil pointer when given a message without trace data" );
+       errors += fail_not_equal( i, 0, "trace ref returned non zero size (a) when no trace info in message" );
+
+       i = 100;
+       mbuf = test_mk_msg( 2048, 113 );                // alloc with a trace data area
+       ptr = rmr_trace_ref( mbuf, &i );
+       errors += fail_if_nil( ptr, "trace ref returned nil pointer when given a message with trace data" );
+       errors += fail_not_equal( i, 113, "trace ref returned bad size (a), expected (b)" );
+
+
        src_buf[0] = 0;
        state = rmr_set_trace( mbuf, "foo bar was here", 17 );          // should force a realloc
        errors += fail_not_equal( state, 17, "bytes copied to trace (a) did not match expected size (b)" );
@@ -262,8 +283,19 @@ int mbuf_api_test( ) {
        errors += fail_not_nil( buf, "rmr_get_src returned a pointer when given a nil dest buffer" );
 
        buf = rmr_get_src( mbuf, src_buf );
-       errors += fail_not_equal( buf, src_buf, "rmr_get_src didn't return expexted buffer pointer" );
-       
+       errors += fail_not_equalp( buf, src_buf, "rmr_get_src didn't return expexted buffer pointer" );
+
+       buf = rmr_get_srcip( NULL, NULL );
+       errors += fail_not_nil( buf, "get_srcip did not return nil when given nil pointers" );
+
+       buf = rmr_get_srcip( mbuf, NULL );
+       errors += fail_not_nil( buf, "get_srcip did not return nil when given nil destination" );
+
+       buf = rmr_get_srcip( mbuf, src_buf );
+       errors += fail_not_equalp( buf, src_buf, "rmr_get_srcip didn't return expexted buffer pointer" );
+
+       test_set_ver( mbuf, 2 );                                                        // set older message version to ensure properly handled
+       buf = rmr_get_srcip( mbuf, src_buf );
 
        return errors > 0;                      // overall exit code bad if errors
 }