support gcov test 31/160931/4
authorYoungjae Shin <yj99.shin@samsung.com>
Mon, 20 Nov 2017 23:51:12 +0000 (08:51 +0900)
committerYoungjae Shin <yj99.shin@samsung.com>
Mon, 14 May 2018 07:12:51 +0000 (16:12 +0900)
Change-Id: I10db0eb6e5c1f0f4d52daff39696d83752a599cf

CMakeLists.txt
packaging/contacts-service.spec
server/ctsvc_ipc_server.c
server/ctsvc_server.c

index 3996e0c..9961f5d 100644 (file)
@@ -20,6 +20,10 @@ IF(ENABLE_LOG_FEATURE)
        ADD_DEFINITIONS("-DENABLE_LOG_FEATURE")
 ENDIF(ENABLE_LOG_FEATURE)
 
+IF(BUILD_GCOV)
+       ADD_DEFINITIONS("-DTIZEN_TEST_GCOV")
+ENDIF(BUILD_GCOV)
+
 ADD_SUBDIRECTORY(client)
 ADD_SUBDIRECTORY(server)
 ADD_SUBDIRECTORY(test)
index d1846da..f3ac3bf 100644 (file)
@@ -30,6 +30,9 @@ BuildRequires: pkgconfig(capi-system-info)
 BuildRequires: pkgconfig(icu-uc)
 BuildRequires: pkgconfig(phonenumber-utils)
 BuildRequires: pkgconfig(libsystemd)
+%if 0%{?gcov:1}
+BuildRequires: lcov
+%endif
 Requires(post): /sbin/ldconfig
 Requires(postun): /sbin/ldconfig
 
@@ -64,9 +67,20 @@ cp %{SOURCE1001} ./%{name}.manifest
 cp %{SOURCE1001} ./%{name}-test.manifest
 
 %build
+%if 0%{?gcov:1}
+export CFLAGS+=" -fprofile-arcs -ftest-coverage"
+export CXXFLAGS+=" -fprofile-arcs -ftest-coverage"
+export FFLAGS+=" -fprofile-arcs -ftest-coverage"
+export LDFLAGS+=" -lgcov"
+%endif
+
 MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
-%cmake . -DCMAKE_VERBOSE_MAKEFILE=OFF -DMAJORVER=${MAJORVER} -DFULLVER=%{version} -DBIN_INSTALL_DIR:PATH=%{_bindir} \
-               -DTZ_SYS_ETC=%TZ_SYS_ETC -DENABLE_LOG_FEATURE:BOOL=ON
+%cmake . -DCMAKE_VERBOSE_MAKEFILE=OFF \
+       -DMAJORVER=${MAJORVER} -DFULLVER=%{version} \
+       -DBIN_INSTALL_DIR:PATH=%{_bindir} \
+       -DTZ_SYS_ETC=%TZ_SYS_ETC \
+       -DENABLE_LOG_FEATURE:BOOL=ON \
+       -DBUILD_GCOV=%{?gcov:1}%{!?gcov:0}
 
 %__make %{?_smp_mflags}
 
@@ -131,4 +145,4 @@ chsmack -e "User" /usr/bin/contacts-service-test
 %manifest %{name}-test.manifest
 %defattr(-,root,root,-)
 %{_bindir}/contacts-service-test
-%license LICENSE.APLv2
\ No newline at end of file
+%license LICENSE.APLv2
index 2273eed..b9ab3b5 100644 (file)
@@ -95,6 +95,12 @@ void ctsvc_ipc_server_disconnect(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ip
        int ret = CONTACTS_ERROR_NONE;
        contacts_h contact = NULL;
 
+#ifdef TIZEN_TEST_GCOV
+       void __gcov_flush(void);
+       __gcov_flush();
+#endif
+
+
        if (indata) {
                ret = ctsvc_ipc_unmarshal_handle(indata, &contact);
                if (CONTACTS_ERROR_NONE != ret) {
index 908ada2..2e5afc6 100644 (file)
@@ -323,6 +323,10 @@ int main(int argc, char *argv[])
        INFO("Start contacts-service");
        int ret;
 
+#ifdef TIZEN_TEST_GCOV
+       setenv("GCOV_PREFIX", "/tmp/daemon", 1);
+#endif
+
        if (getuid() == 0) {   /* root */
                gid_t glist[] = {CTS_SECURITY_FILE_GROUP};
                ret = setgroups(1, glist);   /* client and server should have same Groups */