From: David Kalnischkies <david@kalnischkies.de>
Date: Tue, 17 Mar 2015 15:51:29 +0000 (+0100)
Subject: demote missing gtest to a buildtime warning
X-Git-Tag: 1.1.exp9~140^2~65
X-Git-Url: https://git.saurik.com/apt.git/commitdiff_plain/42fab5fbc85e243b958beff95912c46fb81abcc0

demote missing gtest to a buildtime warning

We just need it for unit tests and our debian/rules file actually skips
calling them if nocheck is given… but this fails anyhow as we declared a
hard-dependency on it. Demoting the error to a warning in configuration
and adding a test in the 'make test' path with a friendly message allows
nocheck to be useful again.

(Running unit tests is fully encouraged of course, but bootstrappers and
 co do not need to be burdened with this stuff)
---

diff --git a/configure.ac b/configure.ac
index 06879f839..3fb393335 100644
--- a/configure.ac
+++ b/configure.ac
@@ -91,7 +91,7 @@ AC_CHECK_LIB(curl, curl_easy_init,
 
 AC_LANG_PUSH([C++])
 AC_CHECK_HEADER(gtest/gtest.h,,
-     AC_MSG_ERROR([failed: I need gtest to build tests]),
+     AC_MSG_WARN([failed: I need gtest (packaged as libgtest-dev) for unit testing]),
 )
 AC_LANG_POP([C++])
 
diff --git a/test/libapt/makefile b/test/libapt/makefile
index 7f23ace46..0f8df291f 100644
--- a/test/libapt/makefile
+++ b/test/libapt/makefile
@@ -8,6 +8,7 @@ APT_DOMAIN=none
 include ../../buildlib/defaults.mak
 
 .PHONY: test
+ifeq (file-okay,$(shell $(CC) -M gtest_runner.cc >/dev/null 2>&1 && echo 'file-okay'))
 test: $(BIN)/gtest$(BASENAME)
 	MALLOC_PERTURB_=21 MALLOC_CHECK_=2 LD_LIBRARY_PATH=$(LIB) $(BIN)/gtest$(BASENAME)
 
@@ -71,3 +72,11 @@ $(LIB)/gtest.a: $(OBJ)/gtest-all.o
 	echo Building static library $@
 	-rm -f $@
 	$(AR) $(ARFLAGS) $@ $^
+
+else
+test:
+	@echo "APT uses Googles C++ testing framework for its unit tests"
+	@echo "On Debian systems this is available in the 'libgtest-dev' package."
+	@echo "Please install it before attempting to run the unit tests."
+	exit 100
+endif