summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorMichael Grunder <michael.grunder@gmail.com>2020-04-02 22:41:34 -0700
committerGitHub <noreply@github.com>2020-04-02 22:41:34 -0700
commitcc9d03297177eb8504c7353db673b9dc6f64ea07 (patch)
treeae3711309b9f25b40611f125b029314bff1c7b70 /CMakeLists.txt
parentec18d790f165da1b2e7528828518a3034aa74b9c (diff)
Win32 tests and timeout fix (#776)
Unit tests in Windows and a Windows timeout fix This commit gets our unit tests compiling and running on Windows as well as removes a duplicated `timeval` -> `DWORD` conversion logic in sockcompat.c There are minor differences in behavior between Linux and Windows to note: 1. In Windows, opening a non-existent hangs forever in WSAPoll whereas it correctly returns with a "Connection refused" error on Linux. For that reason, I simply skip this test in Windows. It may be related to this known issue: https://daniel.haxx.se/blog/2012/10/10/wsapoll-is-broken/ 2. Timeouts are handled slightly differently in Windows and Linux. In Linux, we intentionally set REDIS_ERR_IO for connection timeouts whereas in Windows we set REDIS_ERR_TIMEOUT. It may be prudent to fix this discrepancy although there are almost certainly users relying on the current behavior.
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt11
1 files changed, 2 insertions, 9 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 564c138..48e5920 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -33,17 +33,10 @@ SET(hiredis_sources
sockcompat.c
alloc.c)
-IF(WIN32)
- SET(hiredis_sources
- ${hiredis_sources}
- hiredis.def
- )
-ENDIF()
-
ADD_LIBRARY(hiredis SHARED ${hiredis_sources})
SET_TARGET_PROPERTIES(hiredis
- PROPERTIES
+ PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE
VERSION "${HIREDIS_SONAME}")
IF(WIN32 OR MINGW)
TARGET_LINK_LIBRARIES(hiredis PRIVATE ws2_32)
@@ -87,7 +80,7 @@ IF(ENABLE_SSL)
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
ENDIF()
-IF(NOT (DISABLE_TESTS OR (WIN32 OR MINGW)))
+IF(NOT DISABLE_TESTS)
ENABLE_TESTING()
ADD_EXECUTABLE(hiredis-test test.c)
TARGET_LINK_LIBRARIES(hiredis-test hiredis)