From f0d882d9312d1d24844e3d44fe7f123ee0016f38 Mon Sep 17 00:00:00 2001 From: YoungHun Kim Date: Wed, 6 May 2020 20:23:36 +0900 Subject: [PATCH] Add the coverage measurement for resource manager Change-Id: Ic6df876631f9dddb1d344dcbc8eff0289f307708 --- packaging/mm-resource-manager.spec | 6 ++++++ src/daemon/mm_resource_manager_daemon.c | 4 ++++ src/daemon/mm_resource_manager_daemon_priv.c | 8 +++++++- src/daemon/mm_resource_manager_daemon_priv.h | 1 + 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/packaging/mm-resource-manager.spec b/packaging/mm-resource-manager.spec index e9aaf58..b79a3f8 100644 --- a/packaging/mm-resource-manager.spec +++ b/packaging/mm-resource-manager.spec @@ -41,6 +41,12 @@ cp %{SOURCE1001} . flags="$flags -DTIZEN_DEBUG_ENABLE" %endif +%if 0%{?gcov:1} +export CFLAGS+=" -fprofile-arcs -ftest-coverage -DRM_GCOV_TEST " +export CXXFLAGS+=" -fprofile-arcs -ftest-coverage " +export LDFLAGS+=" -lgcov " +%endif + flags="$flags -DMM_RM_MURPHY_BACKEND" export CFLAGS="$CFLAGS $flags" diff --git a/src/daemon/mm_resource_manager_daemon.c b/src/daemon/mm_resource_manager_daemon.c index 8153e07..94143e6 100644 --- a/src/daemon/mm_resource_manager_daemon.c +++ b/src/daemon/mm_resource_manager_daemon.c @@ -230,6 +230,10 @@ int main(int argc, char *argv[]) MM_RM_RETVM_IF(!set_signal_handlers(), EXIT_FAILURE, "Daemon cannot set signal handlers"); +#ifdef RM_GCOV_TEST + setenv("GCOV_PREFIX", "/tmp", 1); +#endif + daemon_loop(); MM_RM_RETVM_IF(!remove_daemon_setup_file(), EXIT_FAILURE, diff --git a/src/daemon/mm_resource_manager_daemon_priv.c b/src/daemon/mm_resource_manager_daemon_priv.c index fbd11bf..71298d9 100644 --- a/src/daemon/mm_resource_manager_daemon_priv.c +++ b/src/daemon/mm_resource_manager_daemon_priv.c @@ -19,6 +19,9 @@ #include #include #include +#ifdef RM_GCOV_TEST +#include +#endif #include "daemon/mm_resource_manager_daemon_priv.h" #include "daemon/mm_resource_manager_daemon_conf.h" @@ -68,7 +71,6 @@ typedef struct { static GPtrArray *managers; static int res_count[MM_RESOURCE_MANAGER_RES_TYPE_MAX]; - static void __destroy_resource(mm_resource_manager_dmn_res_p res); static void __destroy_manager(void *m); static int __search_manager_index(mm_resource_manager_id id); @@ -203,6 +205,10 @@ mm_resource_manager_error_e _mmrm_dmn_destroy(mm_resource_manager_id id) MM_RM_INFO("managers length #%d type %d available volume %d", managers->len, type, conf->max_volume[type]); +#ifdef RM_GCOV_TEST + __gcov_flush(); +#endif + return MM_RESOURCE_MANAGER_ERROR_NONE; } diff --git a/src/daemon/mm_resource_manager_daemon_priv.h b/src/daemon/mm_resource_manager_daemon_priv.h index 25d59bb..9a30347 100644 --- a/src/daemon/mm_resource_manager_daemon_priv.h +++ b/src/daemon/mm_resource_manager_daemon_priv.h @@ -21,6 +21,7 @@ #include #include "common/mm_resource_manager_utils.h" + #define MSG_DONE "DONE" #define PID_FILE "/tmp/.mm-res-mgr.pid" #define PID_MSG_LEN (16) -- 2.7.4