Skip to content

Commit

Permalink
Merge pull request #192 from wazuh/enhancement/17-enable-dbsync-and-d…
Browse files Browse the repository at this point in the history
…ata-provider-unit-tests

Enable dbsync and data provider unit tests
  • Loading branch information
cborla authored Oct 1, 2024
2 parents cb84914 + 59617ca commit 4eaafd1
Show file tree
Hide file tree
Showing 32 changed files with 401 additions and 378 deletions.
22 changes: 12 additions & 10 deletions src/common/data_provider/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -213,17 +213,19 @@ if(APPLE)
$<TARGET_FILE:sysinfo>)
endif(APPLE)

if(UNIT_TEST)
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
target_link_libraries(sysinfo -fprofile-arcs)
else()
target_link_libraries(sysinfo gcov)
endif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")

add_subdirectory(tests)
if(BUILD_TESTS)
if(NOT CMAKE_SYSTEM_NAME STREQUAL "Windows")
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
target_link_libraries(sysinfo PRIVATE -fprofile-arcs)
else()
target_link_libraries(sysinfo PRIVATE gcov)
endif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")

add_subdirectory(tests)
endif(NOT CMAKE_SYSTEM_NAME STREQUAL "Windows")
else()
if(FSANITIZE)
target_link_libraries(sysinfo gcov)
target_link_libraries(sysinfo PRIVATE gcov)
endif(FSANITIZE)
add_subdirectory(testtool)
endif(UNIT_TEST)
endif(BUILD_TESTS)
17 changes: 6 additions & 11 deletions src/common/data_provider/tests/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,15 +1,8 @@
cmake_minimum_required(VERSION 3.12.4)
cmake_minimum_required(VERSION 3.22)

project(unit_tests)

get_filename_component(SRC_FOLDER ${CMAKE_SOURCE_DIR}/../ ABSOLUTE)

include_directories(${CMAKE_SOURCE_DIR})
include_directories(${SRC_FOLDER}/shared_modules/utils)

include_directories(${SRC_FOLDER}/external/googletest/googletest/include/)
include_directories(${SRC_FOLDER}/external/googletest/googlemock/include/)
link_directories(${SRC_FOLDER}/external/googletest/lib/)
find_package(GTest CONFIG REQUIRED)

if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
add_subdirectory(sysInfoPackagesLinuxHelper)
Expand All @@ -36,5 +29,7 @@ else()
string(APPEND CMAKE_EXE_LINKER_FLAGS " -lgcov ")
endif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")

add_subdirectory(sysInfo)
add_subdirectory(sysInfoPorts)
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
add_subdirectory(sysInfo)
add_subdirectory(sysInfoPorts)
endif()
143 changes: 143 additions & 0 deletions src/common/data_provider/tests/mocks/sqliteWrapperTempMock.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
/*
* Wazuh DBSYNC
* Copyright (C) 2015, Wazuh Inc.
* July 31, 2023.
*
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU General Public
* License (version 2) as published by the FSF - Free Software
* Foundation.
*/

#ifndef _SQLITEWRAPPERMOCK_H
#define _SQLITEWRAPPERMOCK_H

#include <gmock/gmock.h>
#include <string>
#include "sqliteWrapperTemp.h"

class MockConnection : public SQLiteLegacy::IConnection
{
public:
MockConnection() = default;
virtual ~MockConnection() = default;
MOCK_METHOD(void,
close,
(),
(override));
MOCK_METHOD(void,
execute,
(const std::string& query),
(override));
MOCK_METHOD(int64_t,
changes,
(),
(const override));
MOCK_METHOD(const std::shared_ptr<sqlite3>&,
db,
(),
(const override));

};

class MockTransaction : public SQLiteLegacy::ITransaction
{
public:
MOCK_METHOD(void,
commit,
(),
(override));
MOCK_METHOD(void,
rollback,
(),
(override));
};

class MockColumn : public SQLiteLegacy::IColumn
{
public:
MOCK_METHOD(bool,
hasValue,
(),
(const override));
MOCK_METHOD(int32_t,
type,
(),
(const override));
MOCK_METHOD(std::string,
name,
(),
(const override));
MOCK_METHOD(int32_t,
value,
(const int32_t&),
(const override));
MOCK_METHOD(uint64_t,
value,
(const uint64_t&),
(const override));
MOCK_METHOD(int64_t,
value,
(const int64_t&),
(const override));
MOCK_METHOD(std::string,
value,
(const std::string&),
(const override));
MOCK_METHOD(double_t,
value,
(const double_t&),
(const override));
};

class MockStatement : public SQLiteLegacy::IStatement
{
public:
MockStatement() = default;
virtual ~MockStatement() = default;
MOCK_METHOD(int32_t,
step,
(),
(override));
MOCK_METHOD(void,
bind,
(const int32_t index, const int32_t value),
(override));
MOCK_METHOD(void,
bind,
(const int32_t index, const uint64_t value),
(override));
MOCK_METHOD(void,
bind,
(const int32_t index, const int64_t value),
(override));
MOCK_METHOD(void,
bind,
(const int32_t index, const std::string& value),
(override));
MOCK_METHOD(void,
bind,
(const int32_t index, const double_t value),
(override));

MOCK_METHOD(std::string,
expand,
(),
(override));

MOCK_METHOD(std::unique_ptr<SQLiteLegacy::IColumn>,
column,
(const int32_t index),
(override));

MOCK_METHOD(void,
reset,
(),
(override));
MOCK_METHOD(int,
columnsCount,
(),
(const override));
};

