From 2afcd62ad5328a217c5d781b2cdd90b7f5595091 Mon Sep 17 00:00:00 2001 From: Suyeon Hwang Date: Fri, 10 Jun 2022 19:20:26 +0900 Subject: [PATCH] Fix unittest for line coverage automation Change-Id: I81ba58b22167ee07f155fc0fc0c468a4095b1989 Signed-off-by: Suyeon Hwang --- packaging/voice-control.spec | 35 ++++++++++++++++++++++-- tests/CMakeLists.txt | 7 +++-- tests/src/main.cpp | 17 +++++++++++- tests/src/vc_denied_unittests.cpp | 45 ------------------------------- 4 files changed, 52 insertions(+), 52 deletions(-) delete mode 100644 tests/src/vc_denied_unittests.cpp diff --git a/packaging/voice-control.spec b/packaging/voice-control.spec index 519e741..e05edb8 100644 --- a/packaging/voice-control.spec +++ b/packaging/voice-control.spec @@ -114,8 +114,8 @@ cp %{SOURCE1001} %{SOURCE1002} . %build %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 @@ -146,6 +146,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.vc-unittests +} + +test_main() { + echo "test_main start" + launch_app org.tizen.vc-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} + %post /sbin/ldconfig @@ -223,3 +253,4 @@ mkdir -p %{_libdir}/voice/vc %defattr(-,root,root,-) %{TZ_SYS_RO_PACKAGES}/org.tizen.vc-unittests.xml %{TZ_SYS_RO_APP}/org.tizen.vc-unittests/bin/vc-unittests +%{_bindir}/tizen-unittests/%{name}/run-unittest.sh diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index ec00560..ac6ae41 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -21,16 +21,15 @@ SET(SOURCES "") INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../include) AUX_SOURCE_DIRECTORY(src SOURCES) -AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/../client VC_CLIENT_SOURCES) -AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/../common VC_COMMON_SOURCES) ADD_DEFINITIONS("-DFULLVER=\"${FULLVER}\"") ADD_EXECUTABLE(${UNITTEST_VC} - ${VC_COMMON_SOURCES} - ${VC_CLIENT_SOURCES} ${SOURCES} ) + +TARGET_LINK_LIBRARIES(${UNITTEST_VC} vc -ldl ${pkgs_LDFLAGS}) +TARGET_LINK_LIBRARIES(${UNITTEST_VC} vc_manager -ldl ${pkgs_LDFLAGS}) TARGET_LINK_LIBRARIES(${UNITTEST_VC} ${GTEST_LIBRARIES} ${pkgs_LDFLAGS} ${EXTRA_LDFLAGS}) SET_TARGET_PROPERTIES(${UNITTEST_VC} PROPERTIES COMPILE_FLAGS "-fPIE" diff --git a/tests/src/main.cpp b/tests/src/main.cpp index a37d671..450edea 100644 --- a/tests/src/main.cpp +++ b/tests/src/main.cpp @@ -1,7 +1,22 @@ #include #include + +#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; } diff --git a/tests/src/vc_denied_unittests.cpp b/tests/src/vc_denied_unittests.cpp deleted file mode 100644 index c133af6..0000000 --- a/tests/src/vc_denied_unittests.cpp +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2020 Samsung Electronics Co., Ltd. - * - * 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. - */ - -#include -#include - -#include "cynara_mock.h" -#include "system_info_mock.h" - -namespace { - -class VCDeniedTest : public testing::Test { - public: - virtual void SetUp() { - /* start of TC */ - cynara_check_set_result(CYNARA_API_ACCESS_DENIED); - } - virtual void TearDown() { - /* end of TC */ - cynara_check_set_result(CYNARA_API_ACCESS_ALLOWED); - } -}; - -TEST_F(VCDeniedTest, utc_stt_create_denied) -{ - int ret = VC_ERROR_NONE; - - ret = vc_initialize(); - EXPECT_EQ(ret, VC_ERROR_PERMISSION_DENIED); -} - -} // namespace -- 2.34.1