Fix gcov path
[platform/upstream/csr-framework.git] / packaging / csr-framework.spec
index 053255d..8b3955c 100644 (file)
@@ -22,7 +22,7 @@
 
 Summary: A general purpose content screening and reputation solution
 Name: csr-framework
-Version: 2.3.0
+Version: 2.3.7
 Release: 0
 Source: %{name}-%{version}.tar.gz
 License: Apache-2.0 and BSL-1.0
@@ -31,7 +31,7 @@ URL: http://tizen.org
 BuildRequires: cmake
 BuildRequires: gettext-tools
 BuildRequires: pkgconfig(dlog)
-BuildRequires: pkgconfig(libsystemd-daemon)
+BuildRequires: pkgconfig(libsystemd)
 BuildRequires: pkgconfig(vconf)
 BuildRequires: pkgconfig(sqlite3)
 BuildRequires: pkgconfig(pkgmgr)
@@ -69,7 +69,6 @@ file contents and checking url to prevent malicious items.
 %global popup_service_env_file_path  /run/tizen-system-env
 %global smack_domain_name            System
 %global popup_unitdir                %{_unitdir_user}
-%global upgrade_script_dir           %{ro_data_dir}/upgrade/scripts
 
 %package -n lib%{name}-common
 Summary: CSR framework (common library)
@@ -120,11 +119,22 @@ BuildRequires: boost-devel
 BuildRequires: pkgconfig(pkgmgr-info)
 BuildRequires: pkgconfig(glib-2.0)
 BuildRequires: pkgconfig(storage)
+Requires:      boost-test
 Requires:      %{name} = %{version}
 
 %description test
 Content Screening and Reputation framework (test program)
 
+%if 0%{?gcov:1}
+%package gcov
+Summary: CSR framework (gcov)
+Group:   Security/Testing
+BuildRequires: lcov
+
+%description gcov
+Content Screening and Reputation framework (gcov)
+%endif
+
 %prep
 %setup -q
 
@@ -137,6 +147,13 @@ Content Screening and Reputation framework (test program)
 %define test_target target
 %endif
 
+%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
+
 %cmake . \
     -DCMAKE_BUILD_TYPE=%{?build_type:%build_type}%{!?build_type:RELEASE} \
     -DCMAKE_VERBOSE_MAKEFILE=ON \
@@ -172,10 +189,16 @@ Content Screening and Reputation framework (test program)
 %endif
     -DTZ_SYS_STORAGE=%TZ_SYS_STORAGE \
     -DTZ_SYS_RW_APP=%TZ_SYS_RW_APP \
-    -DTZ_SYS_RO_APP=%TZ_SYS_RO_APP
+    -DTZ_SYS_RO_APP=%TZ_SYS_RO_APP \
+    -DBUILD_GCOV=%{?gcov:1}%{!?gcov:0}
 
 make %{?jobs:-j%jobs}
 
+%if 0%{?gcov:1}
+mkdir -p gcov-obj
+find . -name '*.gcno' -exec cp '{}' gcov-obj ';'
+%endif
+
 %install
 %make_install
 %install_service sockets.target.wants %{service_name}-cs.socket
@@ -187,14 +210,16 @@ mkdir -p %{buildroot}%{rw_db_dir}
 mkdir -p %{buildroot}%{ro_db_dir}
 cp data/scripts/*.sql %{buildroot}%{ro_db_dir}
 
-mkdir -p %{buildroot}%{upgrade_script_dir}
-cp data/scripts/500.%{service_name}.sh %{buildroot}%{upgrade_script_dir}
-
 mkdir -p %{buildroot}%{engine_dir}
 mkdir -p %{buildroot}%{engine_rw_working_dir}
 
 %find_lang %{service_name}
 
+%if 0%{?gcov:1}
+mkdir -p %{buildroot}%{_datadir}/gcov/obj
+install -m 0644 gcov-obj/* %{buildroot}%{_datadir}/gcov/obj/%{name}
+%endif
+
 %post
 rm -f %{rw_db_dir}/.%{service_name}.db*
 
@@ -240,6 +265,22 @@ fi
 
 %post -n %{name}-test
 chsmack -a "_" %{test_dir}/test_dir/dir1
+%if 0%{?with_sample_engine}
+systemctl stop %{service_name}-cs.socket
+systemctl stop %{service_name}-wp.socket
+systemctl stop %{service_name}-admin.socket
+systemctl restart %{service_name}.service
+
+touch %{engine_rw_working_dir}/csret_cs_virus_signatures
+touch %{engine_rw_working_dir}/csret_wp_risky_urls
+%endif
+
+%if 0%{?gcov:1}
+chmod 777 -R /tmp/home/abuild/rpmbuild/BUILD/csr-framework-*
+su - owner -c %{bin_dir}/%{service_name}-test
+%{bin_dir}/%{service_name}-internal-test
+%{bin_dir}/%{service_name}-threadpool-test
+%endif
 
 %files -f %{service_name}.lang
 %defattr(-,root,root,-)
@@ -269,9 +310,6 @@ chsmack -a "_" %{test_dir}/test_dir/dir1
 %dir %{engine_dir}
 %dir %attr(775, %{service_user}, %{service_group}) %{engine_rw_working_dir}
 
-# RW area platform upgrade script
-%attr(755, -, -) %{upgrade_script_dir}/500.%{service_name}.sh
-
 %files -n lib%{name}-common
 %defattr(-,root,root,-)
 %manifest %{service_name}-common.manifest
@@ -331,3 +369,8 @@ chsmack -a "_" %{test_dir}/test_dir/dir1
 %{engine_dir}/lib%{service_name}-wp-engine.so
 %attr(-, %{service_user}, %{service_group}) %{engine_rw_working_dir}/*
 %endif
+
+%if 0%{?gcov:1}
+%files gcov
+%{_datadir}/gcov/obj/*
+%endif