Bug#703250: apt: failing tests in test/libapt does not cause FTBFS
Package: apt
Version: 0.9.7.8
Severity: normal
Tags: patch
Currently, the APT build process will continue even if one of the
tests in test/libapt fails. On IRC (#d-apt) we concluded this was not
the desired behaviour. I am attaching a (prototype) patch for fixing
this issue.
~Niels
=== modified file 'test/libapt/assert.h'
--- test/libapt/assert.h 2012-05-20 16:58:37 +0000
+++ test/libapt/assert.h 2013-03-17 12:55:11 +0000
@@ -1,4 +1,5 @@
#include <iostream>
+#include <cstdlib>
#define equals(x,y) assertEquals(y, x, __LINE__)
#define equalsNot(x,y) assertEqualsNot(y, x, __LINE__)
@@ -6,6 +7,7 @@
template < typename X, typename Y >
void OutputAssertEqual(X expect, char const* compare, Y get, unsigned long const &line) {
std::cerr << "Test FAILED: »" << expect << "« " << compare << " »" << get << "« at line " << line << std::endl;
+ std::exit(EXIT_FAILURE);
}
template < typename X, typename Y >
=== modified file 'test/libapt/run-tests'
--- test/libapt/run-tests 2012-05-20 16:58:37 +0000
+++ test/libapt/run-tests 2013-03-17 13:12:46 +0000
@@ -7,6 +7,7 @@
echo "Running all testcases …"
LDPATH="$DIR/../../build/bin"
EXT="_libapt_test"
+EXIT_CODE=0
# detect if output is on a terminal (colorful) or better not
if expr match "$(readlink -f /proc/$$/fd/1)" '/dev/pts/[0-9]\+' > /dev/null; then
@@ -106,9 +107,15 @@
fi
echo -n "Testing with ${NAME} "
- LD_LIBRARY_PATH=${LDPATH} ${testapp} ${tmppath} && echo "$TESTOKAY" || echo "$TESTFAIL"
+ if LD_LIBRARY_PATH=${LDPATH} ${testapp} ${tmppath} ; then
+ echo "$TESTOKAY"
+ else
+ echo "$TESTFAIL"
+ EXIT_CODE=1
+ fi
if [ -n "$tmppath" -a -d "$tmppath" ]; then
rm -rf "$tmppath"
fi
done
+exit $EXIT_CODE
Reply to: