Modify gcov installation directory 32/285832/2
authorChanggyu Choi <changyu.choi@samsung.com>
Wed, 21 Dec 2022 04:25:02 +0000 (13:25 +0900)
committerChanggyu Choi <changyu.choi@samsung.com>
Wed, 21 Dec 2022 04:54:38 +0000 (13:54 +0900)
Change-Id: I85a15ea4fd43bdfbe1450a1d3ee449b504a7d560
Signed-off-by: Changgyu Choi <changyu.choi@samsung.com>
packaging/minicontrol.spec
unittests/CMakeLists.txt

index d89afa88e8d1f2dc9da7ecc7c3e8b503d6d8f6a1..c48513badc015e6a036de14b59c0f8bd5ae4cf20 100644 (file)
@@ -37,6 +37,12 @@ Requires:   %{name} = %{version}
 %description devel
 Minicontrol library (devel).
 
+%package unittests
+Summary:    %{name} unittests binary
+
+%description unittests
+unittests binary
+
 %if 0%{?gcov:1}
 %package gcov
 Summary:  Minicontrol Library(gcov)
@@ -59,32 +65,56 @@ LDFLAGS="$LDFLAGS"
 
 MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
 %if %{with wayland}
-%cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DHAVE_WAYLAND=On -DFULLVER=%{version} -DMAJORVER=${MAJORVER}
+%cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DHAVE_WAYLAND=On -DFULLVER=%{version} -DMAJORVER=${MAJORVER} -DBIN_INSTALL_DIR:PATH=%{_bindir}
 %else
-%cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DHAVE_X11=On -DFULLVER=%{version} -DMAJORVER=${MAJORVER}
+%cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DHAVE_X11=On -DFULLVER=%{version} -DMAJORVER=${MAJORVER} -DBIN_INSTALL_DIR:PATH=%{_bindir}
 %endif
 make %{?jobs:-j%jobs}
 
-%if 0%{?gcov:1}
-mkdir -p gcov-obj
-find . -name '*.gcno' -exec cp '{}' gcov-obj ';'
-%endif
-
 %install
 %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/minicontrol-unittest
+}
+
+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
 (cd unittests && LD_LIBRARY_PATH=../ ctest -V)
 %if 0%{?gcov:1}
 lcov -c --ignore-errors graph --no-external -q -d . -o minicontrol.info
 genhtml minicontrol.info -o minicontrol.out
 zip -r minicontrol.zip minicontrol.out
-install -m 0644 minicontrol.zip %{buildroot}%{_datadir}/gcov/
+install -m 0644 minicontrol.zip %{buildroot}%{_datadir}/gcov/obj/
 %endif
 
 %post
@@ -110,7 +140,11 @@ install -m 0644 minicontrol.zip %{buildroot}%{_datadir}/gcov/
 %{_libdir}/libminicontrol-viewer.so
 %{_libdir}/libminicontrol-monitor.so
 
+%files unittests
+%{_bindir}/minicontrol-unittest
+%{_bindir}/tizen-unittests/%{name}/run-unittest.sh
+
 %if 0%{?gcov:1}
 %files gcov
-%{_datadir}/gcov/*
+%{_datadir}/gcov/obj/*
 %endif
index 8d065c472639a580c53688abdca76d634add1a54..b6c3685f1e74ccf952ed421b84c65eccd6605268 100644 (file)
@@ -21,3 +21,5 @@ SET(${EXTRA_CXXFLAGS_test} "${EXTRA_CXXFLAGS_test} --std=c++14")
 SET_TARGET_PROPERTIES(${TARGET_TEST} PROPERTIES COMPILE_FLAGS ${EXTRA_CXXFLAGS_test})
 
 TARGET_LINK_LIBRARIES(${TARGET_TEST} ${gtest_pkgs_LIBRARIES} minicontrol-viewer)
+
+INSTALL (PROGRAMS ${TARGET_TEST} DESTINATION ${BIN_INSTALL_DIR})