#endif //_SQLITEWRAPPERMOCK_H
41 changes: 14 additions & 27 deletions src/common/data_provider/tests/sysInfo/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.12.4)
cmake_minimum_required(VERSION 3.22)

project(sysinfo_unit_test)

Expand All @@ -15,36 +15,23 @@ add_executable(sysinfo_unit_test
${sysinfo_UNIT_TEST_SRC}
${SYSINFO_SRC})
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
target_link_libraries(sysinfo_unit_test
debug gtestd
debug gmockd
debug gtest_maind
debug gmock_maind
optimized gtest
optimized gmock
optimized gtest_main
optimized gmock_main
pthread
sqlite3
cjson
target_link_libraries(sysinfo_unit_test PRIVATE
sysinfo
GTest::gtest
GTest::gmock
GTest::gtest_main
GTest::gmock_main
-static-libgcc -static-libstdc++
)
else()
target_link_libraries(sysinfo_unit_test
debug gtestd
debug gmockd
debug gtest_maind
debug gmock_maind
optimized gtest
optimized gmock
optimized gtest_main
optimized gmock_main
pthread
sqlite3
cjson
dl
target_link_libraries(sysinfo_unit_test PRIVATE
sysinfo
GTest::gtest
GTest::gmock
GTest::gtest_main
GTest::gmock_main
)
endif(CMAKE_SYSTEM_NAME STREQUAL "Windows")

add_test(NAME sysinfo_unit_test
COMMAND sysinfo_unit_test)
COMMAND sysinfo_unit_test)
44 changes: 16 additions & 28 deletions src/common/data_provider/tests/sysInfoHardwareMac/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,37 +1,32 @@
cmake_minimum_required(VERSION 3.12.4)
cmake_minimum_required(VERSION 3.22)

project(sysInfoHardwareMac_unit_test)

set(CMAKE_CXX_FLAGS_DEBUG "-g --coverage")

file(GLOB sysinfo_UNIT_TEST_SRC
"${CMAKE_SOURCE_DIR}/src/hardware/*X86_64Mac.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/../../src/hardware/*X86_64Mac.cpp"
"sysInfoHardwareMac_test.cpp"
"sysInfoHardwareWrapperMac_test.cpp"
"main.cpp")

add_executable(sysInfoHardwareMac_unit_test
${sysinfo_UNIT_TEST_SRC})

target_link_libraries(sysInfoHardwareMac_unit_test
debug gtestd
debug gmockd
debug gtest_maind
debug gmock_maind
optimized gtest
optimized gmock
optimized gtest_main
optimized gmock_main
pthread
cjson
target_link_libraries(sysInfoHardwareMac_unit_test PRIVATE
sysinfo
GTest::gtest
GTest::gmock
GTest::gtest_main
GTest::gmock_main
)

add_test(NAME sysInfoHardwareMac_unit_test
COMMAND sysInfoHardwareMac_unit_test)

if(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "arm64.*|ARM64.*")
file(GLOB sysinfo_ARM_UNIT_TEST_SRC
"${CMAKE_SOURCE_DIR}/src/hardware/*ARMMac.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/../../src/hardware/*ARMMac.cpp"
"sysInfoHardwareWrapperARMMac_test.cpp"
"main.cpp")

Expand All @@ -46,20 +41,13 @@ if(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "arm64.*|ARM64.*")
if(NOT corefoundation_lib)
message(FATAL_ERROR "CoreFoundation library not found! Aborting...")
endif()

target_link_libraries(sysInfoHardwareARMMac_unit_test
debug gtestd
debug gmockd
debug gtest_maind
debug gmock_maind
optimized gtest
optimized gmock
optimized gtest_main
optimized gmock_main
pthread
cjson
${iokit_lib}
${corefoundation_lib}

target_link_libraries(sysInfoHardwareARMMac_unit_test PRIVATE
sysinfo
GTest::gtest
GTest::gmock
GTest::gtest_main
GTest::gmock_main
)

add_test(NAME sysInfoHardwareARMMac_unit_test
Expand Down
27 changes: 10 additions & 17 deletions src/common/data_provider/tests/sysInfoNetworkBSD/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.12.4)
cmake_minimum_required(VERSION 3.22)

project(sysInfoNetworkBSD_unit_test)

Expand All @@ -8,25 +8,18 @@ file(GLOB sysinfo_UNIT_TEST_SRC
"*.cpp")

file(GLOB SYSINFO_SRC
"${CMAKE_SOURCE_DIR}/src/network/networkInterfaceBSD.cpp")
"${CMAKE_CURRENT_SOURCE_DIR}/../../src/network/networkInterfaceBSD.cpp")

add_executable(sysInfoNetworkBSD_unit_test
add_executable(sysInfoNetworkBSD_unit_test
${sysinfo_UNIT_TEST_SRC}
${SYSINFO_SRC})

target_link_libraries(sysInfoNetworkBSD_unit_test
debug gtestd
debug gmockd
debug gtest_maind
debug gmock_maind
optimized gtest
optimized gmock
optimized gtest_main
optimized gmock_main
pthread
sqlite3
cjson
dl
target_link_libraries(sysInfoNetworkBSD_unit_test PRIVATE
sysinfo
GTest::gtest
GTest::gmock
GTest::gtest_main
GTest::gmock_main
)
add_test(NAME sysInfoNetworkBSD_unit_test
COMMAND sysInfoNetworkBSD_unit_test)
COMMAND sysInfoNetworkBSD_unit_test)
Loading

0 comments on commit 4eaafd1

Please sign in to comment.