mirror of
https://github.com/civetweb/civetweb
synced 2025-03-28 21:13:27 +00:00
Run unittests
Signed-off-by: yubiuser <github@yubiuser.dev>
This commit is contained in:
parent
dbcf24552d
commit
2a306508b5
112
.github/workflows/cibuild.yml
vendored
112
.github/workflows/cibuild.yml
vendored
@ -37,6 +37,7 @@ jobs:
|
|||||||
ENABLE_DUKTAPE: NO
|
ENABLE_DUKTAPE: NO
|
||||||
NO_CACHING: NO
|
NO_CACHING: NO
|
||||||
ALLOW_WARNINGS: YES
|
ALLOW_WARNINGS: YES
|
||||||
|
RUN_UNITTEST: 1
|
||||||
|
|
||||||
- os: ubuntu-latest
|
- os: ubuntu-latest
|
||||||
compiler: clang
|
compiler: clang
|
||||||
@ -62,6 +63,7 @@ jobs:
|
|||||||
ENABLE_DUKTAPE: NO
|
ENABLE_DUKTAPE: NO
|
||||||
NO_CACHING: NO
|
NO_CACHING: NO
|
||||||
ALLOW_WARNINGS: YES
|
ALLOW_WARNINGS: YES
|
||||||
|
RUN_UNITTEST: 1
|
||||||
|
|
||||||
- os: ubuntu-latest
|
- os: ubuntu-latest
|
||||||
compiler: gcc
|
compiler: gcc
|
||||||
@ -139,6 +141,7 @@ jobs:
|
|||||||
ENABLE_DUKTAPE: NO
|
ENABLE_DUKTAPE: NO
|
||||||
NO_CACHING: NO
|
NO_CACHING: NO
|
||||||
ALLOW_WARNINGS: YES
|
ALLOW_WARNINGS: YES
|
||||||
|
RUN_UNITTEST: 1
|
||||||
|
|
||||||
- os: ubuntu-latest
|
- os: ubuntu-latest
|
||||||
compiler: gcc
|
compiler: gcc
|
||||||
@ -163,6 +166,7 @@ jobs:
|
|||||||
ENABLE_DUKTAPE: NO
|
ENABLE_DUKTAPE: NO
|
||||||
NO_CACHING: NO
|
NO_CACHING: NO
|
||||||
ALLOW_WARNINGS: YES
|
ALLOW_WARNINGS: YES
|
||||||
|
RUN_UNITTEST: 1
|
||||||
|
|
||||||
- os: ubuntu-latest
|
- os: ubuntu-latest
|
||||||
compiler: gcc
|
compiler: gcc
|
||||||
@ -187,6 +191,7 @@ jobs:
|
|||||||
ENABLE_DUKTAPE: NO
|
ENABLE_DUKTAPE: NO
|
||||||
NO_CACHING: NO
|
NO_CACHING: NO
|
||||||
ALLOW_WARNINGS: YES
|
ALLOW_WARNINGS: YES
|
||||||
|
RUN_UNITTEST: 1
|
||||||
|
|
||||||
- os: ubuntu-latest
|
- os: ubuntu-latest
|
||||||
compiler: gcc
|
compiler: gcc
|
||||||
@ -211,6 +216,7 @@ jobs:
|
|||||||
ENABLE_DUKTAPE: NO
|
ENABLE_DUKTAPE: NO
|
||||||
NO_CACHING: NO
|
NO_CACHING: NO
|
||||||
ALLOW_WARNINGS: YES
|
ALLOW_WARNINGS: YES
|
||||||
|
RUN_UNITTEST: 1
|
||||||
|
|
||||||
- os: ubuntu-latest
|
- os: ubuntu-latest
|
||||||
compiler: gcc
|
compiler: gcc
|
||||||
@ -235,6 +241,7 @@ jobs:
|
|||||||
ENABLE_DUKTAPE: NO
|
ENABLE_DUKTAPE: NO
|
||||||
NO_CACHING: NO
|
NO_CACHING: NO
|
||||||
ALLOW_WARNINGS: YES
|
ALLOW_WARNINGS: YES
|
||||||
|
RUN_UNITTEST: 1
|
||||||
|
|
||||||
- os: ubuntu-latest
|
- os: ubuntu-latest
|
||||||
compiler: gcc
|
compiler: gcc
|
||||||
@ -261,8 +268,9 @@ jobs:
|
|||||||
ALLOW_WARNINGS: YES
|
ALLOW_WARNINGS: YES
|
||||||
RUN_UNITTEST: 1
|
RUN_UNITTEST: 1
|
||||||
|
|
||||||
# Remove Lua build, until someone knows how to fix the CMake files
|
# Disable Lua build, until someone knows how to fix the CMake files
|
||||||
# - os: ubuntu-latest
|
# see https://github.com/civetweb/civetweb/issues/543
|
||||||
|
# - os: ubuntu-lastest
|
||||||
# compiler: clang
|
# compiler: clang
|
||||||
# env:
|
# env:
|
||||||
# idx: 99
|
# idx: 99
|
||||||
@ -286,6 +294,7 @@ jobs:
|
|||||||
# ENABLE_DUKTAPE: NO
|
# ENABLE_DUKTAPE: NO
|
||||||
# NO_CACHING: YES
|
# NO_CACHING: YES
|
||||||
# ALLOW_WARNINGS: YES
|
# ALLOW_WARNINGS: YES
|
||||||
|
# RUN_UNITTEST: 1
|
||||||
|
|
||||||
- os: macos-latest
|
- os: macos-latest
|
||||||
compiler: clang
|
compiler: clang
|
||||||
@ -313,7 +322,10 @@ jobs:
|
|||||||
ALLOW_WARNINGS: YES
|
ALLOW_WARNINGS: YES
|
||||||
RUN_UNITTEST: 1
|
RUN_UNITTEST: 1
|
||||||
|
|
||||||
- os: macos-latest
|
# mac-os 13 is the last version of MacOS runner using x86_64 architecture
|
||||||
|
# mac-os 14 and later are using arm64 architecture
|
||||||
|
# but OpenSSL 1.0 can't compile on arm64, so we set it fixed to mac-os 13
|
||||||
|
- os: macos-13
|
||||||
compiler: clang
|
compiler: clang
|
||||||
env:
|
env:
|
||||||
idx: 11
|
idx: 11
|
||||||
@ -338,6 +350,7 @@ jobs:
|
|||||||
NO_CACHING: NO
|
NO_CACHING: NO
|
||||||
ALLOW_WARNINGS: YES
|
ALLOW_WARNINGS: YES
|
||||||
MACOSX_PACKAGE: 1
|
MACOSX_PACKAGE: 1
|
||||||
|
RUN_UNITTEST: 1
|
||||||
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
@ -351,11 +364,37 @@ jobs:
|
|||||||
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/clang 100
|
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/clang 100
|
||||||
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++ 100
|
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++ 100
|
||||||
|
|
||||||
- name: Set up OpenSSL 1.1 on MacOS
|
- name: Install OpenSSL 1.0 on modern MacOS
|
||||||
|
# Needed for recent versions of MacOS as they ship with OpenSSL 1.1 by default
|
||||||
|
if: matrix.os == 'macos-13' && matrix.env.OPENSSL_1_0 == 'YES'
|
||||||
|
run: |
|
||||||
|
curl -O -L https://openssl.org/source/old/1.0.2/openssl-1.0.2u.tar.gz
|
||||||
|
tar -xzf openssl-1.0.2u.tar.gz
|
||||||
|
cd openssl-1.0.2u
|
||||||
|
./Configure --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared shared darwin64-x86_64-cc
|
||||||
|
#make depend
|
||||||
|
make -j $(nproc)
|
||||||
|
sudo make install_sw -j $(nproc)
|
||||||
|
|
||||||
|
OPENSSL_ROOT_DIR=/usr/local/ssl
|
||||||
|
LDFLAGS=-L${OPENSSL_ROOT_DIR}/lib
|
||||||
|
CFLAGS=-I${OPENSSL_ROOT_DIR}/include
|
||||||
|
ADDITIONAL_CMAKE_ARGS="-DCMAKE_SHARED_LINKER_FLAGS=${LDFLAGS} -DMAKE_C_FLAGS=${CFLAGS}"
|
||||||
|
PKG_CONFIG_PATH=${OPENSSL_ROOT_DIR}/lib/pkgconfig
|
||||||
|
|
||||||
|
echo "LDFLAGS=${LDFLAGS}" >> $GITHUB_ENV
|
||||||
|
echo "CFLAGS=${CFLAGS}" >> $GITHUB_ENV
|
||||||
|
echo "${OPENSSL_ROOT_DIR}/bin" >> $GITHUB_PATH
|
||||||
|
echo "ADDITIONAL_CMAKE_ARGS=${ADDITIONAL_CMAKE_ARGS}" >> $GITHUB_ENV
|
||||||
|
echo "PKG_CONFIG_PATH=${PKG_CONFIG_PATH}" >> $GITHUB_ENV
|
||||||
|
echo "DYLD_LIBRARY_PATH=${OPENSSL_ROOT_DIR}/lib" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Set up OpenSSL 1.1 on modern MacOS
|
||||||
|
# OpenSSL 1.1 is installed by default, so we just need to set the paths
|
||||||
if: matrix.os == 'macos-latest' && matrix.env.OPENSSL_1_1 == 'YES'
|
if: matrix.os == 'macos-latest' && matrix.env.OPENSSL_1_1 == 'YES'
|
||||||
run: |
|
run: |
|
||||||
OPENSSL_ROOT_DIR=$(brew --prefix openssl@1.1)
|
OPENSSL_ROOT_DIR=$(brew --prefix openssl@1.1)
|
||||||
LDFLAGS=-L{$OPENSSL_ROOT_DIR}/lib
|
LDFLAGS=-L${OPENSSL_ROOT_DIR}/lib
|
||||||
CFLAGS=-I${OPENSSL_ROOT_DIR}/include
|
CFLAGS=-I${OPENSSL_ROOT_DIR}/include
|
||||||
ADDITIONAL_CMAKE_ARGS="-DCMAKE_SHARED_LINKER_FLAGS=${LDFLAGS} -DMAKE_C_FLAGS=${CFLAGS}"
|
ADDITIONAL_CMAKE_ARGS="-DCMAKE_SHARED_LINKER_FLAGS=${LDFLAGS} -DMAKE_C_FLAGS=${CFLAGS}"
|
||||||
PKG_CONFIG_PATH=${OPENSSL_ROOT_DIR}/lib/pkgconfig
|
PKG_CONFIG_PATH=${OPENSSL_ROOT_DIR}/lib/pkgconfig
|
||||||
@ -366,6 +405,44 @@ jobs:
|
|||||||
echo "ADDITIONAL_CMAKE_ARGS=${ADDITIONAL_CMAKE_ARGS}" >> $GITHUB_ENV
|
echo "ADDITIONAL_CMAKE_ARGS=${ADDITIONAL_CMAKE_ARGS}" >> $GITHUB_ENV
|
||||||
echo "PKG_CONFIG_PATH=${PKG_CONFIG_PATH}" >> $GITHUB_ENV
|
echo "PKG_CONFIG_PATH=${PKG_CONFIG_PATH}" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Install OpenSSL 1.0 on modern Linux
|
||||||
|
# Needed for recent versions of Linux as they ship with OpenSSL 3.0 by default
|
||||||
|
if: matrix.os == 'ubuntu-latest' && matrix.env.OPENSSL_1_0 == 'YES'
|
||||||
|
run: |
|
||||||
|
curl -O -L https://openssl.org/source/old/1.0.2/openssl-1.0.2u.tar.gz
|
||||||
|
tar -xzf openssl-1.0.2u.tar.gz
|
||||||
|
cd openssl-1.0.2u
|
||||||
|
./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared
|
||||||
|
make depend
|
||||||
|
make -j $(nproc)
|
||||||
|
sudo make install_sw -j $(nproc)
|
||||||
|
sudo ldconfig
|
||||||
|
|
||||||
|
OPENSSL_ROOT_DIR=/usr/local/ssl
|
||||||
|
LDFLAGS=-L${OPENSSL_ROOT_DIR}/lib
|
||||||
|
CFLAGS=-I${OPENSSL_ROOT_DIR}/include
|
||||||
|
ADDITIONAL_CMAKE_ARGS="-DCMAKE_SHARED_LINKER_FLAGS=${LDFLAGS} -DMAKE_C_FLAGS=${CFLAGS}"
|
||||||
|
PKG_CONFIG_PATH=${OPENSSL_ROOT_DIR}/lib/pkgconfig
|
||||||
|
|
||||||
|
echo "LDFLAGS=${LDFLAGS}" >> $GITHUB_ENV
|
||||||
|
echo "CFLAGS=${CFLAGS}" >> $GITHUB_ENV
|
||||||
|
echo "${OPENSSL_ROOT_DIR}/bin" >> $GITHUB_PATH
|
||||||
|
echo "ADDITIONAL_CMAKE_ARGS=${ADDITIONAL_CMAKE_ARGS}" >> $GITHUB_ENV
|
||||||
|
echo "PKG_CONFIG_PATH=${PKG_CONFIG_PATH}" >> $GITHUB_ENV
|
||||||
|
echo "LD_LIBRARY_PATH=${OPENSSL_ROOT_DIR}/lib" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Install OpenSSL 1.1 on modern Linux
|
||||||
|
# Needed for recent versions of Linux as they ship with OpenSSL 3.0 by default
|
||||||
|
if: matrix.os == 'ubuntu-latest' && matrix.env.OPENSSL_1_1 == 'YES'
|
||||||
|
run: |
|
||||||
|
curl -O -L https://github.com/openssl/openssl/releases/download/OpenSSL_1_1_1w/openssl-1.1.1w.tar.gz
|
||||||
|
tar -xzf openssl-1.1.1w.tar.gz
|
||||||
|
cd openssl-1.1.1w
|
||||||
|
./config
|
||||||
|
make -j $(nproc)
|
||||||
|
sudo make install_sw -j $(nproc)
|
||||||
|
sudo ldconfig
|
||||||
|
|
||||||
- name: Print tool version information
|
- name: Print tool version information
|
||||||
run: |
|
run: |
|
||||||
openssl version
|
openssl version
|
||||||
@ -375,7 +452,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Run CMake
|
- name: Run CMake
|
||||||
run: |
|
run: |
|
||||||
cmake -S . -B CMakeFiles\
|
cmake -S . -B output\
|
||||||
-DCMAKE_BUILD_TYPE=${{ matrix.env.BUILD_TYPE }}\
|
-DCMAKE_BUILD_TYPE=${{ matrix.env.BUILD_TYPE }}\
|
||||||
-DBUILD_SHARED_LIBS=${{ matrix.env.BUILD_SHARED }}\
|
-DBUILD_SHARED_LIBS=${{ matrix.env.BUILD_SHARED }}\
|
||||||
-DCIVETWEB_THIRD_PARTY_DIR=../src/third-party\
|
-DCIVETWEB_THIRD_PARTY_DIR=../src/third-party\
|
||||||
@ -403,12 +480,29 @@ jobs:
|
|||||||
- name: Build MacOS Package
|
- name: Build MacOS Package
|
||||||
if: matrix.env.MACOSX_PACKAGE == 1
|
if: matrix.env.MACOSX_PACKAGE == 1
|
||||||
run: |
|
run: |
|
||||||
make -f Makefile.osx package
|
make -f Makefile.osx package -j $(nproc)
|
||||||
|
|
||||||
- name: Build executable
|
- name: Build executable
|
||||||
run: |
|
run: |
|
||||||
cmake --build CMakeFiles -- -j $(nproc)
|
cmake --build output -- -j $(nproc)
|
||||||
|
|
||||||
- name: Check executable
|
- name: Check executable
|
||||||
run: |
|
run: |
|
||||||
./CMakeFiles/src/civetweb -I
|
./output/src/civetweb -I
|
||||||
|
|
||||||
|
- name: Run unit tests
|
||||||
|
if: matrix.env.RUN_UNITTEST == 1
|
||||||
|
run: |
|
||||||
|
# kill processes that are using port 8084, which is used in the unit tests
|
||||||
|
# Currently, this affects linux only, where 'mono' is using this port
|
||||||
|
pid_8084=$(sudo lsof -t -i:8084 || true;)
|
||||||
|
|
||||||
|
if [[ -n ${pid_8084} ]]; then
|
||||||
|
echo "Killing process using port 8084: ${pid_8084}"
|
||||||
|
sudo kill -9 ${pid_8084}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Run unit tests
|
||||||
|
gcc unittest/cgi_test.c -o output/cgi_test.cgi
|
||||||
|
cd output
|
||||||
|
CTEST_OUTPUT_ON_FAILURE=1 CK_FORK=yes make all test -j $(nproc)
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -27,6 +27,7 @@ log.out
|
|||||||
/CMakeCache.txt
|
/CMakeCache.txt
|
||||||
/CMakeFiles
|
/CMakeFiles
|
||||||
/mingw-builds
|
/mingw-builds
|
||||||
|
/output
|
||||||
|
|
||||||
#################
|
#################
|
||||||
## Eclipse
|
## Eclipse
|
||||||
|
Loading…
x
Reference in New Issue
Block a user