Fix spec file for coverage measurement 83/275483/1
authorHwankyu Jhun <h.jhun@samsung.com>
Wed, 25 May 2022 23:13:32 +0000 (08:13 +0900)
committerHwankyu Jhun <h.jhun@samsung.com>
Wed, 25 May 2022 23:13:32 +0000 (08:13 +0900)
To measure code coverages automatically, a run-unittest.sh is needed.
aul-unittests rpm is added for coverage measurement.

Change-Id: I8c849e45fac9497787a2f05e304e23252cff8f0c
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
packaging/aul.spec

index afd05de..7d82134 100644 (file)
@@ -41,7 +41,6 @@ BuildRequires:  pkgconfig(libsessiond)
 
 %if 0%{?gcov:1}
 BuildRequires:  lcov
-BuildRequires:  zip
 %endif
 
 Recommends: amd
@@ -105,6 +104,12 @@ Requires:   %{name}-server = %{version}-%{release}
 %description server-devel
 Application Utility Library (devel)
 
+%package unittests
+Summary:    %{name} unittests binary
+
+%description unittests
+unittests binary
+
 %if "%{?_prelink_enable}" == "y"
 %define tizen_feature_prelink 1
 %else
@@ -152,19 +157,13 @@ MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
 sqlite3 .appsvc.db < ./data/appsvc_db.sql
 sqlite3 .component.db < ./parser/component/data/component_db.sql
 
-%if 0%{?gcov:1}
-mkdir -p gcov-obj
-find . -name '*.gcno' -exec cp '{}' gcov-obj ';'
-%endif
-
 %check
 export LD_LIBRARY_PATH="../../"
 ctest -V
+
 %if 0%{?gcov:1}
-lcov -c --ignore-errors graph --no-external -q -d . -o %{name}.info
-genhtml %{name}.info -o %{name}.out
-zip -r %{name}.zip %{name}.out %{name}.info
-install -m 0644 %{name}.zip %{buildroot}%{_datadir}/gcov/
+lcov -c --ignore-errors graph --no-external -b . -d . -o %{name}.info
+genhtml %{name}.info -o out --legend --show-details
 %endif
 
 %install
@@ -184,10 +183,41 @@ mkdir -p %{buildroot}%{_sysconfdir}/gumd/useradd.d
 cp -f scripts/12_appsvc-add.post %{buildroot}%{_sysconfdir}/gumd/useradd.d/12_appsvc-add.post
 
 %if 0%{?gcov:1}
-mkdir -p %{buildroot}%{_datadir}/gcov/obj/%{name}
-install -m 0644 gcov-obj/* %{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' -exec cp --parents '{}' "$gcno_obj_dir" ';'
 %endif
 
+cat << EOF > run-unittest.sh
+#!/bin/sh
+setup() {
+    echo "setup start"
+    %{_aulresdir}/tpk/install.sh
+}
+
+test_main() {
+    echo "test_main start"
+    /usr/bin/aul-unit-tests
+    /usr/bin/app-control-tests
+}
+
+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}/
+
 %preun
 
 %post
@@ -209,8 +239,6 @@ chsmack -a 'User::Home' %{TZ_SYS_DB}/.component.db-journal
 %if 0%{?gcov:1}
 %{_bindir}/aul-unit-tests
 %endif
-chmod +x %{_aulresdir}/tpk/install.sh
-%{_aulresdir}/tpk/install.sh
 
 %postun server
 /sbin/ldconfig
@@ -235,7 +263,6 @@ chmod +x %{_aulresdir}/tpk/install.sh
 %{_bindir}/appsvc-db-recovery
 %{_bindir}/component-db-recovery
 %{_bindir}/aul_window
-%{_bindir}/aulctl
 %{_datadir}/aul/miregex/*
 %{_datadir}/aul/preexec_list.txt
 %{_datadir}/appsvc/*
@@ -261,10 +288,7 @@ chmod +x %{_aulresdir}/tpk/install.sh
 %{_sysconfdir}/package-manager/parserlib/libexec-checker.so*
 
 %files test
-%{_bindir}/app-control-tests
-%{_bindir}/aul-unit-tests
 %{_bindir}/open_app
-%{_aulresdir}/*
 
 %files devel
 %{_includedir}/aul/*.h
@@ -288,3 +312,9 @@ chmod +x %{_aulresdir}/tpk/install.sh
 %{_includedir}/aul/server/*.h
 %{_libdir}/libaul-server.so
 %{_libdir}/pkgconfig/aul-server.pc
+
+%files unittests
+%attr(0755,root,root) %{_bindir}/aul-unit-tests
+%attr(0755,root,root) %{_bindir}/app-control-tests
+%attr(0755,root,root) %{_bindir}/tizen-unittests/%{name}/run-unittest.sh
+%attr(0755,root,root) %{_aulresdir}/*