samba_3_master*)
lcov --base-directory $builddir --directory $builddir/.. --capture --output-file $builddir/$tree.lcov.info
;;
- samba_4*)
- # rm -f heimdal/lib/*/{lex,parse,sel-lex}.{gcda,gcno}
- lcov --base-directory $builddir --directory $builddir/.. --capture --output-file $builddir/$tree.lcov.info
+ samba_4*|tdb|talloc|ldb|libreplace)
+ lcov --base-directory $builddir/bin --directory $builddir/bin --capture --output-file $builddir/$tree.lcov.info
+ ;;
+ waf)
+ lcov --base-directory $builddir/demos --directory $builddir/demos --capture --output-file $builddir/$tree.lcov.info
;;
*)
lcov --base-directory $builddir --directory $builddir --capture --output-file $builddir/$tree.lcov.info
fi
}
+action_callcatcherreport() {
+ if [ "$CALLCATCHER_REPORT" = "yes" ]; then
+ case "$tree" in
+ samba_3_master*)
+ callanalyse `find $builddir/bin -name \*.so*` $builddir/bin/* | grep -v -f $srcdir/callcatcher-exceptions.grep > $builddir/coverage/unused-fns.txt
+ ;;
+ samba_4*)
+ callanalyse `find $builddir/bin -name \*.so*` $builddir/bin/* | grep -v -f $srcdir/callcatcher-exceptions.grep > $builddir/coverage/unused-fns.txt
+ ;;
+ esac
+ rc=$?
+ echo "return code: $rc"
+ else
+ echo "CALLCATCHER_REPORT not set and callcatcher asked"
+ echo "Most probably an error please fix !"
+ return 1
+ fi
+}
+
############################
# configure the tree
esac
if [ "$LCOV_REPORT" = "yes" ]; then
+ PRE_GCOV_CFLAGS=$CFLAGS
+ PRE_GCOV_LDFLAGS=$LDFLAGS
GCOV_FLAGS="--coverage"
CFLAGS="$CFLAGS $GCOV_FLAGS"
LDFLAGS="$LDFLAGS $GCOV_FLAGS"
send_logs_skip "$log" "$err"
unlock_file "$lck"
echo "Ending build of $tree.$compiler in process $$ at `date`"
+ if [ "$LCOV_REPORT" = "yes" ]; then
+ CFLAGS=$PRE_GCOV_CFLAGS
+ LDFLAGS=$PRE_GCOV_LDFLAGS
+ export CFLAGS LDFLAGS
+ fi
return
fi
actions="$*"
if [ "$actions" = "" ]; then
- actions="configure config_log config_header build install test"
+ actions="configure config_log config_header build install test $EXTRA_ACTIONS"
fi
# start the build
chmod u=rwX,g=rX,o=rX -R $builddir/coverage
rsync -rct -q --password-file=.password -z --timeout=200 \
$builddir/coverage/ $host@build.samba.org::lcov_data/$host/$tree/
+ CFLAGS=$PRE_GCOV_CFLAGS
+ LDFLAGS=$PRE_GCOV_LDFLAGS
+ export CFLAGS LDFLAGS
fi
cd $test_root
class BuildFarm(object):
- LCOVHOST = "magni"
+ LCOVHOST = "coverage"
OLDAGE = 60*60*4,
DEADAGE = 60*60*24*4
finally:
lcov_html.close()
+ def unused_fns(self, tree):
+ """get status of build"""
+ from buildfarm.build import NoSuchBuildError
+ file = os.path.join(self.lcovdir, self.LCOVHOST, tree, "unused-fns.txt")
+ try:
+ unused_fns_file = open(file, 'r')
+ except (OSError, IOError):
+ # File does not exist
+ raise NoSuchBuildError(tree, self.LCOVHOST, "unused_fns")
+ try:
+ return "unused-fns.txt"
+ finally:
+ unused_fns_file.close()
+
def get_build(self, tree, host, compiler, rev=None, checksum=None):
if rev is not None:
return self.builds.get_build(tree, host, compiler, rev,
else:
yield "<td>"
yield "%d</td>" % panic_count[tree]
+
try:
lcov_status = self.buildfarm.lcov_status(tree)
except NoSuchBuildError:
self.buildfarm.LCOVHOST, tree, lcov_status)
else:
yield "<td></td>"
+
+ try:
+ unused_fns = self.buildfarm.unused_fns(tree)
+ except NoSuchBuildError:
+ yield "<td></td>"
+ else:
+ if unused_fns is not None:
+ yield "<td><a href=\"/lcov/data/%s/%s/%s\">Unused Functions</a></td>" % (
+ self.buildfarm.LCOVHOST, tree, unused_fns)
+ else:
+ yield "<td></td>"
yield "</tr>"
yield "</tbody></table>"
--- /dev/null
+# We need to disable ccache for the lcov love to work
+export CCACHE_DISABLE=yes
+export LCOV_REPORT=yes
+export CALLCATCHER_REPORT=yes
+export EXTRA_ACTIONS="lcovreport callcatcherreport"
+
+compiler="callcatcher-gcc"
+
+. common.fns
+
+export PIDL_TESTS_SKIP=yes
+test_tree samba_4_0_test . $compiler
+
+test_tree samba_3_current source3 $compiler
+test_tree samba_3_next source3 $compiler
+test_tree samba_3_master source3 $compiler
+
+++ /dev/null
-# We need to disable ccache for the lcov love to work
-export CCACHE_DISABLE=yes
-export LCOV_REPORT=yes
-export PYTHON_VERSION=2.5
-
-compiler=gcc
-
-. common.fns
-
-#lcov like shared libraries
-#export config="--disable-shared"
-export PIDL_TESTS_SKIP=yes
-test_tree samba_4_0_test . $compiler configure config_log config_header build install test lcovreport
-
-export config=""
-test_tree samba_3_current source3 $compiler
-test_tree samba_3_next source3 $compiler
-test_tree samba_3_master source3 $compiler
-
-#lcov and libtool disagree, enable OpenLDAP and disable OpenSSL
-export config="--with-ldap=/usr --without-openssl --disable-shared"
-test_tree lorikeet-heimdal . $compiler
-
icc-9
checker
xlc_r
+callcatcher-gcc