From: Seonah Moon Date: Thu, 9 Jun 2022 06:02:33 +0000 (+0900) Subject: Apply gcov automation X-Git-Tag: submit/tizen/20220610.003743^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bdecd6bf6f003f59fe41fe66011497b9fef5557c;p=platform%2Fcore%2Fapi%2Fwifi-manager.git Apply gcov automation Change-Id: I3aa386b20275117d025bc0b4c3bdf62e575780d4 --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 9d2c860..f4fe1b6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,7 +28,4 @@ INSTALL(FILES ${PROJECT_NAME}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig) ADD_SUBDIRECTORY(tools/manager-tool) ADD_SUBDIRECTORY(tools/manager-test) ADD_SUBDIRECTORY(tools/connection-tool) - -IF(BUILD_GTESTS) - ADD_SUBDIRECTORY(tests) -ENDIF(BUILD_GTESTS) +ADD_SUBDIRECTORY(tests) diff --git a/packaging/capi-network-wifi-manager.spec b/packaging/capi-network-wifi-manager.spec index c81601f..b2f75fe 100644 --- a/packaging/capi-network-wifi-manager.spec +++ b/packaging/capi-network-wifi-manager.spec @@ -43,6 +43,7 @@ Test Application for Wi-Fi Manager Summary: Coverage Data of %{name} Group: Network & Connectivity/Testing BuildRequires: pkgconfig(gmock) +BuildRequires: gtest-devel BuildRequires: lcov BuildRequires: tar @@ -50,6 +51,12 @@ BuildRequires: tar The %{name}-gcov pacakge contains gcov objects %endif +%package unittests +Summary: %{name} unittests binary + +%description unittests +unittests binary + %prep %setup -q cp %{SOURCE1001} ./ @@ -59,14 +66,12 @@ cp %{SOURCE1001} ./ export CFLAGS+=" -fprofile-arcs -ftest-coverage" export CXXFLAGS+=" -fprofile-arcs -ftest-coverage" export FFLAGS+=" -fprofile-arcs -ftest-coverage" -export LDFLAGS+=" -lgcov" %endif MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'` %cmake . -DFULLVER=%{version} -DMAJORVER=${MAJORVER} \ -DCMAKE_VERBOSE_MAKEFILE=OFF \ - -DBIN_INSTALL_DIR:PATH=%{_bindir} \ - -DBUILD_GTESTS=%{?gcov:1}%{!?gcov:0} + -DBIN_INSTALL_DIR:PATH=%{_bindir} make %{?_smp_mflags} @@ -74,11 +79,42 @@ make %{?_smp_mflags} %make_install %if 0%{?gcov:1} -find .. -name '*.gcno' | grep -v src | tar cf %{name}-gcov.tar -T - -install -d -m 755 %{buildroot}%{_datadir}/gcov/obj/%{name} -tar xf %{name}-gcov.tar -C %{buildroot}%{_datadir}/gcov/obj/%{name} +builddir=$(basename $PWD) +gcno_obj_dir=%{buildroot}%{_datadir}/gcov/obj/%{name}/"$builddir" +mkdir -p "$gcno_obj_dir" +find . -name '*.gcno' ! -path '*/tools/*' -exec cp --parents '{}' "$gcno_obj_dir" ';' +%endif + +cat << EOF > run-unittest.sh +#!/bin/sh +setup() { + echo "setup start" +} + +test_main() { + echo "test_main start" + /usr/bin/gtest-wifi-manager +} + +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 0%{?gcov:1} tests/gtest-wifi-manager # Calculating linecoverage only for library source code find . -name "*.gcno" | grep -v src | xargs rm -f @@ -110,5 +146,9 @@ genhtml %{name}.info -o out --legend --show-details %if 0%{?gcov:1} %files gcov -%{_datadir}/gcov/obj/%{name}/* +%{_datadir}/gcov/obj/* %endif + +%files unittests +%{_bindir}/gtest-wifi-manager +%{_bindir}/tizen-unittests/%{name}/run-unittest.sh diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 8527989..4f1ce64 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -24,3 +24,5 @@ SET_TARGET_PROPERTIES(${GTEST} PROPERTIES COMPILE_FLAGS "-fPIE" LINK_FLAGS "-Wl, --wrap=vconf_get_int,\ --wrap=vconf_get_bool,\ --wrap=vconf_get_str") + +INSTALL(TARGETS ${GTEST} DESTINATION bin/)