Fix unittest for line coverage automation 49/276149/1
authorSuyeon Hwang <stom.hwang@samsung.com>
Fri, 10 Jun 2022 06:27:38 +0000 (15:27 +0900)
committerSuyeon Hwang <stom.hwang@samsung.com>
Fri, 10 Jun 2022 06:27:38 +0000 (15:27 +0900)
Change-Id: Icf4cc166b0516936c385b9903df9699d9e54060d
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
packaging/tts.spec
tests/CMakeLists.txt
tests/src/main.cpp

index a934746..8fe6234 100644 (file)
@@ -106,8 +106,8 @@ export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
 export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
 
 %if 0%{?gcov:1}
-export CFLAGS="$CFLAGS -fprofile-arcs -ftest-coverage"
-export CXXFLAGS="$CXXFLAGS -fprofile-arcs -ftest-coverage"
+export CFLAGS="$CFLAGS -fprofile-arcs -ftest-coverage -DTIZEN_TEST_GCOV"
+export CXXFLAGS="$CXXFLAGS -fprofile-arcs -ftest-coverage -DTIZEN_TEST_GCOV"
 export FFLAGS="$FFLAGS -fprofile-arcs -ftest-coverage"
 export LDFLAGS="$LDFLAGS -lgcov"
 %endif
@@ -137,6 +137,36 @@ mkdir -p "$gcno_obj_dir"
 find . -name '*.gcno' -exec cp --parents '{}' "$gcno_obj_dir" ';'
 %endif
 
+cat << EOF > run-unittest.sh
+#!/bin/sh
+setup() {
+    echo "setup start"
+    touch /opt/share/askuser_disable
+    mount -o remount,rw /
+    tpk-backend --preload -y org.tizen.tts-unittests
+}
+
+test_main() {
+    echo "test_main start"
+    launch_app org.tizen.tts-unittests
+}
+
+teardown() {
+    echo "teardown start"
+}
+
+main() {
+    setup
+    test_main
+    teardown
+}
+
+main "\$*"
+EOF
+
+mkdir -p %{buildroot}%{_bindir}/tizen-unittests/%{name}
+install -m 0755 run-unittest.sh %{buildroot}%{_bindir}/tizen-unittests/%{name}
+
 %check
 %if "%{_ctest_enable}" == "true"
 ctest -V --output-on-failure %{?_smp_mflags}
@@ -200,3 +230,4 @@ mkdir -p %{TZ_SYS_RO_SHARE}/voice/test
 %{TZ_SYS_RO_PACKAGES}/org.tizen.tts-unittests.xml
 %{TZ_SYS_RO_APP}/org.tizen.tts-unittests/res/test_pcm.dat
 %{TZ_SYS_RO_APP}/org.tizen.tts-unittests/bin/tts-unittests
+%{_bindir}/tizen-unittests/%{name}/run-unittest.sh
index b1ed340..a93748e 100644 (file)
@@ -22,16 +22,14 @@ SET(SOURCES "")
 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../include)
 
 AUX_SOURCE_DIRECTORY(src SOURCES)
-AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/../client TTS_CLIENT_SOURCES)
-AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/../common TTS_COMMON_SOURCES)
 
 ADD_DEFINITIONS("-DFULLVER=\"${FULLVER}\"")
 
 ADD_EXECUTABLE(${UNITTEST_TTS}
-       ${TTS_COMMON_SOURCES}
-       ${TTS_CLIENT_SOURCES}
        ${SOURCES}
        )
+
+TARGET_LINK_LIBRARIES(${UNITTEST_TTS} tts -ldl ${pkgs_LDFLAGS})
 TARGET_LINK_LIBRARIES(${UNITTEST_TTS} ${GTEST_LIBRARIES} ${pkgs_LDFLAGS} ${EXTRA_LDFLAGS})
 SET_TARGET_PROPERTIES(${UNITTEST_TTS} PROPERTIES
        COMPILE_FLAGS "-fPIE"
index a37d671..450edea 100644 (file)
@@ -1,7 +1,22 @@
 #include <gtest/gtest.h>
 #include <gmock/gmock.h>
 
+
+#ifdef TIZEN_TEST_GCOV
+extern "C" void __gcov_flush(void);
+#endif
+
 int main(int argc, char** argv) {
+#ifdef TIZEN_TEST_GCOV
+    setenv("GCOV_PREFIX", "/tmp", 1);
+#endif
+
     testing::InitGoogleTest(&argc, argv);
-    return RUN_ALL_TESTS();
+    auto testResults = RUN_ALL_TESTS();
+
+#ifdef TIZEN_TEST_GCOV
+    __gcov_flush();
+#endif
+
+    return testResults;
 }