spec file :add gcov option for checking code coverage 78/264478/1 accepted/tizen/unified/20210923.133043 submit/tizen/20210923.034212
authorDuna Oh <duna.oh@samsung.com>
Fri, 17 Sep 2021 07:35:16 +0000 (16:35 +0900)
committerSung-Jin Park <sj76.park@samsung.com>
Thu, 23 Sep 2021 02:27:36 +0000 (11:27 +0900)
Change-Id: Idddb442dd4ea572add7a89923c34cf2ab30a2119

packaging/mmi-manager.spec
tests/iu/main.cpp
tests/keyboard-provider/main.cpp
tests/keyboard-provider/main.h
tests/mmi-manager-tests.cpp
tests/mmi-manager-tests.h
tests/ref-fusion/main.cpp
tests/ref-fusion/main.h

index a60ac5d..1f3c74c 100644 (file)
@@ -49,6 +49,9 @@ cp %{SOURCE1004} .
 #cp -af mmifw_stub.* ./src/mmimgr/interface/
 
 %build
+CFLAGS+=" -fprofile-arcs -ftest-coverage -DTIZEN_TEST_GCOV"
+CXXFLAGS+=" -fprofile-arcs -ftest-coverage -DTIZEN_TEST_GCOV"
+LDFLAGS+=" -lgcov"
 meson setup --prefix=/usr \
        --bindir %{_bindir} \
        --libdir %{_libdir} \
index a37d671..fdd74b1 100644 (file)
@@ -1,7 +1,39 @@
-#include <gtest/gtest.h>
 #include <gmock/gmock.h>
 
+#define PRINT printf
+
+#ifdef TIZEN_TEST_GCOV
+extern "C" void __gcov_flush(void);
+#endif
+
 int main(int argc, char** argv) {
-    testing::InitGoogleTest(&argc, argv);
-    return RUN_ALL_TESTS();
+       auto testResults = false;
+#ifdef TIZEN_TEST_GCOV
+       setenv("GCOV_PREFIX", "/tmp", 1);
+#endif
+       try
+       {
+               testing::InitGoogleMock(&argc, argv);
+               testing::FLAGS_gtest_death_test_style = "fast";
+       }
+       catch ( ... )
+       {
+               PRINT("Error occurred while trying to initialize GoogleTest.\n");
+               exit(EXIT_FAILURE);
+       }
+
+       try
+       {
+               testResults = (RUN_ALL_TESTS() == 0) ? true : false;
+       }
+       catch (const ::testing::internal::GoogleTestFailureException &e)
+       {
+               testResults = false;
+               PRINT("GoogleTestFailureException has been thrown: %s\n", e.what());
+       }
+
+#ifdef TIZEN_TEST_GCOV
+       __gcov_flush();
+#endif
+       return testResults;
 }
index 960d73c..3187c80 100644 (file)
@@ -27,6 +27,9 @@ int main(int argc, char **argv)
 {
        auto testResults = false;
 
+#ifdef TIZEN_TEST_GCOV
+        setenv("GCOV_PREFIX", "/tmp", 1);
+#endif
        try
        {
                ::testing::InitGoogleMock(&argc, argv);
@@ -48,6 +51,9 @@ int main(int argc, char **argv)
                PRINT("GoogleTestFailureException has been thrown: %s\n", e.what());
        }
 
+#ifdef TIZEN_TEST_GCOV
+        __gcov_flush();
+#endif
        return testResults;
 }
 
index 79bfac7..8342dbd 100644 (file)
 
 #define PRINT printf
 
+#ifdef TIZEN_TEST_GCOV
+extern "C" void __gcov_flush(void);
+#endif
+
 using ::testing::TestWithParam;
 using ::testing::Bool;
 using ::testing::Values;
index 8d83cd7..eed785f 100644 (file)
@@ -27,6 +27,9 @@ int main(int argc, char **argv)
 {
        auto testResults = false;
 
+#ifdef TIZEN_TEST_GCOV
+        setenv("GCOV_PREFIX", "/tmp", 1);
+#endif
        try
        {
                ::testing::InitGoogleMock(&argc, argv);
@@ -48,6 +51,9 @@ int main(int argc, char **argv)
                PRINT("GoogleTestFailureException has been thrown: %s\n", e.what());
        }
 
+#ifdef TIZEN_TEST_GCOV
+        __gcov_flush();
+#endif
        return testResults;
 }
 
index 5f3bf67..4034144 100644 (file)
@@ -30,6 +30,9 @@
 
 #define PRINT printf
 
+#ifdef TIZEN_TEST_GCOV
+extern "C" void __gcov_flush(void);
+#endif
 extern void wait_for_dispatch();
 
 using ::testing::TestWithParam;
index 960d73c..3187c80 100644 (file)
@@ -27,6 +27,9 @@ int main(int argc, char **argv)
 {
        auto testResults = false;
 
+#ifdef TIZEN_TEST_GCOV
+        setenv("GCOV_PREFIX", "/tmp", 1);
+#endif
        try
        {
                ::testing::InitGoogleMock(&argc, argv);
@@ -48,6 +51,9 @@ int main(int argc, char **argv)
                PRINT("GoogleTestFailureException has been thrown: %s\n", e.what());
        }
 
+#ifdef TIZEN_TEST_GCOV
+        __gcov_flush();
+#endif
        return testResults;
 }
 
index e75fbbe..9a9fcc6 100644 (file)
 
 #define PRINT printf
 
+#ifdef TIZEN_TEST_GCOV
+extern "C" void __gcov_flush(void);
+#endif
+
 using ::testing::TestWithParam;
 using ::testing::Bool;
 using ::testing::Values;