Add build options for enabling async tests
Asynchronous testcases that requires the event library `libevent` can be built and enabled by using the added build flags: - ENABLE_ASYNC_TESTS when using CMake - TEST_ASYNC when using Make The async tests are disabled by default to avoid adding new requirements, but the testcases are built and run in CI.
This commit is contained in:
parent
c98c6994de
commit
648763c36e
18
.github/workflows/build.yml
vendored
18
.github/workflows/build.yml
vendored
@ -15,17 +15,17 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
sudo add-apt-repository -y ppa:chris-lea/redis-server
|
sudo add-apt-repository -y ppa:chris-lea/redis-server
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y redis-server valgrind
|
sudo apt-get install -y redis-server valgrind libevent-dev
|
||||||
|
|
||||||
- name: Build using cmake
|
- name: Build using cmake
|
||||||
env:
|
env:
|
||||||
EXTRA_CMAKE_OPTS: -DENABLE_EXAMPLES:BOOL=ON -DENABLE_SSL:BOOL=ON -DENABLE_SSL_TESTS:BOOL=ON
|
EXTRA_CMAKE_OPTS: -DENABLE_EXAMPLES:BOOL=ON -DENABLE_SSL:BOOL=ON -DENABLE_SSL_TESTS:BOOL=ON -DENABLE_ASYNC_TESTS:BOOL=ON
|
||||||
CFLAGS: -Werror
|
CFLAGS: -Werror
|
||||||
CXXFLAGS: -Werror
|
CXXFLAGS: -Werror
|
||||||
run: mkdir build-ubuntu && cd build-ubuntu && cmake ..
|
run: mkdir build-ubuntu && cd build-ubuntu && cmake ..
|
||||||
|
|
||||||
- name: Build using makefile
|
- name: Build using makefile
|
||||||
run: USE_SSL=1 make
|
run: USE_SSL=1 TEST_ASYNC=1 make
|
||||||
|
|
||||||
- name: Run tests
|
- name: Run tests
|
||||||
env:
|
env:
|
||||||
@ -53,17 +53,17 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
|
yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
|
||||||
yum -y --enablerepo=remi install redis
|
yum -y --enablerepo=remi install redis
|
||||||
yum -y install gcc gcc-c++ make openssl openssl-devel cmake3 valgrind
|
yum -y install gcc gcc-c++ make openssl openssl-devel cmake3 valgrind libevent-devel
|
||||||
|
|
||||||
- name: Build using cmake
|
- name: Build using cmake
|
||||||
env:
|
env:
|
||||||
EXTRA_CMAKE_OPTS: -DENABLE_EXAMPLES:BOOL=ON -DENABLE_SSL:BOOL=ON -DENABLE_SSL_TESTS:BOOL=ON
|
EXTRA_CMAKE_OPTS: -DENABLE_EXAMPLES:BOOL=ON -DENABLE_SSL:BOOL=ON -DENABLE_SSL_TESTS:BOOL=ON -DENABLE_ASYNC_TESTS:BOOL=ON
|
||||||
CFLAGS: -Werror
|
CFLAGS: -Werror
|
||||||
CXXFLAGS: -Werror
|
CXXFLAGS: -Werror
|
||||||
run: mkdir build-centos7 && cd build-centos7 && cmake3 ..
|
run: mkdir build-centos7 && cd build-centos7 && cmake3 ..
|
||||||
|
|
||||||
- name: Build using Makefile
|
- name: Build using Makefile
|
||||||
run: USE_SSL=1 make
|
run: USE_SSL=1 TEST_ASYNC=1 make
|
||||||
|
|
||||||
- name: Run tests
|
- name: Run tests
|
||||||
env:
|
env:
|
||||||
@ -93,17 +93,17 @@ jobs:
|
|||||||
dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
|
dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
|
||||||
dnf -y module install redis:remi-6.0
|
dnf -y module install redis:remi-6.0
|
||||||
dnf -y group install "Development Tools"
|
dnf -y group install "Development Tools"
|
||||||
dnf -y install openssl-devel cmake valgrind
|
dnf -y install openssl-devel cmake valgrind libevent-devel
|
||||||
|
|
||||||
- name: Build using cmake
|
- name: Build using cmake
|
||||||
env:
|
env:
|
||||||
EXTRA_CMAKE_OPTS: -DENABLE_EXAMPLES:BOOL=ON -DENABLE_SSL:BOOL=ON -DENABLE_SSL_TESTS:BOOL=ON
|
EXTRA_CMAKE_OPTS: -DENABLE_EXAMPLES:BOOL=ON -DENABLE_SSL:BOOL=ON -DENABLE_SSL_TESTS:BOOL=ON -DENABLE_ASYNC_TESTS:BOOL=ON
|
||||||
CFLAGS: -Werror
|
CFLAGS: -Werror
|
||||||
CXXFLAGS: -Werror
|
CXXFLAGS: -Werror
|
||||||
run: mkdir build-centos8 && cd build-centos8 && cmake ..
|
run: mkdir build-centos8 && cd build-centos8 && cmake ..
|
||||||
|
|
||||||
- name: Build using Makefile
|
- name: Build using Makefile
|
||||||
run: USE_SSL=1 make
|
run: USE_SSL=1 TEST_ASYNC=1 make
|
||||||
|
|
||||||
- name: Run tests
|
- name: Run tests
|
||||||
env:
|
env:
|
||||||
|
@ -5,6 +5,7 @@ PROJECT(hiredis)
|
|||||||
OPTION(ENABLE_SSL "Build hiredis_ssl for SSL support" OFF)
|
OPTION(ENABLE_SSL "Build hiredis_ssl for SSL support" OFF)
|
||||||
OPTION(DISABLE_TESTS "If tests should be compiled or not" OFF)
|
OPTION(DISABLE_TESTS "If tests should be compiled or not" OFF)
|
||||||
OPTION(ENABLE_SSL_TESTS "Should we test SSL connections" OFF)
|
OPTION(ENABLE_SSL_TESTS "Should we test SSL connections" OFF)
|
||||||
|
OPTION(ENABLE_ASYNC_TESTS "Should we run all asynchronous API tests" OFF)
|
||||||
|
|
||||||
MACRO(getVersionBit name)
|
MACRO(getVersionBit name)
|
||||||
SET(VERSION_REGEX "^#define ${name} (.+)$")
|
SET(VERSION_REGEX "^#define ${name} (.+)$")
|
||||||
@ -218,11 +219,14 @@ ENDIF()
|
|||||||
IF(NOT DISABLE_TESTS)
|
IF(NOT DISABLE_TESTS)
|
||||||
ENABLE_TESTING()
|
ENABLE_TESTING()
|
||||||
ADD_EXECUTABLE(hiredis-test test.c)
|
ADD_EXECUTABLE(hiredis-test test.c)
|
||||||
|
TARGET_LINK_LIBRARIES(hiredis-test hiredis)
|
||||||
IF(ENABLE_SSL_TESTS)
|
IF(ENABLE_SSL_TESTS)
|
||||||
ADD_DEFINITIONS(-DHIREDIS_TEST_SSL=1)
|
ADD_DEFINITIONS(-DHIREDIS_TEST_SSL=1)
|
||||||
TARGET_LINK_LIBRARIES(hiredis-test hiredis hiredis_ssl)
|
TARGET_LINK_LIBRARIES(hiredis-test hiredis_ssl)
|
||||||
ELSE()
|
ENDIF()
|
||||||
TARGET_LINK_LIBRARIES(hiredis-test hiredis)
|
IF(ENABLE_ASYNC_TESTS)
|
||||||
|
ADD_DEFINITIONS(-DHIREDIS_TEST_ASYNC=1)
|
||||||
|
TARGET_LINK_LIBRARIES(hiredis-test event)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
ADD_TEST(NAME hiredis-test
|
ADD_TEST(NAME hiredis-test
|
||||||
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/test.sh)
|
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/test.sh)
|
||||||
|
6
Makefile
6
Makefile
@ -75,6 +75,9 @@ USE_SSL?=0
|
|||||||
ifeq ($(USE_SSL),1)
|
ifeq ($(USE_SSL),1)
|
||||||
export CFLAGS+=-DHIREDIS_TEST_SSL
|
export CFLAGS+=-DHIREDIS_TEST_SSL
|
||||||
endif
|
endif
|
||||||
|
ifeq ($(TEST_ASYNC),1)
|
||||||
|
export CFLAGS+=-DHIREDIS_TEST_ASYNC
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(uname_S),Linux)
|
ifeq ($(uname_S),Linux)
|
||||||
ifdef OPENSSL_PREFIX
|
ifdef OPENSSL_PREFIX
|
||||||
@ -211,6 +214,9 @@ ifeq ($(USE_SSL),1)
|
|||||||
TEST_LIBS += $(SSL_STLIBNAME)
|
TEST_LIBS += $(SSL_STLIBNAME)
|
||||||
TEST_LDFLAGS = $(SSL_LDFLAGS) -lssl -lcrypto -lpthread
|
TEST_LDFLAGS = $(SSL_LDFLAGS) -lssl -lcrypto -lpthread
|
||||||
endif
|
endif
|
||||||
|
ifeq ($(TEST_ASYNC),1)
|
||||||
|
TEST_LDFLAGS += -levent
|
||||||
|
endif
|
||||||
|
|
||||||
hiredis-test: test.o $(TEST_LIBS)
|
hiredis-test: test.o $(TEST_LIBS)
|
||||||
$(CC) -o $@ $(REAL_CFLAGS) -I. $^ $(REAL_LDFLAGS) $(TEST_LDFLAGS)
|
$(CC) -o $@ $(REAL_CFLAGS) -I. $^ $(REAL_LDFLAGS) $(TEST_LDFLAGS)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user