summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt4
-rwxr-xr-xtest.sh25
2 files changed, 27 insertions, 2 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2ef322a..51020ee 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -46,12 +46,12 @@ INSTALL(FILES hiredis.h read.h sds.h async.h
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/hiredis.pc
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
-# Add tests: Currently, I don't know how to make the tests actually run
-# without hanging!
ENABLE_TESTING()
ADD_EXECUTABLE(hiredis-test
test.c)
TARGET_LINK_LIBRARIES(hiredis-test hiredis)
+ADD_TEST(NAME hiredis-test
+ COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/test.sh)
# Add examples
IF(ENABLE_EXAMPLES)
diff --git a/test.sh b/test.sh
new file mode 100755
index 0000000..8dce61b
--- /dev/null
+++ b/test.sh
@@ -0,0 +1,25 @@
+#!/bin/sh -ue
+
+REDIS_SERVER=${REDIS_SERVER:-redis-server}
+REDIS_PORT=${REDIS_PORT:-56379}
+
+tmpdir=$(mktemp -d)
+PID_FILE=${tmpdir}/hiredis-test-redis.pid
+SOCK_FILE=${tmpdir}/hiredis-test-redis.sock
+
+cleanup() {
+ set +e
+ kill $(cat ${PID_FILE})
+ rm -rf ${tmpdir}
+}
+trap cleanup INT TERM EXIT
+
+${REDIS_SERVER} - <<EOF
+daemonize yes
+pidfile ${PID_FILE}
+port ${REDIS_PORT}
+bind 127.0.0.1
+unixsocket ${SOCK_FILE}
+EOF
+
+./hiredis-test -h 127.0.0.1 -p ${REDIS_PORT} -s ${SOCK_FILE}