Fix building tests on Win32.

They don't pass, but at least they build and sort of run.
pull/2119/head
John Ralls 7 months ago
parent deded46806
commit 54664359dc

@ -204,8 +204,11 @@ if (WIN32)
set(REGEX_LDFLAGS "-L${REGEX_LIB_PATH} -lregex")
#set(LIBXSLT_INCLUDE_DIR ${CMAKE_PREFIX_PATH}/libxslt/include)
#set(LIBXSLT_XSLTPROC_EXECUTABLE ${CMAKE_PREFIX_PATH}/libxslt/bin/xsltproc)
#Prevent creating a console window on startup and harden the executable.
#Prevent creating a console window on startup and harden the executable.
set(CMAKE_EXE_LINKER_FLAGS "-mwindows -Wl,--nxcompat -Wl,--dynamicbase")
#Find the winsock2 library
find_library(WINSOCK_LIB wsock32)
find_library(WS2_LIB ws2_32)
endif()
find_package(Threads REQUIRED)

@ -100,6 +100,9 @@ function(gnc_add_test _TARGET _SOURCE_FILES TEST_INCLUDE_VAR_NAME TEST_LIBS_VAR_
endif()
add_executable(${_TARGET} EXCLUDE_FROM_ALL ${_SOURCE_FILES})
target_link_libraries(${_TARGET} PRIVATE ${TEST_LIBS})
if (MINGW)
target_link_options(${_TARGET} PRIVATE -mconsole)
endif()
target_include_directories(${_TARGET} PRIVATE ${TEST_INCLUDE_DIRS})
set_tests_properties(${_TARGET} PROPERTIES ENVIRONMENT "${ENVVARS}$<$<CONFIG:Asan>:;ASAN_OPTIONS=${ASAN_TEST_OPTIONS}>")
add_dependencies(testbuild ${_TARGET})

@ -42,6 +42,7 @@ set(gtest_import_backend_INCLUDE_DIRS
${CMAKE_SOURCE_DIR}/libgnucash/engine/mocks
${GTEST_INCLUDE_DIR}
${GMOCK_INCLUDE_DIR}
${CMAKE_SOURCE_DIR}/borrowed/libc # for strptime.h
)
set(gtest_import_backend_LIBS
@ -73,8 +74,14 @@ set(gtest_import_backend_SOURCES
${CMAKE_SOURCE_DIR}/libgnucash/engine/gnc-datetime.cpp
${CMAKE_SOURCE_DIR}/libgnucash/engine/gnc-timezone.cpp
${CMAKE_SOURCE_DIR}/libgnucash/core-utils/gnc-locale-utils.cpp
$<$<BOOL:${WIN32}>:${CMAKE_SOURCE_DIR}/libgnucash/engine/qof-win32.cpp>
$<$<BOOL:${WIN32}>:${CMAKE_SOURCE_DIR}/borrowed/libc/strptime.c>
)
if (WIN32)
add_definitions(-DOS_WIN32)
endif()
gnc_add_test(test-import-backend "${gtest_import_backend_SOURCES}"
gtest_import_backend_INCLUDE_DIRS gtest_import_backend_LIBS)

@ -47,7 +47,10 @@ set(test_gnc_quotes_LIBS
${Boost_LOCALE_LIBRARY}
${Boost_PROPERTY_TREE_LIBRARY}
${Boost_SYSTEM_LIBRARY}
)
$<$<BOOL:${WIN32}>:${WINSOCK_LIB}>
$<$<BOOL:${WIN32}>:${WS2_LIB}>
)
gnc_add_test(test-gnc-quotes "${test_gnc_quotes_SOURCES}" test_gnc_quotes_INCLUDES test_gnc_quotes_LIBS
"GTEST_FILTER=-GncQuotesTest.online_wiggle")

@ -9,7 +9,16 @@ set(BACKEND_DBI_TEST_INCLUDE_DIRS
${CMAKE_SOURCE_DIR}/common/test-core
${LIBDBI_INCLUDE_PATH}
)
set(BACKEND_DBI_TEST_LIBS gnc-backend-sql gnc-engine gnc-test-engine test-core ${Boost_REGEX_LIBRARY} ${LIBDBI_LIBRARY})
set(BACKEND_DBI_TEST_LIBS
gnc-backend-sql
gnc-engine
gnc-test-engine
test-core
${Boost_REGEX_LIBRARY}
${LIBDBI_LIBRARY}
$<$<BOOL:${WIN32}>:${WINSOCK_LIB}>
$<$<BOOL:${WIN32}>:${WS2_LIB}>
)
set(test_dbi_backend_SOURCES
test-backend-dbi.cpp
@ -26,7 +35,7 @@ set(test_dbi_backend_HEADERS test-dbi-business-stuff.h test-dbi-stuff.h)
set_dist_list(test_dbi_backend_DIST ${test_dbi_backend_SOURCES} ${test_dbi_backend_HEADERS} test-dbi.xml CMakeLists.txt )
# This test does not work on Win32
if (WITH_SQL AND NOT WIN32)
if (WITH_SQL)
gnc_add_test(test-backend-dbi "${test_dbi_backend_SOURCES}"
BACKEND_DBI_TEST_INCLUDE_DIRS BACKEND_DBI_TEST_LIBS
)

@ -96,7 +96,7 @@ TEST_F(LoadFile, LoadAndVerifyKVP)
// THE FOLLOWING TESTS BANK ACCOUNT
const auto& bank_splitlist = xaccAccountGetSplits (bank_acct);
ASSERT_EQ (bank_splitlist.size(), static_cast<uint>(4));
ASSERT_EQ (bank_splitlist.size(), static_cast<uint32_t>(4));
// first split is from a regular transaction
auto bank_reg_split{bank_splitlist[0]};
@ -168,7 +168,7 @@ TEST_F(LoadFile, LoadAndVerifyKVP)
ASSERT_TRUE (AR_acct != nullptr);
const auto& AR_splitlist{xaccAccountGetSplits (AR_acct)};
ASSERT_EQ (AR_splitlist.size(), static_cast<uint>(3));
ASSERT_EQ (AR_splitlist.size(), static_cast<uint32_t>(3));
// 1st split is invoice posting txn
auto inv_post_txn{xaccSplitGetParent(AR_splitlist[0])};
@ -195,7 +195,7 @@ TEST_F(LoadFile, LoadAndVerifyKVP)
ASSERT_TRUE (close_acct != nullptr);
const auto& close_splitlist{xaccAccountGetSplits (close_acct)};
ASSERT_EQ (close_splitlist.size(), static_cast<uint>(1));
ASSERT_EQ (close_splitlist.size(), static_cast<uint32_t>(1));
// 3rd split is a closing txn
auto closing_txn{xaccSplitGetParent(close_splitlist[0])};

Loading…
Cancel
Save