Index: sandbox/linux/tests/main.cc |
diff --git a/sandbox/linux/tests/main.cc b/sandbox/linux/tests/main.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..81a0b320b19c85486a457855d3dbcded3212bfd5 |
--- /dev/null |
+++ b/sandbox/linux/tests/main.cc |
@@ -0,0 +1,55 @@ |
+// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "base/at_exit.h" |
+#include "base/logging.h" |
+#include "base/test/test_suite.h" |
+#include "sandbox/linux/tests/test_utils.h" |
+#include "sandbox/linux/tests/unit_tests.h" |
+#include "testing/gtest/include/gtest/gtest.h" |
+ |
+namespace sandbox { |
+namespace { |
+ |
+// Check for leaks in our tests. |
+void RunPostTestsChecks() { |
+ if (TestUtils::CurrentProcessHasChildren()) { |
+ LOG(ERROR) << "One of the tests created a child that was not waited for. " |
+ << "Please, clean-up after your tests!"; |
+ } |
+} |
+ |
+} // namespace |
+} // namespace sandbox |
+ |
+#if defined(OS_ANDROID) |
+void UnitTestAssertHandler(const std::string& str) { |
+ _exit(1); |
+} |
+#endif |
+ |
+int main(int argc, char* argv[]) { |
+#if defined(OS_ANDROID) |
+ // The use of Callbacks requires an AtExitManager. |
+ base::AtExitManager exit_manager; |
+ testing::InitGoogleTest(&argc, argv); |
+ // Death tests rely on LOG(FATAL) triggering an exit (the default behavior is |
+ // SIGABRT). The normal test launcher does this at initialization, but since |
+ // we still do not use this on Android, we must install the handler ourselves. |
+ logging::SetLogAssertHandler(UnitTestAssertHandler); |
+#endif |
+ // Always go through re-execution for death tests. |
+ // This makes gtest only marginally slower for us and has the |
+ // additional side effect of getting rid of gtest warnings about fork() |
+ // safety. |
+ ::testing::FLAGS_gtest_death_test_style = "threadsafe"; |
+#if defined(OS_ANDROID) |
+ int tests_result = RUN_ALL_TESTS(); |
+#else |
+ int tests_result = base::RunUnitTestsUsingBaseTestSuite(argc, argv); |
+#endif |
+ |
+ sandbox::RunPostTestsChecks(); |
+ return tests_result; |
+} |