Add first set of SI95 unit tests and health check
[ric-plt/lib/rmr.git] / test / app_test / run_call_test.ksh
index 08562ed..1028523 100644 (file)
@@ -1,8 +1,8 @@
 #!/usr/bin/env ksh
-# :vi ts=4 sw=4 noet :
+# vim: ts=4 sw=4 noet :
 #==================================================================================
-#    Copyright (c) 2019 Nokia
-#    Copyright (c) 2018-2019 AT&T Intellectual Property.
+#    Copyright (c) 2019-2020 Nokia
+#    Copyright (c) 2018-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.
@@ -21,7 +21,7 @@
 # ---------------------------------------------------------------------------------
 #      Mnemonic:       run_call_test.ksh
 #      Abstract:       This is a simple script to set up and run the basic send/receive
-#                              processes for some library validation on top of nano/nng.
+#                              processes for some library validation on top of nng.
 #                              It should be possible to clone the repo, switch to this directory
 #                              and execute  'ksh run -B'  which will build RMr, make the sender and
 #                              recevier then  run the basic test.
 # file in order for the 'main' to pick them up easily.
 #
 function run_sender {
-       if (( nano_sender ))
-       then
-               #       ./sender_nano $nmsg $delay
-               echo "nano is not supported"
-               exit 1
-       else
-               ./caller $nmsg $delay $nthreads
-       fi
+       ./caller${si} $nmsg $delay $nthreads
        echo $? >/tmp/PID$$.src         # must communicate state back via file b/c asynch
 }
 
 # start receiver listening for nmsgs from each thread
 function run_rcvr {
-       if (( nano_receiver ))
-       then
-               #./receiver_nano $(( nmsg * nthreads ))
-               echo "nano is not supported"
-               exit 1
-       else
-               ./mt_receiver $(( nmsg * nthreads ))            # we'll test with the RMr multi threaded receive function
-       fi
+       ./mt_receiver${si} $(( nmsg * nthreads ))               # we'll test with the RMr multi threaded receive function
        echo $? >/tmp/PID$$.rrc
 }
 
@@ -85,7 +71,7 @@ function run_rcvr {
 # be received concurrently.
 #
 function run_pinger {
-    RMR_RTG_SVC=9999 ./sender 100 100 4 3333 >/dev/NULL 2>&1  # send pings
+    RMR_RTG_SVC=9999 ./sender${si} 100 100 4 3333 >/dev/NULL 2>&1  # send pings
 }
 
 
@@ -99,21 +85,21 @@ cat <<endKat >caller.rt
 # receiver, and all others go to the caller.
 
 newrt | start
-mse | 0 |  0 | localhost:43086
-mse | 1 | 10 | localhost:43086
-mse | 2 | 20 | localhost:43086
-rte | 3 | localhost:43086
-mse | 3 | 100 | localhost:43086        # special test to ensure that this does not affect previous entry
-rte | 4 | localhost:43086
-rte | 5 | localhost:4560
-rte | 6 | localhost:43086
-rte | 7 | localhost:43086
-rte | 8 | localhost:43086
-rte | 9 | localhost:43086
-rte | 10 | localhost:43086
-rte | 11 | localhost:43086
-rte | 12 | localhost:43086
-rte | 13 | localhost:43086
+mse | 0 |  0 | $localhost:43086
+mse | 1 | 10 | $localhost:43086
+mse | 2 | 20 | $localhost:43086
+rte | 3 | $localhost:43086
+mse | 3 | 100 | $localhost:43086       # special test to ensure that this does not affect previous entry
+rte | 4 | $localhost:43086
+rte | 5 | $localhost:4560
+rte | 6 | $localhost:43086
+rte | 7 | $localhost:43086
+rte | 8 | $localhost:43086
+rte | 9 | $localhost:43086
+rte | 10 | $localhost:43086
+rte | 11 | $localhost:43086
+rte | 12 | $localhost:43086
+rte | 13 | $localhost:43086
 
 newrt | end | 16
 endKat
@@ -123,16 +109,15 @@ endKat
 
 nmsg=10                                                # total number of messages to be exchanged (-n value changes)
 delay=1000000                          # microsec sleep between msg 1,000,000 == 1s
-nano_sender=0                          # start nano version if set (-N)
-nano_receiver=0
 wait=1
 rebuild=0
 verbose=0
 nthreads=3
 dev_base=1                                     # -D turns off to allow this to run on installed libs
+force_make=0
+si=""
+localhost="localhost"
 
-nano_sender=0                          # mt-call is not supported in nano
-nano_receiver=0
 
 
 while [[ $1 == -* ]]
@@ -142,12 +127,19 @@ do
                -d)     delay=$2; shift;;
                -D)     dev_base=0;;
                -n)     nmsg=$2; shift;;
+               -M)     force_make=1;;
+               -N) si="";;                                             # enable NNG testing (off si)
+               -S) si="_si"                                    # enable SI95 testing
+                       localhost="127.0.0.1"
+                       ;;
                -t)     nthreads=$2; shift;;
                -v)     verbose=1;;
 
                *)      echo "unrecognised option: $1"
-                       echo "usage: $0 [-B] [-d micro-sec-delay] [-n num-msgs] [-t num-threads]"
-                       echo "  -B forces a rebuild which will use .build"
+                       echo "usage: $0 [-B] [-d micro-sec-delay] [-M] [-n num-msgs] [-S] [-t num-threads]"
+                       echo "  -B forces an RMR rebuild which will use .build"
+                       echo "  -M force test applications to rebuild"
+                       echo "  -S build/test SI95 based binaries"
                        exit 1
                        ;;
        esac
@@ -165,7 +157,7 @@ if (( rebuild ))
 then
        build_path=../../.build
        set -e
-       ksh ./rebuild.ksh
+       $SHELL ./rebuild.ksh
        set +e
 else
        build_path=${BUILD_PATH:-"../../.build"}        # we prefer .build at the root level, but allow user option
@@ -182,12 +174,13 @@ if (( dev_base ))                                                 # assume we are testing against what we've built, not wh
 then
        if [[ -d $build_path/lib64 ]]
        then
-               export LD_LIBRARY_PATH=$build_path:$build_path/lib64
+               export LD_LIBRARY_PATH=$build_path:$build_path/lib64:$LD_LIBRARY_PATH
        else
-               export LD_LIBRARY_PATH=$build_path:$build_path/lib
+               export LD_LIBRARY_PATH=$build_path:$build_path/lib:$LD_LIBRARY_PATH
        fi
+       export LIBRARY_PATH=$LD_LIBRARY_PATH
 else                                                                           # -D option gets us here to test an installed library
-       export LD_LIBRARY_PATH=/usr/local/lib
+       export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
        export LIBRARY_PATH=$LD_LIBRARY_PATH
 fi
 
@@ -198,11 +191,13 @@ then
        mk_rt
 fi
 
-if [[ ! -f ./sender ]]
+if (( rebuild || force_make )) || [[ ! -f ./sender${si} || ! -f ./caller${si} || ! -f ./mt_receiver${si} ]]
 then
-       if ! make >/dev/null 2>&1
+       if ! make -B sender${si} caller${si} mt_receiver${si} >/tmp/PID$$.log 2>&1
        then
-               echo "[FAIL] cannot find sender binary, and cannot make it.... humm?"
+               echo "[FAIL] cannot find caller{$si} and/or mt_receiver${si} binary, and cannot make them.... humm?"
+               cat /tmp/PID$$.log
+               rm -f /tmp/PID$$.*
                exit 1
        fi
 fi