fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/28512 )
Change subject: coverity: compile tests, but not execute them ......................................................................
coverity: compile tests, but not execute them
Compiling unit tests would allow Coverity to analyze them too and thus find more bugs. The problem is that binaries listed in check_PROGRAMS are not compiled during 'make all', but only during 'make check'.
One approach [1] is to run 'make check' in do_build(), however it breaks 'Coverity-Upload' job because some unit tests are failing. This is why I had to revert bf84ba9f69a0a2125bfd4327519b0e6fa212d664 together with ae41942214ef43bbb6aeb257bad2985765035ad7 that was supposed to fix it.
Even if all unit tests were passing, we still don't want to execute them because running tests is beyond the scope of 'Coverity-Upload' job.
Another approach is to patch Makefile.am files replacing check_PROGRAMS with noinst_PROGRAMS, so that the test binaries are compiled during 'make all' but not executed.
Change-Id: Idf0714a59356633021be21acc47f9471d059b7fe Related: [1] I3f3149a61df96646798c72d0ad31c41b97e6b81f --- M coverity/prepare_source_Osmocom.sh 1 file changed, 7 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/12/28512/1
diff --git a/coverity/prepare_source_Osmocom.sh b/coverity/prepare_source_Osmocom.sh index 452af3e..e63436b 100755 --- a/coverity/prepare_source_Osmocom.sh +++ b/coverity/prepare_source_Osmocom.sh @@ -47,6 +47,13 @@ else git clone git://git.osmocom.org/$proj fi + + # We want to compile tests, but not execute them. Using 'noinst_PROGRAMS' + # instead of 'check_PROGRAMS' allows building test binaries during 'make all'. + files="$(git -C $proj grep -l check_PROGRAMS)" + if [ ! -z "$files" ]; then + sed -i "s/check_PROGRAMS/noinst_PROGRAMS/" $files + fi done
if ! [ -d layer1-api ]; then