feat: Apply new gcov feature 68/273568/5 accepted/tizen/unified/20220412.100325 submit/tizen/20220411.031545
authorDongHun Kwak <dh0128.kwak@samsung.com>
Thu, 7 Apr 2022 10:09:40 +0000 (19:09 +0900)
committerDongHun Kwak <dh0128.kwak@samsung.com>
Sun, 10 Apr 2022 22:36:05 +0000 (07:36 +0900)
- Apply of tree type gcov structure
- Create run-unittest.sh
- change run-unitest.sh defalut directory

Change-Id: Ic309c4c67273a7ab58ff732c4e698788c85511e8

CMakeLists.txt
packaging/capi-base-utils.spec
tests/CMakeLists.txt

index 3289b5e3cf9f3d74f72c4d627a3184c7ba8807ca..a681e1b7aa17cfabf319bf57314a53f863ce0a84 100755 (executable)
@@ -28,6 +28,4 @@ ENDIF(STDOUT_LOG)
 ADD_SUBDIRECTORY(src)
 ADD_SUBDIRECTORY(i18ninfo)
 
-IF(GCOV)
-       ADD_SUBDIRECTORY(tests)
-ENDIF()
+ADD_SUBDIRECTORY(tests)
index 3ed967d3626152f9785346c7011a9eb1f55f67cd..7febb31097baa2bbd106d1f99a7e567d19483364 100755 (executable)
@@ -10,8 +10,8 @@ BuildRequires:  pkgconfig(icu-i18n)
 BuildRequires:  pkgconfig(capi-base-common)
 BuildRequires:  pkgconfig(dlog)
 
-%if 0%{?gcov:1}
 BuildRequires:  gtest-devel
+%if 0%{?gcov:1}
 BuildRequires:  lcov
 %endif
 
@@ -43,13 +43,18 @@ The base utils library test tool
 # gcov
 %if 0%{?gcov:1}
 %package gcov
-Summary:    The Base Utils Tool(gcov)
-Group:      Base
+Summary:    %{name} gcov data
 
 %description gcov
 Base utils gcov objects
 %endif
 
+%package unittests
+Summary:    %{name} unittests binary
+
+%description unittests
+unittests binary
+
 %prep
 %setup -q
 
@@ -61,25 +66,49 @@ export FFLAGS+=" -fprofile-arcs -ftest-coverage"
 %endif
 
 %cmake -DPKG_NAME=%{name} -DPKG_VERSION=%{version} \
-       -DGCOV=%{?gcov:1}%{!?gcov:0} \
+       -DBIN_INSTALL_DIR:PATH=%{_bindir} \
        -DSTDOUT_LOG=%{?stdlog:1}%{!?stdlog:0}
 
 make %{?jobs:-j%jobs}
 
-%if 0%{?gcov:1}
-mkdir -p gcov-obj
-find . -name '*.gcno' -exec cp '{}' gcov-obj ';'
-%endif
-
 %install
 rm -rf %{buildroot}
 %make_install
 
 %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"
+}
+
+test_main() {
+       echo "test_main start"
+       /usr/bin/tct-base-utils-core
+}
+
+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}/
+
 %check
 %if 0%{?gcov:1}
 tests/tct-base-utils-core
@@ -109,3 +138,7 @@ genhtml %{name}.info -o out --legend --show-details
 %files gcov
 %{_datadir}/gcov/obj/*
 %endif
+
+%files unittests
+%{_bindir}/tct-base-utils-core
+%{_bindir}/tizen-unittests/%{name}/run-unittest.sh
index 163d049e374a0c83f5f5c01e936418e0e958733b..98868f95983d43610bdf2b230a9fefccd5a0b576 100644 (file)
@@ -29,4 +29,4 @@ TARGET_LINK_LIBRARIES(${UNITTEST_NAME}
     pthread
 )
 
-#INSTALL(PROGRAMS ${UNITTEST_NAME} DESTINATION ${BIN_INSTALL_DIR})
+INSTALL(PROGRAMS ${UNITTEST_NAME} DESTINATION ${BIN_INSTALL_DIR})