From b00921b38ed5f2ad0548aa23d5c3ed9001b60ed2 Mon Sep 17 00:00:00 2001 From: Ilho Kim Date: Fri, 27 May 2022 09:53:32 +0900 Subject: [PATCH] Fix spec file for coverage measurement To measure code coverages automatically, a run-unittest.sh is needed Change-Id: I80baad904065d8639910e62a035ff04a0f3a5660 Signed-off-by: Ilho Kim --- packaging/pkgmgr-info.spec | 63 ++++++++++++++++++++++++++++++++---------- test/unit_tests/CMakeLists.txt | 2 ++ 2 files changed, 50 insertions(+), 15 deletions(-) diff --git a/packaging/pkgmgr-info.spec b/packaging/pkgmgr-info.spec index 3d14587..21a142f 100755 --- a/packaging/pkgmgr-info.spec +++ b/packaging/pkgmgr-info.spec @@ -72,6 +72,12 @@ Requires: %{name}-common = %{version}-%{release} %description common-devel Dev package for libpkgmgr_common +%package unittests +Summary: %{name} unittests binary + +%description unittests +unittest binary + %prep %setup -q cp %{SOURCE1001} . @@ -89,24 +95,52 @@ MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'` %__make %{?jobs:-j%jobs} -%if 0%{?gcov:1} -mkdir -p gcov-obj -find . -name '*.gcno' ! -path './gcov-obj/*' -exec cp '{}' gcov-obj ';' -%endif - %check export LD_LIBRARY_PATH=../../src/:../../src/server:../../parser ctest -V %if 0%{?gcov:1} -lcov -c --ignore-errors graph --no-external -q -d . -o pkgmgr-info.info -genhtml pkgmgr-info.info -o pkgmgr-info.out -zip -r pkgmgr-info.zip pkgmgr-info.out -install -m 0644 pkgmgr-info.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 %make_install +%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 + +cat << EOF > run-unittest.sh +#!/bin/sh + +setup() { + echo "setup start" +} + +test_main() { + echo "test_main start" + /usr/bin/pkgmgr-info-unit-test +} + +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}/ + mkdir -p %{buildroot}%{_unitdir}/basic.target.wants ln -sf ../pkg-db-recovery.service %{buildroot}%{_unitdir}/basic.target.wants/pkg-db-recovery.service @@ -117,11 +151,6 @@ install -m 0644 %SOURCE2 %{buildroot}%{_unitdir}/%{name}.socket ln -s ../%{name}.service %{buildroot}%{_unitdir}/basic.target.wants/%{name}.service ln -sf ../%{name}.socket %{buildroot}%{_unitdir}/sockets.target.wants/%{name}.socket -%if 0%{?gcov:1} -mkdir -p %{buildroot}%{_datadir}/gcov/obj/%{name} -install -m 0644 gcov-obj/* %{buildroot}%{_datadir}/gcov/obj/%{name} -%endif - %post /sbin/ldconfig @@ -194,5 +223,9 @@ Packager Manager information api gcov objects %if 0%{?gcov:1} %files gcov %defattr(-,root,root,-) -%{_datadir}/gcov/* +%{_datadir}/gcov/obj/* %endif + +%files unittests +%{_bindir}/pkgmgr-info-unit-test +%{_bindir}/tizen-unittests/%{name}/run-unittest.sh diff --git a/test/unit_tests/CMakeLists.txt b/test/unit_tests/CMakeLists.txt index 9d72c25..ed51645 100644 --- a/test/unit_tests/CMakeLists.txt +++ b/test/unit_tests/CMakeLists.txt @@ -45,3 +45,5 @@ ADD_TEST( NAME ${TARGET_PKGMGR_INFO_UNIT_TEST} COMMAND ${TARGET_PKGMGR_INFO_UNIT_TEST} ) + +INSTALL(TARGETS ${TARGET_PKGMGR_INFO_UNIT_TEST} DESTINATION bin) -- 2.7.4