From: Ilho Kim Date: Fri, 27 May 2022 05:39:24 +0000 (+0900) Subject: Fix spec file for coverage measurement X-Git-Tag: submit/tizen/20220527.073732~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5c2a56f8cb95849e22aea8b131ede180b01fdef2;p=platform%2Fcore%2Fappfw%2Fpkgmgr-tool.git Fix spec file for coverage measurement To measure code coverages automatically, a run-unittest.sh is needed Change-Id: I0b6065e52c7318d8b2b69d78ec64001bfb15de10 Signed-off-by: Ilho Kim --- diff --git a/packaging/pkgmgr-tool.spec b/packaging/pkgmgr-tool.spec index efde4e6..3207ad5 100644 --- a/packaging/pkgmgr-tool.spec +++ b/packaging/pkgmgr-tool.spec @@ -41,12 +41,12 @@ Requires(posttrans): /usr/bin/pkg_initdb %description Packager Manager Tool for packaging -%package -n pkgmgr-tool_unittests +%package unittests Summary: GTest for pkgmgr-tool Group: Development/Libraries Requires: %{name} -%description -n pkgmgr-tool_unittests +%description unittests GTest for pkgmgr-tool %if 0%{?gcov:1} @@ -72,28 +72,59 @@ export LDFLAGS+=" -lgcov" %cmake . %__make %{?_smp_mflags} -%if 0%{?gcov:1} -mkdir -p gcov-obj -find . -name '*.gcno' -exec cp '{}' gcov-obj ';' -%endif %check ctest -V %if 0%{?gcov:1} -lcov -c --ignore-errors graph --no-external -q -d . -o pkgmgr-tool.info -genhtml pkgmgr-tool.info -o pkgmgr-tool.out -zip -r pkgmgr-tool.zip pkgmgr-tool.out -install -m 0644 pkgmgr-tool.zip %{buildroot}%{_datadir}/gcov/pkgmgr-tool.zip +lcov -c --ignore-errors graph --no-external -b . -d . -o %{name}.info +genhtml %{name}.info -o out --legend --show-details %endif %install %make_install mkdir -p %{buildroot}%{_sysconfdir}/opt/upgrade + %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" + mkdir -p /tmp/pkgmgr-tool-unittests + cp -r /usr/share/pkgmgr-tool_unittests/* /tmp/pkgmgr-tool-unittests/ +} + +test_main() { + echo "test_main start" + CUR_DIR=$(pwd) + cd /tmp/pkgmgr-tool-unittests + /usr/bin/pkgmgr-tool_unittests + cd $CUR_DIR +} + +teardown() { + echo "teardown start" + rm -rf /tmp/pkgmgr-tool-unittests +} + +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}/ + %fdupes %{buildroot} %post @@ -133,10 +164,13 @@ update-mime-database %{_datadir}/mime %attr(0700,root,root) /etc/package-manager/updates/upgrade_to_30008.sh %attr(0700,root,root) %{_sysconfdir}/package-manager/pkgmgr-label-initial-image.sh -%files -n pkgmgr-tool_unittests +%files unittests %{_bindir}/pkgmgr-tool_unittests %{_datadir}/pkgmgr-tool_unittests/* +%{_bindir}/tizen-unittests/%{name}/run-unittest.sh + %if 0%{?gcov:1} %files gcov -%{_datadir}/gcov/* +%defattr(-,root,root,-) +%{_datadir}/gcov/obj/* %endif diff --git a/tests/unit_tests/CMakeLists.txt b/tests/unit_tests/CMakeLists.txt index ab88138..8bafa81 100644 --- a/tests/unit_tests/CMakeLists.txt +++ b/tests/unit_tests/CMakeLists.txt @@ -58,4 +58,6 @@ TARGET_LINK_LIBRARIES(${PROJECT_NAME} ) INSTALL(TARGETS ${PROJECT_NAME} DESTINATION /usr/bin/) -INSTALL(DIRECTORY pkg_upgrade/data/ DESTINATION ${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}/pkg_upgrade/data) +INSTALL(DIRECTORY pkg_upgrade/data/ DESTINATION ${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}/tests/unit_tests/pkg_upgrade/data) +INSTALL(DIRECTORY data/ DESTINATION ${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}/tests/unit_tests/data) +INSTALL(DIRECTORY res-copy/data/ DESTINATION ${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}/tests/unit_tests/res-copy/data)