Skip to content
Snippets Groups Projects
Commit 8014e68c authored by Sergey Yakubov's avatar Sergey Yakubov
Browse files

fix

parent 770df04c
No related branches found
No related tags found
No related merge requests found
...@@ -36,8 +36,6 @@ function(gtest target test_source_files linktarget) ...@@ -36,8 +36,6 @@ function(gtest target test_source_files linktarget)
ENDIF (WIN32 AND ${CMAKE_BUILD_TYPE} STREQUAL "Debug") ENDIF (WIN32 AND ${CMAKE_BUILD_TYPE} STREQUAL "Debug")
target_link_libraries(test-${target} ${GTEST_LIBS} ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries(test-${target} ${GTEST_LIBS} ${CMAKE_THREAD_LIBS_INIT})
add_test(NAME test-${target} COMMAND test-${target}) add_test(NAME test-${target} COMMAND test-${target})
set_tests_properties(test-${target} PROPERTIES LABELS "unit;all") set_tests_properties(test-${target} PROPERTIES LABELS "unit;all")
...@@ -46,7 +44,7 @@ function(gtest target test_source_files linktarget) ...@@ -46,7 +44,7 @@ function(gtest target test_source_files linktarget)
if (CMAKE_COMPILER_IS_GNUCXX) if (CMAKE_COMPILER_IS_GNUCXX)
include(CodeCoverage) include(CodeCoverage)
APPEND_COVERAGE_COMPILER_FLAGS() APPEND_COVERAGE_COMPILER_FLAGS()
set(COVERAGE_EXCLUDES '*/unittests/*') set(COVERAGE_EXCLUDES "*/unittests/*" "*/3d_party/*" )
if (ARGN) if (ARGN)
set(COVERAGE_EXCLUDES ${COVERAGE_EXCLUDES} ${ARGN}) set(COVERAGE_EXCLUDES ${COVERAGE_EXCLUDES} ${ARGN})
endif() endif()
......
...@@ -2,8 +2,6 @@ add_subdirectory(src/system_io) ...@@ -2,8 +2,6 @@ add_subdirectory(src/system_io)
add_subdirectory(src/data_structs) add_subdirectory(src/data_structs)
add_subdirectory(unittests/data_structs)
if(BUILD_MONGODB_CLIENTLIB) if(BUILD_MONGODB_CLIENTLIB)
add_subdirectory(src/database) add_subdirectory(src/database)
......
...@@ -11,7 +11,7 @@ namespace hidra2 { ...@@ -11,7 +11,7 @@ namespace hidra2 {
class MockIO : public IO { class MockIO : public IO {
public: public:
FileData GetDataFromFile(const std::string& fname, uint64_t fsize, IOErrors* err) const noexcept override { FileData GetDataFromFile(const std::string& fname, uint64_t fsize, IOErrors* err) const noexcept override {
return GetDataFromFile_t(fname, fsize, err); return FileData{GetDataFromFile_t(fname, fsize, err)};
} }
int open(const char* __file, int __oflag) const noexcept override { int open(const char* __file, int __oflag) const noexcept override {
return 0; return 0;
...@@ -24,7 +24,7 @@ class MockIO : public IO { ...@@ -24,7 +24,7 @@ class MockIO : public IO {
} }
MOCK_CONST_METHOD3(GetDataFromFile_t, MOCK_CONST_METHOD3(GetDataFromFile_t,
FileData(const std::string& fname, uint64_t fsize, IOErrors* err)); uint8_t*(const std::string& fname, uint64_t fsize, IOErrors* err));
MOCK_CONST_METHOD2(FilesInFolder, MOCK_CONST_METHOD2(FilesInFolder,
FileInfos( FileInfos(
const std::string& folder, IOErrors const std::string& folder, IOErrors
......
...@@ -10,3 +10,13 @@ set(SOURCE_FILES ...@@ -10,3 +10,13 @@ set(SOURCE_FILES
add_library(${TARGET_NAME} OBJECT ${SOURCE_FILES}) add_library(${TARGET_NAME} OBJECT ${SOURCE_FILES})
target_include_directories(${TARGET_NAME} PUBLIC ${HIDRA2_CXX_COMMON_INCLUDE_DIR} target_include_directories(${TARGET_NAME} PUBLIC ${HIDRA2_CXX_COMMON_INCLUDE_DIR}
${CMAKE_SOURCE_DIR}/3d_party/rapidjson/include) ${CMAKE_SOURCE_DIR}/3d_party/rapidjson/include)
################################
# Testing
################################
set(TEST_SOURCE_FILES ../../unittests/data_structs/test_data_structs.cpp)
set(TEST_LIBRARIES "${TARGET_NAME}")
include_directories(${HIDRA2_CXX_COMMON_INCLUDE_DIR})
gtest(${TARGET_NAME} "${TEST_SOURCE_FILES}" "${TEST_LIBRARIES}")
...@@ -36,8 +36,10 @@ bool TimeFromJson(const Document& d, const std::string name, std::chrono::system ...@@ -36,8 +36,10 @@ bool TimeFromJson(const Document& d, const std::string name, std::chrono::system
return false; return false;
} }
*val = std::chrono::time_point<std::chrono::system_clock> std::chrono::nanoseconds ns = std::chrono::nanoseconds {nanoseconds_from_epoch};
(std::chrono::nanoseconds(nanoseconds_from_epoch)); *val = std::chrono::system_clock::time_point
{std::chrono::duration_cast<std::chrono::system_clock::duration>(ns)};
return true; return true;
} }
......
set(TARGET_NAME data_structs)
################################
# Testing
################################
set(TEST_SOURCE_FILES test_data_structs.cpp)
set(TEST_LIBRARIES "${TARGET_NAME}")
include_directories(${HIDRA2_CXX_COMMON_INCLUDE_DIR})
gtest(${TARGET_NAME} "${TEST_SOURCE_FILES}" "${TEST_LIBRARIES}")
...@@ -32,18 +32,18 @@ WorkerErrorCode ServerDataBroker::GetNext(FileInfo* info, FileData* data) { ...@@ -32,18 +32,18 @@ WorkerErrorCode ServerDataBroker::GetNext(FileInfo* info, FileData* data) {
return WorkerErrorCode::kErrorReadingSource; return WorkerErrorCode::kErrorReadingSource;
} }
if (info!= nullptr){ if (info != nullptr) {
*info = file_info; *info = file_info;
} }
if (data == nullptr){ if (data == nullptr) {
return WorkerErrorCode::kOK; return WorkerErrorCode::kOK;
} }
IOErrors ioerr; IOErrors ioerr;
*data = io__->GetDataFromFile(file_info.relative_path + *data = io__->GetDataFromFile(file_info.relative_path +
(file_info.relative_path.empty() ? "" : "/") + (file_info.relative_path.empty() ? "" : "/") +
file_info.base_name, file_info.size, &ioerr); file_info.base_name, file_info.size, &ioerr);
return hidra2::MapIOError(ioerr); return hidra2::MapIOError(ioerr);
} }
......
...@@ -72,15 +72,16 @@ TEST_F(ServerDataBrokerTests, GetNextReturnsErrorOnWrongInput) { ...@@ -72,15 +72,16 @@ TEST_F(ServerDataBrokerTests, GetNextReturnsErrorOnWrongInput) {
} }
TEST_F(ServerDataBrokerTests, GetNextUsesCorrectUri) { TEST_F(ServerDataBrokerTests, GetNextUsesCorrectUri) {
EXPECT_CALL(mock_http_client, Get("test/next?database=database", _)); EXPECT_CALL(mock_http_client, Get("test/next?database=database", _)).WillOnce(DoAll(
SetArgPointee<1>(WorkerErrorCode::kOK),
Return("")));
data_broker->GetNext(&info, nullptr); data_broker->GetNext(&info, nullptr);
} }
TEST_F(ServerDataBrokerTests, GetNextReturnsErrorFromHttpClient) { TEST_F(ServerDataBrokerTests, GetNextReturnsErrorFromHttpClient) {
EXPECT_CALL(mock_http_client, Get(_, _)).WillOnce(DoAll( EXPECT_CALL(mock_http_client, Get(_, _)).WillOnce(DoAll(
SetArgPointee<1>(WorkerErrorCode::kSourceNotFound), SetArgPointee<1>(WorkerErrorCode::kSourceNotFound),
Return("") Return("")));
));
auto err = data_broker->GetNext(&info, nullptr); auto err = data_broker->GetNext(&info, nullptr);
...@@ -88,7 +89,7 @@ TEST_F(ServerDataBrokerTests, GetNextReturnsErrorFromHttpClient) { ...@@ -88,7 +89,7 @@ TEST_F(ServerDataBrokerTests, GetNextReturnsErrorFromHttpClient) {
} }
FileInfo CreateFI(){ FileInfo CreateFI() {
FileInfo fi; FileInfo fi;
fi.size = 100; fi.size = 100;
fi.id = 1; fi.id = 1;
...@@ -99,7 +100,7 @@ FileInfo CreateFI(){ ...@@ -99,7 +100,7 @@ FileInfo CreateFI(){
} }
TEST_F(ServerDataBrokerTests, GetNextReturnsFileInfo) { TEST_F(ServerDataBrokerTests, GetNextReturnsFileInfo) {
auto to_send =CreateFI(); auto to_send = CreateFI();
auto json = to_send.Json(); auto json = to_send.Json();
EXPECT_CALL(mock_http_client, Get(_, _)).WillOnce(DoAll( EXPECT_CALL(mock_http_client, Get(_, _)).WillOnce(DoAll(
SetArgPointee<1>(WorkerErrorCode::kOK), SetArgPointee<1>(WorkerErrorCode::kOK),
...@@ -142,15 +143,16 @@ TEST_F(ServerDataBrokerTests, GetNextReturnsIfNoDtataNeeded) { ...@@ -142,15 +143,16 @@ TEST_F(ServerDataBrokerTests, GetNextReturnsIfNoDtataNeeded) {
TEST_F(ServerDataBrokerTests, GetNextCallsReadFromFile) { TEST_F(ServerDataBrokerTests, GetNextCallsReadFromFile) {
auto to_send =CreateFI(); auto to_send = CreateFI();
auto json = to_send.Json(); auto json = to_send.Json();
EXPECT_CALL(mock_http_client, Get(_, _)).WillOnce(DoAll( EXPECT_CALL(mock_http_client, Get(_, _)).WillOnce(DoAll(
SetArgPointee<1>(WorkerErrorCode::kOK), SetArgPointee<1>(WorkerErrorCode::kOK),
Return(json))); Return(json)));
EXPECT_CALL(mock_io, GetDataFromFile_t("relative_path/base_name",100, _)); EXPECT_CALL(mock_io, GetDataFromFile_t("relative_path/base_name", 100, _)).
WillOnce(DoAll(SetArgPointee<2>(IOErrors::kReadError), testing::Return(nullptr)));
FileData data; FileData data;
data_broker->GetNext(&info, &data); data_broker->GetNext(&info, &data);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment