ci: update .travis.yml and jenkins scripts
Change-Id: I315196cb9d8e96f46e706a78c2d15d856a0a8d8b
diff --git a/.jenkins.d/00-deps.sh b/.jenkins.d/00-deps.sh
index d7bd1e6..84c8ae1 100755
--- a/.jenkins.d/00-deps.sh
+++ b/.jenkins.d/00-deps.sh
@@ -7,7 +7,7 @@
set -x
if has OSX $NODE_LABELS; then
- FORMULAE=(boost pkg-config openssl)
+ FORMULAE=(boost openssl pkg-config)
brew update
if [[ -n $TRAVIS ]]; then
# travis images come with a large number of brew packages
diff --git a/.jenkins.d/01-ndn-cxx.sh b/.jenkins.d/01-ndn-cxx.sh
index c9e2a63..e627627 100755
--- a/.jenkins.d/01-ndn-cxx.sh
+++ b/.jenkins.d/01-ndn-cxx.sh
@@ -37,14 +37,14 @@
sudo rm -f /usr/local/bin/ndnsec*
sudo rm -fr /usr/local/include/ndn-cxx
-sudo rm -f /usr/local/lib/libndn-cxx*
-sudo rm -f /usr/local/lib/pkgconfig/libndn-cxx.pc
+sudo rm -f /usr/local/lib{,64}/libndn-cxx*
+sudo rm -f /usr/local/lib{,64}/pkgconfig/libndn-cxx.pc
pushd ndn-cxx >/dev/null
./waf configure --color=yes --enable-shared --disable-static --without-osx-keychain
./waf build --color=yes -j${WAF_JOBS:-1}
-sudo env "PATH=$PATH" ./waf install --color=yes
+sudo_preserve_env PATH -- ./waf install --color=yes
popd >/dev/null
popd >/dev/null
diff --git a/.jenkins.d/02-chronosync.sh b/.jenkins.d/02-chronosync.sh
index c93f3b9..c27aa33 100755
--- a/.jenkins.d/02-chronosync.sh
+++ b/.jenkins.d/02-chronosync.sh
@@ -34,8 +34,8 @@
fi
sudo rm -fr /usr/local/include/ChronoSync
-sudo rm -f /usr/local/lib/libChronoSync*
-sudo rm -f /usr/local/lib/pkgconfig/ChronoSync*
+sudo rm -f /usr/local/lib{,64}/libChronoSync*
+sudo rm -f /usr/local/lib{,64}/pkgconfig/ChronoSync.pc
pushd ChronoSync >/dev/null
@@ -45,7 +45,7 @@
./waf configure --color=yes
./waf build --color=yes -j${WAF_JOBS:-1}
-sudo env "PATH=$PATH" ./waf install --color=yes
+sudo_preserve_env PATH -- ./waf install --color=yes
popd >/dev/null
popd >/dev/null
diff --git a/.jenkins.d/03-psync.sh b/.jenkins.d/03-psync.sh
index 534115d..1788a02 100755
--- a/.jenkins.d/03-psync.sh
+++ b/.jenkins.d/03-psync.sh
@@ -34,8 +34,8 @@
fi
sudo rm -fr /usr/local/include/PSync
-sudo rm -f /usr/local/lib/libPSync*
-sudo rm -f /usr/local/lib/pkgconfig/PSync*
+sudo rm -f /usr/local/lib{,64}/libPSync*
+sudo rm -f /usr/local/lib{,64}/pkgconfig/PSync.pc
pushd PSync >/dev/null
@@ -45,7 +45,7 @@
./waf configure --color=yes
./waf build --color=yes -j${WAF_JOBS:-1}
-sudo env "PATH=$PATH" ./waf install --color=yes
+sudo_preserve_env PATH -- ./waf install --color=yes
popd >/dev/null
popd >/dev/null
diff --git a/.jenkins.d/10-build.sh b/.jenkins.d/10-build.sh
index 2ecdfdc..6faaf55 100755
--- a/.jenkins.d/10-build.sh
+++ b/.jenkins.d/10-build.sh
@@ -17,7 +17,7 @@
fi
# Cleanup
-sudo env "PATH=$PATH" ./waf --color=yes distclean
+sudo_preserve_env PATH -- ./waf --color=yes distclean
if [[ $JOB_NAME != *"code-coverage" && $JOB_NAME != *"limited-build" ]]; then
# Configure/build in optimized mode with tests
@@ -25,14 +25,14 @@
./waf --color=yes build -j${WAF_JOBS:-1}
# Cleanup
- sudo env "PATH=$PATH" ./waf --color=yes distclean
+ sudo_preserve_env PATH -- ./waf --color=yes distclean
# Configure/build in optimized mode without tests
./waf --color=yes configure
./waf --color=yes build -j${WAF_JOBS:-1}
# Cleanup
- sudo env "PATH=$PATH" ./waf --color=yes distclean
+ sudo_preserve_env PATH -- ./waf --color=yes distclean
fi
# Configure/build in debug mode with tests
@@ -42,4 +42,4 @@
# (tests will be run against debug version)
# Install
-sudo env "PATH=$PATH" ./waf --color=yes install
+sudo_preserve_env PATH -- ./waf --color=yes install
diff --git a/.jenkins.d/20-tests.sh b/.jenkins.d/20-tests.sh
index b172b2a..2657aa9 100755
--- a/.jenkins.d/20-tests.sh
+++ b/.jenkins.d/20-tests.sh
@@ -1,12 +1,27 @@
#!/usr/bin/env bash
set -e
+
+JDIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
+source "$JDIR"/util.sh
+
set -x
# Prepare environment
rm -Rf ~/.ndn
+BOOST_VERSION=$(python -c "import sys; sys.path.append('build/c4che'); import _cache; print(_cache.BOOST_VERSION_NUMBER);")
+
ut_log_args() {
- echo --log_level=test_suite
+ if (( BOOST_VERSION >= 106200 )); then
+ echo --logger=HRF,test_suite,stdout:XML,all,build/xunit-${1:-report}.xml
+ else
+ if [[ -n $XUNIT ]]; then
+ echo --log_level=all $( (( BOOST_VERSION >= 106000 )) && echo -- ) \
+ --log_format2=XML --log_sink2=build/xunit-${1:-report}.xml
+ else
+ echo --log_level=test_suite
+ fi
+ fi
}
ASAN_OPTIONS="color=always"
@@ -19,5 +34,8 @@
ASAN_OPTIONS+=":strip_path_prefix=${PWD}/"
export ASAN_OPTIONS
+export BOOST_TEST_BUILD_INFO=1
+export BOOST_TEST_COLOR_OUTPUT=1
+
# Run unit tests
./build/unit-tests-nlsr $(ut_log_args)
diff --git a/.jenkins.d/util.sh b/.jenkins.d/util.sh
index a89bc27..8ddc4ba 100644
--- a/.jenkins.d/util.sh
+++ b/.jenkins.d/util.sh
@@ -16,3 +16,22 @@
set ${saved_xtrace}
return ${ret}
}
+
+sudo_preserve_env() {
+ local saved_xtrace
+ [[ $- == *x* ]] && saved_xtrace=-x || saved_xtrace=+x
+ set +x
+
+ local vars=()
+ while [[ $# -gt 0 ]]; do
+ local arg=$1
+ shift
+ case ${arg} in
+ --) break ;;
+ *) vars+=("${arg}=${!arg}") ;;
+ esac
+ done
+
+ set ${saved_xtrace}
+ sudo env "${vars[@]}" "$@"
+}