Merge "Fix semaphore count bug in SI95 non-blocking rcv"
[ric-plt/lib/rmr.git] / test / unit_test.ksh
index ad21465..718055a 100755 (executable)
@@ -190,7 +190,7 @@ function discount_an_checks {
                }
        }
 
-       /-:/ {                          # skip unexecutable lines
+       /-:/ {                          # skip unexecutable lines
                spit_line()
                seq++                                   # allow blank lines in a sequence group
                next
@@ -345,7 +345,8 @@ show_output=0                                                                       # show output from each test execution (-S)
 quiet=0
 gen_xml=0
 replace_flags=1                                                                        # replace ##### in gcov for discounted lines
-run_nano_tests=0
+run_nano_tests=0                                                               # can nolonger be turned on
+run_nng_tests=0                                                                        # -N will enable
 always_gcov=0                                                                  # -a sets to always run gcov even if failure
 save_gcov=1                                                                            # -o turns this off
 out_dir=${UT_COVERAGE_DIR:-/tmp/rmr_gcov}              # -O changes output directory
@@ -360,7 +361,7 @@ do
                -C)     builder="$2"; shift;;           # custom build command
                -G)     builder="gmake %s";;
                -M)     builder="mk -a %s";;            # use plan-9 mk (better, but sadly not widly used)
-               -N)     run_nano_tests=1;;
+               -N)     run_nng_tests=1;;
                -O)     out_dir=$2; shift;;
 
                -a)     always_gcov=1;;
@@ -385,9 +386,9 @@ do
                        ;;
 
 
-               -h)     usage; exit 0;;
+               -h)             usage; exit 0;;
                --help) usage; exit 0;;
-               -\?)    usage; exit 0;;
+               -\?)    usage; exit 0;;
 
                *)      echo "unrecognised option: $1" >&2
                        usage >&2
@@ -399,7 +400,7 @@ do
 done
 
 
-if (( strict ))                # if in strict mode, coverage shortcomings are failures
+if (( strict ))                        # if in strict mode, coverage shortcomings are failures
 then
        cfail="FAIL"
 else
@@ -418,11 +419,16 @@ then
        do
                if [[ $tfile != *"static_test.c" ]]
                then
-                       if(( ! run_nano_tests )) && [[ $tfile == *"nano"* ]]
+                       if (( ! run_nng_tests )) && [[ $tfile == *"nng"* ]]             # drop any nng file unless -N given
+                       then
+                               continue
+                       fi
+                       if [[ $tfile == *"nano"* ]]                     # no longer support nano tests; drop regardless
                        then
                                continue
                        fi
 
+                       echo "<INFO> add test: $tfile" >&2
                        flist="${flist}$tfile "
                fi
        done
@@ -445,6 +451,11 @@ rm -fr *.gcov                      # ditch the previous coverage files
 ut_errors=0                    # unit test errors (not coverage errors)
 errors=0
 
+if ! touch /tmp/PPID$$.noise
+then
+       echo "<ERR> unable to write to /tmp???"
+fi
+
 for tfile in $flist
 do
        for x in *.gcov
@@ -455,14 +466,14 @@ do
                fi
        done
 
+       echo "$tfile --------------------------------------"
        (       # all noise is now captured into a tmp file to support quiet mode
-               echo "$tfile --------------------------------------"
                bcmd=$( printf "$builder" "${tfile%.c}" )
                if ! $bcmd >/tmp/PID$$.log 2>&1
                then
                        echo "[FAIL] cannot build $tfile"
                        cat /tmp/PID$$.log
-                       rm -f /tmp/PID$$
+                       # do NOT remove tmp files; bash seens to not gen a new PID for subshells
                        exit 1
                fi
 
@@ -612,7 +623,6 @@ do
                                                }
                                        }
                                }
-
                        }
 
                        END {
@@ -623,7 +633,7 @@ do
                rc=$?
                cat /tmp/PID$$.log
 
-               if (( rc  || force_discounting ))       # didn't pass, or forcing, see if discounting helps
+               if (( rc  || force_discounting ))       # didn't pass, or forcing, see if discounting helps
                then
                        if (( ! verbose ))
                        then
@@ -645,7 +655,7 @@ do
 
                                tail -1 /tmp/PID$$.disc | grep '\['
 
-                               if (( verbose > 1 ))                    # updated file was generated, keep here
+                               if (( verbose > 1 ))                    # updated file was generated, keep here
                                then
                                        echo "[INFO] discounted coverage info in: ${tfile##*/}.dcov"
                                fi
@@ -653,7 +663,7 @@ do
                                mv /tmp/PID$$.disc ${name##*/}.dcov
                        done
                fi
-       )>/tmp/PID$$.noise 2>&1
+       )>/tmp/PID$$.noise 2>&1
        if (( $? != 0 ))
        then
                (( ut_errors++ ))
@@ -685,7 +695,7 @@ do
        if [[ $xx != *"test"* ]]
        then
                of=${xx%.gcov}.dcov
-               discount_an_checks $xx  >$of
+               discount_an_checks $xx  >$of
                if [[ -n $of ]]
                then
                        tail -1 $of |  grep '\['