]> git.saurik.com Git - apt.git/blobdiff - test/libapt/gtest_runner.cc
use Google C++ Testing Framework for libapt tests
[apt.git] / test / libapt / gtest_runner.cc
diff --git a/test/libapt/gtest_runner.cc b/test/libapt/gtest_runner.cc
new file mode 100644 (file)
index 0000000..5823c55
--- /dev/null
@@ -0,0 +1,19 @@
+#include <gtest/gtest.h>
+#include <apt-pkg/error.h>
+int main(int argc, char **argv) {
+   ::testing::InitGoogleTest(&argc, argv);
+   int result = RUN_ALL_TESTS();
+   if (_error->empty() == false)
+   {
+      std::cerr << "The test generated the following global messages:" << std::endl;
+      _error->DumpErrors(std::cerr);
+      // messages on the stack can't be right, error out
+      // even if we have no idea where this message came from
+      if (result == 0)
+      {
+        std::cerr << "All tests successful, but messages were generated, so still a failure!" << std::endl;
+        return 29;
+      }
+   }
+   return result;
+}