X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=test%2Fsi95_test.c;fp=test%2Fsi95_test.c;h=399ff781a660a4d8a6f6e4121699cce6035880d4;hb=4d1f9bf4b14788f957964d93af940e84f8f01601;hp=0000000000000000000000000000000000000000;hpb=6926c66052111119df8a3d2e7b9e4ddbbeea7910;p=ric-plt%2Flib%2Frmr.git diff --git a/test/si95_test.c b/test/si95_test.c new file mode 100644 index 0000000..399ff78 --- /dev/null +++ b/test/si95_test.c @@ -0,0 +1,164 @@ +// :vi sw=4 ts=4 noet: +/* +================================================================================== + Copyright (c) 2020 Nokia + Copyright (c) 2020 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 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ + +/* + Mmemonic: si95_test.c + Abstract: This is the main driver to test the si95 core functions + (within rmr/src/si/src/si95). + + Author: E. Scott Daniels + Date: 6 March 2018 +*/ + +#include +#include +#include +#include +#include +#include +#include +#include + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define DEBUG 1 + + // specific test tools in this directory +#undef NNG_UNDER_TEST // NNG is NOT under test so undefine if set +#define NO_EMULATION 1 // no emulation of transport functions +#define NO_PRIVATE_HEADERS 1 // no rmr_si or rmr_nng headers +#define NO_DUMMY_RMR 1 // no msg things +#include "test_support.c" // things like fail_if() + + +/* +#include "rmr.h" // things the users see +#include "rmr_symtab.h" +#include "rmr_agnostic.h" // transport agnostic header +*/ +#include +#include + +//#include +//#include +//#include +//#include +//#include +//#include +//#include +//#include +//#include +//#include +#include +//#include +#include +//#include +//#include +//#include +//#include +//#include +#include +#include +#include +//#include + + +/* + Memory allocation/free related tests +*/ +static int memory( ) { + int errors = 0; + void* ptr; + void* iptr; + + // ---- SInew ---------------- + ptr = SInew( 100 ); // invalid block type should return nil + errors += fail_not_nil( ptr, "memory: sinew did not return nil when given a valid struct type" ); + SItrash( 100, NULL ); // drive trash for coverage + + iptr = SInew( IOQ_BLK ); + errors += fail_if_nil( iptr, "memory: sinew returned nil when given ioq request" ); + iptr = SInew( IOQ_BLK ); + SItrash( IOQ_BLK, iptr ); + + ptr = SInew( TP_BLK ); + errors += fail_if_nil( ptr, "memory: sinew returned nil when given tpblk request" ); + if( ptr ) { + ((struct tp_blk *)ptr)->squeue = iptr; + SItrash( TP_BLK, ptr ); + } + + ptr = SInew( GI_BLK ); + errors += fail_if_nil( ptr, "memory: sinew returned nil when given giblk request" ); + SItrash( GI_BLK, ptr ); + + + return errors; +} + +void* si_ctx = NULL; // a global context might be useful + +/* + Test initialisation related things +*/ +static int init() { + int errors = 0; + + si_ctx = SIinitialise( 0 ); + errors += fail_if_nil( si_ctx, "init: siinit returned a nil pointer" ); + + SIclr_tflags( si_ctx, 0x00 ); // drive for coverage; no return value from these + SIset_tflags( si_ctx, 0x03 ); + + return errors; +} + +/* + Drive tests... +*/ +int main() { + int errors = 0; + + rmr_set_vlevel( 5 ); // enable all debugging + + fprintf( stderr, "\n starting SI95 tests\n" ); + + errors += init(); + errors += memory(); + + if( errors == 0 ) { + fprintf( stderr, " all tests were OK\n\n" ); + } else { + fprintf( stderr, " %d errors in SI95 core code\n\n", errors ); + } + + return !!errors; +}