OSDN Git Service

Make bionic gtest main be compatible with gtest output format for cts test.
authorYabin Cui <yabinc@google.com>
Fri, 27 Feb 2015 03:03:54 +0000 (19:03 -0800)
committerYabin Cui <yabinc@google.com>
Fri, 27 Feb 2015 03:03:54 +0000 (19:03 -0800)
Bug: 17589740
Change-Id: Ifab521da379a33bf0a7bf11c21386f936f0d494c

tests/Android.mk
tests/gtest_main.cpp

index bd4695f..b3eea06 100644 (file)
@@ -211,7 +211,7 @@ build_type := host
 include $(LOCAL_PATH)/Android.build.mk
 
 # -----------------------------------------------------------------------------
-# Library of bionic customized gtest main function.
+# Library of bionic customized gtest main function, with simplified output format.
 # -----------------------------------------------------------------------------
 libBionicGtestMain_src_files := gtest_main.cpp
 
@@ -228,6 +228,24 @@ build_type := host
 include $(LOCAL_PATH)/Android.build.mk
 
 # -----------------------------------------------------------------------------
+# Library of bionic customized gtest main function, with normal gtest output format,
+# which is needed by bionic cts test.
+# -----------------------------------------------------------------------------
+libBionicCtsGtestMain_src_files := gtest_main.cpp
+
+libBionicCtsGtestMain_cflags := $(test_cflags)
+
+libBionicCtsGtestMain_cppflags := $(test_cppflags) -DUSING_GTEST_OUTPUT_FORMAT
+
+module := libBionicCtsGtestMain
+module_tag := optional
+build_type := target
+build_target := STATIC_TEST_LIBRARY
+include $(LOCAL_PATH)/Android.build.mk
+build_type := host
+include $(LOCAL_PATH)/Android.build.mk
+
+# -----------------------------------------------------------------------------
 # Tests for the device using bionic's .so. Run with:
 #   adb shell /data/nativetest/bionic-unit-tests/bionic-unit-tests32
 #   adb shell /data/nativetest/bionic-unit-tests/bionic-unit-tests64
index 664e4a1..b1953fc 100644 (file)
@@ -295,6 +295,32 @@ static void OnTestIterationStartPrint(const std::vector<TestCase>& testcase_list
   fflush(stdout);
 }
 
+// bionic cts test needs gtest output format.
+#if defined(USING_GTEST_OUTPUT_FORMAT)
+
+static void OnTestEndPrint(const TestCase& testcase, size_t test_id) {
+  ColoredPrintf(COLOR_GREEN, "[ RUN      ] ");
+  printf("%s\n", testcase.GetTestName(test_id).c_str());
+
+  const std::string& test_output = testcase.GetTest(test_id).GetTestOutput();
+  printf("%s", test_output.c_str());
+
+  TestResult result = testcase.GetTestResult(test_id);
+  if (result == TEST_SUCCESS) {
+    ColoredPrintf(COLOR_GREEN, "[       OK ] ");
+  } else {
+    ColoredPrintf(COLOR_RED, "[  FAILED  ] ");
+  }
+  printf("%s", testcase.GetTestName(test_id).c_str());
+  if (testing::GTEST_FLAG(print_time)) {
+    printf(" (%" PRId64 " ms)", testcase.GetTestTime(test_id) / 1000000);
+  }
+  printf("\n");
+  fflush(stdout);
+}
+
+#else  // !defined(USING_GTEST_OUTPUT_FORMAT)
+
 static void OnTestEndPrint(const TestCase& testcase, size_t test_id) {
   TestResult result = testcase.GetTestResult(test_id);
   if (result == TEST_SUCCESS) {
@@ -307,16 +333,17 @@ static void OnTestEndPrint(const TestCase& testcase, size_t test_id) {
 
   printf("%s", testcase.GetTestName(test_id).c_str());
   if (testing::GTEST_FLAG(print_time)) {
-    printf(" (%" PRId64 " ms)\n", testcase.GetTestTime(test_id) / 1000000);
-  } else {
-    printf("\n");
+    printf(" (%" PRId64 " ms)", testcase.GetTestTime(test_id) / 1000000);
   }
+  printf("\n");
 
   const std::string& test_output = testcase.GetTest(test_id).GetTestOutput();
   printf("%s", test_output.c_str());
   fflush(stdout);
 }
 
+#endif  // !defined(USING_GTEST_OUTPUT_FORMAT)
+
 static void OnTestIterationEndPrint(const std::vector<TestCase>& testcase_list, size_t /*iteration*/,
                                     int64_t elapsed_time_ns) {