[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: