revise code of getting coverage
authorYoungjae Shin <yj99.shin@samsung.com>
Fri, 24 Apr 2020 01:16:48 +0000 (10:16 +0900)
committerYoungjae Shin <yj99.shin@samsung.com>
Fri, 24 Apr 2020 01:58:26 +0000 (10:58 +0900)
CMakeLists.txt
packaging/modes.spec
supervisor/CMakeLists.txt
supervisor/RequestHandler.cpp
supervisor/main.cpp

index b770374eba6fc06f669fafe260bc7362d94e340a..ee00e4c514f5a9dcef3d578c5a54351584bba11f 100644 (file)
@@ -24,6 +24,10 @@ IF(STDOUT_LOG)
        ADD_DEFINITIONS("-DMDS_STDOUT")
 ENDIF(STDOUT_LOG)
 
+IF(BUILD_GCOV)
+       ADD_DEFINITIONS("-DTIZEN_TEST_GCOV")
+ENDIF(BUILD_GCOV)
+
 ADD_SUBDIRECTORY(common)
 ADD_SUBDIRECTORY(client)
 ADD_SUBDIRECTORY(supervisor)
index 6accc9a31813620f1b59b98dc1b21e89e6279ebe..1e791429050fce4b990201e5f739493b148dd2bd 100644 (file)
@@ -65,7 +65,7 @@ The %{name}-unittests pacakge contains programs for checking quality the %{name}
 
 %if 0%{?gcov:1}
 %package gcov
-Summary:  Coverage Data of %{name}
+Summary: Coverage Data of %{name}
 Group: System/Testing
 
 %description gcov
@@ -106,11 +106,6 @@ MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
        -DSTDOUT_LOG=%{?stdlog:1}%{!?stdlog:0}
 make %{?_smp_mflags}
 
-%if 0%{?gcov:1}
-mkdir -p gcov-obj
-#find . -name '*.gcno' -exec cp '{}' gcov-obj ';'
-%endif
-
 %install
 %make_install
 install -d -m 755 %{buildroot}%{modes_ro_dir}/mode
@@ -125,8 +120,9 @@ install -m 0755 unittest/modes-gtest-run.sh %{buildroot}%{modes_test_dir}/
 %install_service multi-user.target.wants %{name}.path
 
 %if 0%{?gcov:1}
-mkdir -p %{buildroot}%{_datadir}/gcov/obj
-#install -m 0644 gcov-obj/* %{buildroot}%{_datadir}/gcov/obj
+find .. -name '*.gcno' | tar cf %{name}-gcov.tar -T -
+install -d -m 755 %{buildroot}%{_datadir}/gcov/obj
+tar xf %{name}-gcov.tar -C %{buildroot}%{_datadir}/gcov/obj
 %endif
 
 %check
@@ -134,12 +130,6 @@ xmllint --noout --schema schema/tizen_mode.xsd example/mode/tizen_*_mode.xml
 xmllint --noout --schema schema/tizen_action_rule.xsd plugin/tizen_test_rule.xml
 xmllint --noout --schema schema/tizen_action_rule.xsd example/rule/tizen_*_rule.xml
 bash ./unittest/modes-gtest-run.sh %{buildroot}%{modes_ro_dir} %{buildroot}%{modes_test_dir} Building
-%if 0%{?gcov:1}
-lcov -c --ignore-errors graph --no-external -d . -o %{name}.info
-genhtml ./%{name}.info -o ./out --legend --show-details
-install -m 0644 %{name}.info %{buildroot}%{_datadir}/gcov/
-%endif
-
 
 %post
 /sbin/ldconfig
index 1aed2490a1e727ec75e22697259753b1a6d6e142..03cd03d0e45636e368e642ceb85345a18c36a480 100644 (file)
@@ -21,7 +21,7 @@ ADD_DEFINITIONS("-DMDS_SUPERVISOR")
 
 ADD_EXECUTABLE(${DAEMON} ${DAEMON_SRCS})
 ADD_DEPENDENCIES(${DAEMON} GENERATED_DBUS_CODE)
-TARGET_LINK_LIBRARIES(${DAEMON} ${daemon_pkgs_LIBRARIES} dl pthread )
+TARGET_LINK_LIBRARIES(${DAEMON} ${daemon_pkgs_LIBRARIES} dl pthread)
 
 CONFIGURE_FILE(${DBUS_INTERFACE}.service.in ${DBUS_INTERFACE}.service @ONLY)
 CONFIGURE_FILE(${DBUS_INTERFACE}.conf.in ${DBUS_INTERFACE}.conf @ONLY)
index 9cc7b5337cd5cddce214d7a409f490c3d3af8004..5dd5a017e5e059f3354624d3be3fe2c25757eacd 100644 (file)
@@ -20,6 +20,9 @@
 #include "ClientPrivilege.h"
 
 MODES_NAMESPACE_USE;
+#ifdef TIZEN_TEST_GCOV
+extern "C" void __gcov_flush(void);
+#endif
 
 ModeManager *RequestHandler::modeMgr = NULL;
 RuleManager *RequestHandler::ruleMgr = NULL;
@@ -46,6 +49,9 @@ gboolean RequestHandler::canApplyModeHandler(mdsDbus *object, GDBusMethodInvocat
 
        mds_dbus_complete_can_apply(object, invocation, ret);
 
+#ifdef TIZEN_TEST_GCOV
+       __gcov_flush();
+#endif
        return TRUE;
 }
 
@@ -62,6 +68,9 @@ gboolean RequestHandler::applyModeHandler(mdsDbus *object, GDBusMethodInvocation
 
        mds_dbus_complete_apply_mode(object, invocation, ret);
 
+#ifdef TIZEN_TEST_GCOV
+       __gcov_flush();
+#endif
        return TRUE;
 }
 
@@ -78,6 +87,9 @@ gboolean RequestHandler::undoModeHandler(mdsDbus *object, GDBusMethodInvocation
 
        mds_dbus_complete_undo_mode(object, invocation, ret);
 
+#ifdef TIZEN_TEST_GCOV
+       __gcov_flush();
+#endif
        return TRUE;
 }
 
@@ -96,6 +108,9 @@ gboolean RequestHandler::registerModeHandler(mdsDbus *object, GDBusMethodInvocat
                        invocation, MODES_ERROR_INVALID_PARAMETER);
        }
 
+#ifdef TIZEN_TEST_GCOV
+       __gcov_flush();
+#endif
        return TRUE;
 }
 
@@ -124,6 +139,10 @@ gboolean RequestHandler::getModesHandler(mdsDbus *object, GDBusMethodInvocation
        g_variant_builder_unref(modeListBuilder);
 
        mds_dbus_complete_get_modes(object, invocation, outList, ret);
+
+#ifdef TIZEN_TEST_GCOV
+       __gcov_flush();
+#endif
        return TRUE;
 }
 
index bb562465d1897cdc94b4df6cb0578df952e3d841..120edb6be05ac27772bad202069133a9f26126cd 100644 (file)
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#include <stdlib.h>
 #include <exception>
 #include "mdss.h"
 #include "Supervisor.h"
@@ -24,6 +25,9 @@ using namespace std;
 
 int main(int argc, char **argv)
 {
+#ifdef TIZEN_TEST_GCOV
+       setenv("GCOV_PREFIX", "/opt/usr/daemon", 1);
+#endif
        GMainLoop *loop = g_main_loop_new(NULL, FALSE);
 
        try {