Add the ability to run each test in isolation.
This adds a new gtest main that will run each test in its own forked
process. This can avoid problems where some tests do not clean up after
themselves, or a test modifies global state that can change the behavior
of another test.
This is only supported on device and linux.
Test: Passes extensive unit tests.
Change-Id: Iab29bf60b9f5cd9c1af67e85f502ada7efe24b18
diff --git a/Android.bp b/Android.bp
new file mode 100644
index 0000000..5153fdd
--- /dev/null
+++ b/Android.bp
@@ -0,0 +1,57 @@
+// Copyright (C) 2018 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+cc_library {
+ name: "libgtest_isolated",
+ host_supported: true,
+ cflags: ["-Wall", "-Werror"],
+ export_include_dirs: ["include"],
+
+ srcs: [
+ "Color.cpp",
+ "Isolate.cpp",
+ "IsolateMain.cpp",
+ "NanoTime.cpp",
+ "Options.cpp",
+ "Test.cpp",
+ ],
+
+ static_libs: ["libbase", "liblog"],
+ whole_static_libs: ["libgtest"],
+}
+
+cc_library {
+ name: "libgtest_isolated_main",
+ host_supported: true,
+ cflags: ["-Wall", "-Werror"],
+ srcs: [
+ "Main.cpp",
+ ],
+
+ static_libs: ["libbase", "liblog"],
+ whole_static_libs: ["libgtest_isolated"],
+}
+
+cc_test {
+ name: "gtest_isolated_tests",
+ host_supported: true,
+ srcs: [
+ "tests/OptionsTest.cpp",
+ "tests/SystemTests.cpp",
+ ],
+ cflags: ["-Wall", "-Werror"],
+
+ shared_libs: ["libbase"],
+ whole_static_libs: ["libgtest_isolated_main"],
+}