I release setp 2 of 2
[ric-plt/xapp-frame-cpp.git] / test / unit_test.sh
index 3e06a53..fd6f2e2 100755 (executable)
@@ -1,6 +1,5 @@
 #!/usr/bin/env bash
 # vim: ts=4 sw=4 noet:
-
 #==================================================================================
 #       Copyright (c) 2020 Nokia
 #       Copyright (c) 2020 AT&T Intellectual Property.
@@ -93,12 +92,24 @@ done
 
 echo "## INFO ##"
 echo "build dir=$build_dir"
-find $build_dir -name "libricxfcpp.*"
+if ! find $build_dir | grep "libricxfcpp.*"    # find returns good even if none; must grep to see error
+then
+       echo "building first..."
+       (
+               cd $build_dir
+               make package
+       )
+
+       echo "build finished"
+       find $build_dir -name "libricxfcpp.*"
+fi
 echo "## INFO ##"
 
 export LD_LIBRARY_PATH=$build_dir:/usr/local/lib:$LD_LIBRARY_PATH
 export LIBRARY_PATH=$build_dir:/usr/local/lib:$LIBRARY_PATH
 
+cp config1.json config-file.json                                               # ensure default named file is there too
+
 make nuke >/dev/null
 make tests >/tmp/PID$$.log 2>&1
 abort_if_error $? "unable to make"
@@ -106,10 +117,22 @@ echo "tests successfully built" >&2
 
 spew="cat"
 
-for x in unit_test jhash_test metrics_test
+# order here is important to ensure coverage files accumulate
+tests="metrics_test jhash_test config_test  unit_test"
+
+#run everything, then generate coverage stats after all have run
+for x in $tests
 do
        ./$x >/tmp/PID$$.log 2>&1
        abort_if_error $? "test failed: $x"
+       grep SUMMARY /tmp/PID$$.log
+done
+
+# it seems that we loose coverage reporting if metrics_test's gcov file is generated
+# after unit test.  Very strange. To be safe, run unit_test last.
+#
+for x in $tests
+do
        gcov $x.c >/dev/null 2>&1
 done