add gcov for Coverage test 29/219129/2 submit/tizen/20191203.045145
authorSunghyun kim <scholb.kim@samsung.com>
Mon, 2 Dec 2019 08:10:16 +0000 (17:10 +0900)
committerSunghyun kim <scholb.kim@samsung.com>
Mon, 2 Dec 2019 08:45:01 +0000 (17:45 +0900)
Change-Id: Ib2cf0ef8fefc0c65add61016d8cffb88fffa8f24

packaging/widget-viewer-dali.spec

index 5758936f9f987cfe07245c6c761577a84b3c039b..121b303cc053c81525b30bf44eb150627a86d22d 100644 (file)
@@ -22,6 +22,10 @@ BuildRequires: pkgconfig(dali-toolkit)
 BuildRequires: pkgconfig(cynara-client)
 BuildRequires: pkgconfig(wayland-tbm-client)
 BuildRequires: pkgconfig(screen_connector_watcher)
+%if 0%{?gcov:1}
+BuildRequires:  lcov
+BuildRequires:  zip
+%endif
 
 %if 0%{?tizen_version_major} >= 5
 BuildRequires:  pkgconfig(ecore-wl2)
@@ -43,6 +47,23 @@ Requires: %{name} = %{version}-%{release}
 %description devel
 Header and package configuration files for the widget viewer development
 
+#################################################
+# widget-viewer-gcov
+#################################################
+%if 0%{?gcov:1}
+%package gcov
+Summary:    Simple string key-val dictionary ADT (gcov)
+Group:      Application Framework/Testing
+
+%description gcov
+Simple string key-val dictionary ADT gcov objects
+%endif
+
+%if 0%{?gcov:1}
+%files gcov
+%{_datadir}/gcov/*
+%endif
+
 ##############################
 # Preparation
 ##############################
@@ -53,6 +74,13 @@ Header and package configuration files for the widget viewer development
 # Build
 ##############################
 %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
+
 PREFIX="/usr"
 CXXFLAGS+=" -Wall -g -O2 -fPIE -Wl,-z,relro,-z,now -fstack-protector-strong -D_FORTIFY_SOURCE=2"
 LDFLAGS+=" -Wl,--rpath=$PREFIX/lib -Wl,--as-needed -pie -Wl,-z,relro,-z,now"
@@ -81,6 +109,21 @@ MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
 
 make %{?jobs:-j%jobs}
 
+%if 0%{?gcov:1}
+mkdir -p gcov-obj
+find . -name '*.gcno' -exec cp '{}' gcov-obj ';'
+%endif
+
+%check
+ctest --output-on-failure %{?_smp_mflags}
+%if 0%{?gcov:1}
+lcov -c --ignore-errors graph --no-external -q -d . -o widget-viewer-dali.info
+genhtml widget-viewer-dali.info -o widget-viewer-dali.out
+zip -r widget-viewer-dali.zip widget-viewer-dali.out widget-viewer-dali.info
+install -m 0644 widget-viewer-dali.zip %{buildroot}%{_datadir}/gcov/
+%endif
+
+
 ##############################
 # Installation
 ##############################
@@ -90,6 +133,11 @@ rm -rf %{buildroot}
 pushd build/tizen
 %make_install
 
+%if 0%{?gcov:1}
+mkdir -p %{buildroot}%{_datadir}/gcov/obj
+install -m 0644 gcov-obj/* %{buildroot}%{_datadir}/gcov/obj
+%endif
+
 ##############################
 # Post Install
 ##############################