to enable XUnit plugin of jenkins to consume the ctest output and
publish it in the dashboard, we need to
* let ctest generate XML output instead of plain text output
* do not fail the test if any test case fails. this allows the publisher
to do its job by checking the XML output.
* prevent ctest from compressing the output. see
https://issues.jenkins.io/browse/JENKINS-21737
Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit
48ba39987d3958531589d7969750ea749e6a6d30)
set -e
+function in_jenkins() {
+ test -n "$JENKINS_HOME"
+}
+
function run() {
# to prevent OSD EMFILE death on tests, make sure ulimit >= 1024
$DRY_RUN ulimit -n $(ulimit -Hn)
$DRY_RUN sudo /sbin/sysctl -q -w fs.aio-max-nr=$((65536 * 16))
CHECK_MAKEOPTS=${CHECK_MAKEOPTS:-$DEFAULT_MAKEOPTS}
- if ! $DRY_RUN ctest $CHECK_MAKEOPTS --output-on-failure; then
- rm -fr ${TMPDIR:-/tmp}/ceph-asok.*
- return 1
+ if in_jenkins; then
+ if ! ctest $CHECK_MAKEOPTS --no-compress-output --output-on-failure -T Test; then
+ # do not return failure, as the jenkins publisher will take care of this
+ rm -fr ${TMPDIR:-/tmp}/ceph-asok.*
+ fi
+ else
+ if ! $DRY_RUN ctest $CHECK_MAKEOPTS --output-on-failure; then
+ rm -fr ${TMPDIR:-/tmp}/ceph-asok.*
+ return 1
+ fi
fi
}