From 9298fd2cd32307848136929c95fb60fc63dc18a5 Mon Sep 17 00:00:00 2001 From: Jihoon Jung Date: Tue, 29 Aug 2023 14:42:47 +0900 Subject: [PATCH] Apply Auto Coverage Change-Id: I6d7234ce2bf311e0438d9a35a3633b0bedea5ed3 Signed-off-by: Jihoon Jung --- packaging/capi-network-smartcard.spec | 74 +++++++++++++++++++++++---- unittest/CMakeLists.txt | 7 ++- unittest/run_coverage.sh | 35 ------------- 3 files changed, 70 insertions(+), 46 deletions(-) delete mode 100755 unittest/run_coverage.sh diff --git a/packaging/capi-network-smartcard.spec b/packaging/capi-network-smartcard.spec index 08af448..8ba4e69 100644 --- a/packaging/capi-network-smartcard.spec +++ b/packaging/capi-network-smartcard.spec @@ -30,12 +30,28 @@ Requires: %{name} = %{version}-%{release} %description devel +%if 0%{?gcov:1} +%package gcov +Summary: %{name} gcov data + +%description gcov +gcov objects + +%package unittests +Summary: %{name} unittests binary + +%description unittests +unittests binary +%endif + %prep %setup -q %build %if 0%{?gcov:1} -export LDFLAGS+=" -lgcov" +export CFLAGS+=" -fprofile-arcs -ftest-coverage" +export CXXFLAGS+=" -fprofile-arcs -ftest-coverage" +export FFLAGS+=" -fprofile-arcs -ftest-coverage" %endif MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'` @@ -49,21 +65,51 @@ cmake . -DCMAKE_INSTALL_PREFIX=/usr -DFULLVER=%{version} \ make %{?jobs:-j%jobs} -%if 0%{?gcov:1} -mkdir -p gcov-obj -find . -name '*.gcno' -exec cp '{}' gcov-obj ';' -%endif - %install rm -rf %{buildroot} %make_install +%if 0%{?gcov:1} +builddir=$(basename $PWD) +gcno_obj_dir=%{buildroot}%{_datadir}/gcov/obj/%{name}/"$builddir" +mkdir -p "$gcno_obj_dir" +find . -name '*.gcno' -exec cp '{}' "$gcno_obj_dir" ';' + +cat << EOF > run-unittest.sh +#!/bin/bash +setup() { + echo "setup start" +} + +test_main() { + echo "test_main start" + LD_PRELOAD=/usr/lib/libsmartcard-mock.so /usr/bin/tct-smartcard-core +} + +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} +%endif + %check %if 0%{?gcov:1} -pushd unittest -./run_coverage.sh -popd +LD_LIBRARY_PATH=. LD_PRELOAD=unittest/libsmartcard-mock.so unittest/tct-smartcard-core +lcov -c --ignore-errors graph --no-external -b . -d . -o %{name}.total.info +lcov --remove %{name}.total.info -o %{name}.info '*unittest/*' +genhtml %{name}.info -o out --legend --show-details %endif %post -p /sbin/ldconfig @@ -81,3 +127,13 @@ popd %{_libdir}/pkgconfig/*.pc %{_libdir}/libcapi-network-smartcard.so %{_bindir}/smartcard_unit_test + +%if 0%{?gcov:1} +%files gcov +%{_datadir}/gcov/obj/* + +%files unittests +%{_libdir}/libsmartcard-mock.so +%{_bindir}/tct-smartcard-core +%{_bindir}/tizen-unittests/%{name}/run-unittest.sh +%endif diff --git a/unittest/CMakeLists.txt b/unittest/CMakeLists.txt index f3409c2..daab756 100644 --- a/unittest/CMakeLists.txt +++ b/unittest/CMakeLists.txt @@ -29,12 +29,15 @@ ADD_DEFINITIONS( -DMOBILE ) SET(SMARTCARD_MOCK "smartcard-mock") SET(SMARTCARD_MOCK_SRCS - mock/smartcard-mock.c) + mock/smartcard-mock.c +) + SET(SMARTCARD_MOCK_CFLAGS "${CMAKE_C_FLAGS}" ) ADD_LIBRARY(${SMARTCARD_MOCK} SHARED ${SMARTCARD_MOCK_SRCS}) SET_TARGET_PROPERTIES(${SMARTCARD_MOCK} PROPERTIES COMPILE_FLAGS ${SMARTCARD_MOCK_CFLAGS} ) +INSTALL(TARGETS ${SMARTCARD_MOCK} DESTINATION ${LIB_INSTALL_LIB}) ADD_EXECUTABLE(${UNITTEST_NAME} ${UNITTEST_NAME}.cpp ${TC_SOURCES} ) TARGET_LINK_LIBRARIES(${UNITTEST_NAME} @@ -45,4 +48,4 @@ TARGET_LINK_LIBRARIES(${UNITTEST_NAME} capi-network-smartcard ) -# INSTALL(PROGRAMS ${UNITTEST_NAME} DESTINATION ${BIN_INSTALL_DIR}) +INSTALL(TARGETS ${UNITTEST_NAME} DESTINATION ${BIN_INSTALL_DIR}) diff --git a/unittest/run_coverage.sh b/unittest/run_coverage.sh deleted file mode 100755 index 38d5cb3..0000000 --- a/unittest/run_coverage.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash - -export LD_LIBRARY_PATH=..:.:$LD_LIBRARY_PATH -pushd ../ -RootDir=$PWD -popd - -unitTestFile=tct-smartcard-core -if [ ! -x "./$unitTestFile" ] -then - echo "$unitTestFile file does not exist!" - exit -1 -fi - -LD_PRELOAD=./libsmartcard-mock.so ./$unitTestFile - -CMakeDir=${RootDir}/CMakeFiles/capi-network-smartcard.dir/src -CoverageDir=${RootDir}/coverage - -pushd $CMakeDir - - for obj in `ls *.o` - do - gcov -b -c $obj - done - - if [ -f /usr/bin/lcov ] - then - lcov -c -d . --exclude "/usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/*" -o cov.info - genhtml cov.info -o ${CoverageDir} - echo "Coverage test result created! [${CoverageDir}]" - else - echo "lcov does not exist!" - fi -popd -- 2.34.1