ADD_DEFINITIONS("-fPIC")
+IF (BUILD_GCOV)
+ ADD_DEFINITIONS("-DTIZEN_TEST_GCOV")
+ENDIF (BUILD_GCOV)
+
INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}")
INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/src")
# Suppresse SYSTEM header's warnings:
CXXFLAGS="$CXXFLAGS -Wp,-U_FORTIFY_SOURCE"
%endif
+%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
+
%cmake . -DCMAKE_BUILD_TYPE=%{build_type} \
-DVERSION=%{version} \
-DOSQUERY_VERSION=%{osquery_version} \
-DPLUGIN_INSTALL_DIR:PATH=%{vist_plugin_dir} \
-DTABLE_INSTALL_DIR:PATH=%{vist_table_dir} \
-DSCRIPT_INSTALL_DIR:PATH=%{vist_script_dir} \
- -DSYSTEMD_UNIT_DIR:PATH=%{_unitdir}
+ -DSYSTEMD_UNIT_DIR:PATH=%{_unitdir} \
+ -DBUILD_GCOV=%{?gcov:1}%{!?gcov:0}
make %{?jobs:-j%jobs}
LogStream::Init(std::make_shared<Dlog>());
#endif
+#ifdef TIZEN_TEST_GCOV
+ ::setenv("GCOV_PREFIX", "/tmp", 1);
+#endif
+
Vistd::Instance().Start();
return EXIT_SUCCESS;
int main(int argc, char* argv[])
{
+#ifdef TIZEN_TEST_GCOV
+ ::setenv("GCOV_PREFIX", "/tmp", 1);
+#endif
+
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
#include <utility>
+#ifdef TIZEN_TEST_GCOV
+extern "C" void __gcov_flush();
+#endif
+
namespace vist {
namespace rmi {
namespace impl {
void Connection::send(Message& message)
{
+#ifdef TIZEN_TEST_GCOV
+ __gcov_flush();
+#endif
+
std::lock_guard<std::mutex> lock(this->sendMutex);
message.header.id = this->sequence++;