Adds gcov option for checking coverage 74/285574/2
authorInkyun Kil <inkyun.kil@samsung.com>
Thu, 15 Dec 2022 02:19:10 +0000 (11:19 +0900)
committerInkyun Kil <inkyun.kil@samsung.com>
Thu, 15 Dec 2022 02:23:55 +0000 (11:23 +0900)
Change-Id: Ie33e6d8187c698020185ba29f06cb2c61cda4256
Signed-off-by: Inkyun Kil <inkyun.kil@samsung.com>
packaging/esd.spec

index 5d97f31..739c8f6 100644 (file)
@@ -33,6 +33,10 @@ BuildRequires:  pkgconfig(capi-system-info)
 BuildRequires:  pkgconfig(tizen-database)
 BuildRequires:  pkgconfig(gmock)
 
+%if 0%{?gcov:1}
+BuildRequires:  lcov
+%endif
+
 Requires(post): /sbin/ldconfig
 Requires(postun): /sbin/ldconfig
 
@@ -74,11 +78,27 @@ Requires:   %{name}
 %description -n %{name}-unittests
 GTest for API
 
+%if 0%{?gcov:1}
+%package gcov
+Summary:  Event system daemon(gcov)
+Group:    Application Framework/Service
+
+%description gcov
+gcov objects of a Event System
+%endif
+
 %prep
 %setup -q
 cp %{SOURCE1001} .
 
 %build
+%if 0%{?gcov:1}
+export CFLAGS+=" -fprofile-arcs -ftest-coverage"
+export CXXFLAGS+=" -fprofile-arcs -ftest-coverage"
+export FFLAGS+=" -fprofile-arcs -ftest-coverage"
+export LDFLAGS+=" -lgcov"
+%endif
+
 export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE"
 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
 export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
@@ -95,6 +115,11 @@ make %{?jobs:-j%jobs}
 %check
 ctest -V
 
+%if 0%{?gcov:1}
+lcov -c --ignore-errors graph --no-external -b . -d . -o %{name}.info
+genhtml %{name}.info -o out --legend --show-details
+%endif
+
 %install
 rm -rf %{buildroot}
 %make_install
@@ -130,6 +155,13 @@ mkdir -p %{buildroot}%{_unitdir}/multi-user.target.wants
 install -m 0644 %SOURCE1 %{buildroot}%{_unitdir}/esd.service
 ln -sf ../esd.service %{buildroot}%{_unitdir}/multi-user.target.wants/esd.service
 
+%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 --parents '{}' "$gcno_obj_dir" ';'
+%endif
+
 %post -p /sbin/ldconfig
 
 %postun -p /sbin/ldconfig
@@ -166,3 +198,8 @@ ln -sf ../esd.service %{buildroot}%{_unitdir}/multi-user.target.wants/esd.servic
 %files -n %{name}-unittests
 %{_bindir}/esd-*-unittests
 %{_bindir}/tizen-unittests/%{name}/run-unittest.sh
+
+%if 0%{?gcov:1}
+%files gcov
+%{_datadir}/gcov/*
+%endif
\ No newline at end of file