summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Brewer <jzb0012@auburn.edu>2019-01-21 13:56:59 -0600
committerMark Nunberg <mnunberg@haskalah.org>2019-02-20 05:01:09 -0500
commit58d0e283331e778b11f4104d8cb4e8d5d7d9aa09 (patch)
tree6133825564f8cbae8bb9c775dbc11b1eaae23491
parent9ea7ddec0c8b83cb38ce41477116f31614d6623e (diff)
Enable make test
Signed-off-by: Justin Brewer <jzb0012@auburn.edu>
-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}