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)
ENDIF (WIN32 AND ${CMAKE_BUILD_TYPE} STREQUAL "Debug")
target_link_libraries(test-${target} ${GTEST_LIBS} ${CMAKE_THREAD_LIBS_INIT})
add_test(NAME test-${target} COMMAND test-${target})
set_tests_properties(test-${target} PROPERTIES LABELS "unit;all")
......@@ -46,7 +44,7 @@ function(gtest target test_source_files linktarget)
if (CMAKE_COMPILER_IS_GNUCXX)
include(CodeCoverage)
APPEND_COVERAGE_COMPILER_FLAGS()
set(COVERAGE_EXCLUDES '*/unittests/*')
set(COVERAGE_EXCLUDES "*/unittests/*" "*/3d_party/*" )
if (ARGN)
set(COVERAGE_EXCLUDES ${COVERAGE_EXCLUDES} ${ARGN})
endif()
......
......@@ -2,8 +2,6 @@ add_subdirectory(src/system_io)
add_subdirectory(src/data_structs)
add_subdirectory(unittests/data_structs)
if(BUILD_MONGODB_CLIENTLIB)
add_subdirectory(src/database)
......
......@@ -11,7 +11,7 @@ namespace hidra2 {
class MockIO : public IO {
public:
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 {
return 0;
......@@ -24,7 +24,7 @@ class MockIO : public IO {
}
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,
FileInfos(
const std::string& folder, IOErrors
......
......@@ -10,3 +10,13 @@ set(SOURCE_FILES
add_library(${TARGET_NAME} OBJECT ${SOURCE_FILES})
target_include_directories(${TARGET_NAME} PUBLIC ${HIDRA2_CXX_COMMON_INCLUDE_DIR}
${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
return false;
}
*val = std::chrono::time_point<std::chrono::system_clock>
(std::chrono::nanoseconds(nanoseconds_from_epoch));
std::chrono::nanoseconds ns = 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;
}
......
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) {
return WorkerErrorCode::kErrorReadingSource;
}
if (info!= nullptr){
if (info != nullptr) {
*info = file_info;
}
if (data == nullptr){
if (data == nullptr) {
return WorkerErrorCode::kOK;
}
IOErrors ioerr;
*data = io__->GetDataFromFile(file_info.relative_path +
(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);
}
......
......@@ -72,15 +72,16 @@ TEST_F(ServerDataBrokerTests, GetNextReturnsErrorOnWrongInput) {
}
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);
}
TEST_F(ServerDataBrokerTests, GetNextReturnsErrorFromHttpClient) {
EXPECT_CALL(mock_http_client, Get(_, _)).WillOnce(DoAll(
SetArgPointee<1>(WorkerErrorCode::kSourceNotFound),
Return("")
));
Return("")));
auto err = data_broker->GetNext(&info, nullptr);
......@@ -88,7 +89,7 @@ TEST_F(ServerDataBrokerTests, GetNextReturnsErrorFromHttpClient) {
}
FileInfo CreateFI(){
FileInfo CreateFI() {
FileInfo fi;
fi.size = 100;
fi.id = 1;
......@@ -99,7 +100,7 @@ FileInfo CreateFI(){
}
TEST_F(ServerDataBrokerTests, GetNextReturnsFileInfo) {
auto to_send =CreateFI();
auto to_send = CreateFI();
auto json = to_send.Json();
EXPECT_CALL(mock_http_client, Get(_, _)).WillOnce(DoAll(
SetArgPointee<1>(WorkerErrorCode::kOK),
......@@ -142,15 +143,16 @@ TEST_F(ServerDataBrokerTests, GetNextReturnsIfNoDtataNeeded) {
TEST_F(ServerDataBrokerTests, GetNextCallsReadFromFile) {
auto to_send =CreateFI();
auto to_send = CreateFI();
auto json = to_send.Json();
EXPECT_CALL(mock_http_client, Get(_, _)).WillOnce(DoAll(
SetArgPointee<1>(WorkerErrorCode::kOK),
Return(json)));
SetArgPointee<1>(WorkerErrorCode::kOK),
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;
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