From 642ccab493fe425183bfcba0c3849f0f98897c9b Mon Sep 17 00:00:00 2001 From: Mike Dubman Date: Tue, 4 Nov 2014 22:40:02 +0200 Subject: [PATCH 1/4] build: add missing files for "make distcheck" --- Makefile.am | 9 ++++++--- test/gtest/Makefile.am | 3 +-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Makefile.am b/Makefile.am index c4ab5aea469..047b00ae8fc 100644 --- a/Makefile.am +++ b/Makefile.am @@ -17,7 +17,10 @@ SUBDIRS += test/gtest endif EXTRA_DIST = -EXTRA_DIST += m4/gtest.m4 -EXTRA_DIST += configure-devel -EXTRA_DIST += configure-release +EXTRA_DIST += config/m4/gtest.m4 +EXTRA_DIST += config/m4/ucs.m4 +EXTRA_DIST += config/m4/ib.m4 +EXTRA_DIST += config/m4/sysdep.m4 +EXTRA_DIST += contrib/configure-devel +EXTRA_DIST += contrib/configure-release diff --git a/test/gtest/Makefile.am b/test/gtest/Makefile.am index 007a1452653..992fee0add1 100644 --- a/test/gtest/Makefile.am +++ b/test/gtest/Makefile.am @@ -74,8 +74,7 @@ list: gtest test_valgrind: uct gtest . /usr/share/Modules/init/sh && \ - module load dev/mofed_valgrind && \ - valgrind $(VALGRIND_ARGS) $(abs_builddir)/gtest --gtest_filter=$(GTEST_FILTER) + env LD_LIBRARY_PATH=/usr/lib64/mlnx_ofed/valgrind:${LD_LIBRARY_PATH} valgrind $(VALGRIND_ARGS) $(abs_builddir)/gtest --gtest_filter=$(GTEST_FILTER) test_jenkins_valgrind: uct gtest valgrind $(VALGRIND_ARGS) $(VALGRIND_EXTRA_ARGS) $(abs_builddir)/gtest --gtest_filter=$(GTEST_FILTER) From 42d17c1e6dc7a5a94b8161f999f0e70d928ee223 Mon Sep 17 00:00:00 2001 From: Mike Dubman Date: Tue, 4 Nov 2014 23:03:38 +0200 Subject: [PATCH 2/4] build: fix missing backslash, now make distcheck works --- src/uct/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/uct/Makefile.am b/src/uct/Makefile.am index 2b6d8835997..f0d0aebc3cf 100644 --- a/src/uct/Makefile.am +++ b/src/uct/Makefile.am @@ -29,7 +29,7 @@ if HAVE_IB noinst_HEADERS += \ ib/base/ib_context.h \ ib/base/ib_device.h \ - ib/base/ib_iface.h + ib/base/ib_iface.h \ ib/base/ib_verbs.h libuct_la_SOURCES += \ From ef638248980bb33eca7069c148c890c6dddc391e Mon Sep 17 00:00:00 2001 From: Mike Dubman Date: Wed, 5 Nov 2014 11:50:12 +0200 Subject: [PATCH 3/4] BUILD: apply comments from PR add jenkins script which can be executed as ./contrib/test_jenkins.sh detect/add mlnx valgrind libs --- Makefile.am | 1 + config/m4/ib.m4 | 6 ++++ configure.ac | 7 ++++ contrib/test_jenkins.sh | 73 +++++++++++++++++++++++++++++++++++++++++ test/gtest/Makefile.am | 10 ++---- 5 files changed, 90 insertions(+), 7 deletions(-) create mode 100755 contrib/test_jenkins.sh diff --git a/Makefile.am b/Makefile.am index 047b00ae8fc..1bf96cbd6de 100644 --- a/Makefile.am +++ b/Makefile.am @@ -23,4 +23,5 @@ EXTRA_DIST += config/m4/ib.m4 EXTRA_DIST += config/m4/sysdep.m4 EXTRA_DIST += contrib/configure-devel EXTRA_DIST += contrib/configure-release +EXTRA_DIST += contrib/configure-prof diff --git a/config/m4/ib.m4 b/config/m4/ib.m4 index 8068399608c..d65ab4c351f 100644 --- a/config/m4/ib.m4 +++ b/config/m4/ib.m4 @@ -80,3 +80,9 @@ AC_CHECK_HEADER([infiniband/verbs_exp.h], # AM_CONDITIONAL([HAVE_IB], [test "x$with_ib" != xno]) AM_CONDITIONAL([HAVE_TL_RC], [test "x$with_rc" != xno]) + +mlnx_valg_libdir=/usr/lib64/mlnx_ofed/valgrind +AS_IF([test -d "$mlnx_valg_libdir"], + [AC_MSG_NOTICE([Added $mlnx_valg_libdir to valgrind LD_LIBRARY_PATH]) + valgrind_libpath="$mlnx_valg_libdir:$valgrind_libpath"]) + diff --git a/configure.ac b/configure.ac index db09d45223b..3956c1e4472 100644 --- a/configure.ac +++ b/configure.ac @@ -19,6 +19,7 @@ define([libucx_so_version], 2:1:0) AC_INIT([ucx], [ucx_ver_major.ucx_ver_minor]) config_flags="$*" +valgrind_libpath="" AC_CONFIG_HEADERS([config.h]) AM_INIT_AUTOMAKE([1.10 foreign tar-ustar silent-rules subdir-objects]) @@ -157,6 +158,12 @@ AC_ARG_ENABLE([debug-data], [AC_DEFINE([ENABLE_DEBUG_DATA], [0])]) +# +# Path for valgrind-enabled libraries +# +AC_SUBST([VALGRIND_LIBPATH], [${valgrind_libpath}]) + + # # Print which transports are built # diff --git a/contrib/test_jenkins.sh b/contrib/test_jenkins.sh new file mode 100755 index 00000000000..93b9b2a6e2e --- /dev/null +++ b/contrib/test_jenkins.sh @@ -0,0 +1,73 @@ +#!/bin/bash -eExl + +rc=0 + +if [ -z "$BUILD_NUMBER" ]; then + echo Running interactive + WORKSPACE=$PWD + BUILD_NUMBER=1 + JOB_URL=$WORKSPACE +else + echo Running under jenkins +fi + +rpm_topdir=$WORKSPACE/rpm-dist + +make_opt="-j$(($(nproc) - 1))" + +echo Starting on host: $(hostname) + +echo "Autogen" +./autogen.sh + +echo "Build release" +./contrib/configure-release && make $make_opt && make $make_opt distcheck + +echo "Build gtest " +make clean && ./contrib/configure-devel && make $make_opt + +echo "Starting gtest" + +make -C test/gtest test + +module load tools/valgrind-3.9.0 +make -C test/gtest VALGRIND_EXTRA_ARGS="--xml=yes --xml-file=valgrind.xml" test_valgrind +module unload tools/valgrind-3.9.0 + + +echo "Build with coverity" +module load tools/cov +cov_build_id="cov_build_${BUILD_NUMBER}" +cov_build="$WORKSPACE/$cov_build_id" +rm -rf $cov_build +make clean +cov-build --dir $cov_build make $make_opt all +nerrors=$(cov-analyze --dir $cov_build |grep "Defect occurrences found" | awk '{print $5}') +cov-format-errors --dir $cov_build +rc=$(($rc+$nerrors)) + +cov_url="$JOB_URL/ws/$cov_build_id/c/output/errors/index.html" +rm -f jenkins_sidelinks.txt +echo 1..1 > coverity.tap +if [ $nerrors -gt 0 ]; then + echo "not ok 1 Coverity Detected $nerrors failures # $cov_url" >> coverity.tap +else + echo ok 1 Coverity found no issues >> coverity.tap +fi +echo Coverity report: $cov_url +printf "%s\t%s\n" Coverity $cov_url >> jenkins_sidelinks.txt +module unload tools/cov + +#(make distcheck && rm -rf $rpm_topdir && mkdir -p $rpm_topdir && cd $rpm_topdir && mkdir -p BUILD RPMS SOURCES SPECS SRPMS) +# +#if [ -x /usr/bin/dpkg-buildpackage ]; then +# echo "Build on debian" +# dpkg-buildpackage -us -uc +#else +# echo "Build rpms" +# rpmbuild -bs --define '_sourcedir .' --define "_topdir $rpm_topdir" --nodeps mxm.spec +# fn=$(find $rpm_topdir -name "*.src.rpm" -print0) +# rpmbuild --define "_topdir $rpm_topdir" --rebuild $fn +#fi + +exit $rc diff --git a/test/gtest/Makefile.am b/test/gtest/Makefile.am index 992fee0add1..08a653a38bc 100644 --- a/test/gtest/Makefile.am +++ b/test/gtest/Makefile.am @@ -11,7 +11,8 @@ export UCS_HANDLE_ERRORS GTEST_FILTER ?= * export GTEST_FILTER -VALGRIND_EXTRA_ARGS = --xml=yes --xml-file=valgrind.xml +#VALGRIND_EXTRA_ARGS = --xml=yes --xml-file=valgrind.xml +VALGRIND_EXTRA_ARGS = VALGRIND_ARGS = \ --tool=memcheck \ @@ -73,9 +74,4 @@ list: gtest $(abs_builddir)/gtest --gtest_list_tests --gtest_filter=$(GTEST_FILTER) test_valgrind: uct gtest - . /usr/share/Modules/init/sh && \ - env LD_LIBRARY_PATH=/usr/lib64/mlnx_ofed/valgrind:${LD_LIBRARY_PATH} valgrind $(VALGRIND_ARGS) $(abs_builddir)/gtest --gtest_filter=$(GTEST_FILTER) - -test_jenkins_valgrind: uct gtest - valgrind $(VALGRIND_ARGS) $(VALGRIND_EXTRA_ARGS) $(abs_builddir)/gtest --gtest_filter=$(GTEST_FILTER) - + env LD_LIBRARY_PATH="$(VALGRIND_LIBPATH):${LD_LIBRARY_PATH}" valgrind $(VALGRIND_ARGS) $(VALGRIND_EXTRA_ARGS) $(abs_builddir)/gtest --gtest_filter=$(GTEST_FILTER) From a44b6a5b0ccf4a7e34e45fc40ff9214485851f0f Mon Sep 17 00:00:00 2001 From: Mike Dubman Date: Wed, 5 Nov 2014 12:58:01 +0200 Subject: [PATCH 4/4] BUILD: apply Yossi`s comment --- test/gtest/Makefile.am | 1 - 1 file changed, 1 deletion(-) diff --git a/test/gtest/Makefile.am b/test/gtest/Makefile.am index 08a653a38bc..4d930f3de37 100644 --- a/test/gtest/Makefile.am +++ b/test/gtest/Makefile.am @@ -11,7 +11,6 @@ export UCS_HANDLE_ERRORS GTEST_FILTER ?= * export GTEST_FILTER -#VALGRIND_EXTRA_ARGS = --xml=yes --xml-file=valgrind.xml VALGRIND_EXTRA_ARGS = VALGRIND_ARGS = \