@@ -31,14 +31,21 @@ jobs:
3131 (github.event_name == 'pull_request' &&
3232 github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name) ||
3333 (github.event_name == 'workflow_dispatch' && github.event.inputs.test_linux == 'true')
34+ strategy :
35+ matrix :
36+ select_impl : ['select', 'poll']
3437 steps :
3538 - name : checkout
3639 uses : actions/checkout@v4
3740 - name : install libraries
3841 run : sudo apt-get update && sudo apt-get install -y libbrotli-dev libcurl4-openssl-dev
3942 - name : build and run tests
43+ env :
44+ SELECT_IMPL : ${{ matrix.select_impl }}
4045 run : cd test && make
4146 - name : run fuzz test target
47+ env :
48+ SELECT_IMPL : ${{ matrix.select_impl }}
4249 run : cd test && make fuzz_test
4350
4451 macos :
@@ -48,12 +55,19 @@ jobs:
4855 (github.event_name == 'pull_request' &&
4956 github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name) ||
5057 (github.event_name == 'workflow_dispatch' && github.event.inputs.test_macos == 'true')
58+ strategy :
59+ matrix :
60+ select_impl : ['select', 'poll']
5161 steps :
5262 - name : checkout
5363 uses : actions/checkout@v4
5464 - name : build and run tests
65+ env :
66+ SELECT_IMPL : ${{ matrix.select_impl }}
5567 run : cd test && make
5668 - name : run fuzz test target
69+ env :
70+ SELECT_IMPL : ${{ matrix.select_impl }}
5771 run : cd test && make fuzz_test
5872
5973 windows :
6377 (github.event_name == 'pull_request' &&
6478 github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name) ||
6579 (github.event_name == 'workflow_dispatch' && github.event.inputs.test_windows == 'true')
80+ strategy :
81+ matrix :
82+ select_impl : ['select', 'poll']
6683 steps :
6784 - name : Prepare Git for Checkout on Windows
6885 run : |
@@ -84,14 +101,30 @@ jobs:
84101 choco install openssl
85102
86103 - name : Configure CMake with SSL
87- run : cmake -B build -S . -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake -DHTTPLIB_TEST=ON -DHTTPLIB_REQUIRE_OPENSSL=ON -DHTTPLIB_REQUIRE_ZLIB=ON -DHTTPLIB_REQUIRE_BROTLI=ON
104+ run : >
105+ cmake -B build -S .
106+ -DCMAKE_BUILD_TYPE=Release
107+ -DCMAKE_TOOLCHAIN_FILE=${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake
108+ -DHTTPLIB_TEST=ON
109+ -DHTTPLIB_REQUIRE_OPENSSL=ON
110+ -DHTTPLIB_REQUIRE_ZLIB=ON
111+ -DHTTPLIB_REQUIRE_BROTLI=ON
112+ -DHTTPLIB_USE_SELECT=${{ matrix.select_impl == 'select' ? 'ON' : 'OFF' }}
88113 - name : Build with with SSL
89114 run : cmake --build build --config Release
90115 - name : Run tests with SSL
91116 run : ctest --output-on-failure --test-dir build -C Release
92117
93118 - name : Configure CMake without SSL
94- run : cmake -B build-no-ssl -S . -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake -DHTTPLIB_TEST=ON -DHTTPLIB_REQUIRE_OPENSSL=OFF -DHTTPLIB_REQUIRE_ZLIB=ON -DHTTPLIB_REQUIRE_BROTLI=ON
119+ run : >
120+ cmake -B build-no-ssl -S .
121+ -DCMAKE_BUILD_TYPE=Release
122+ -DCMAKE_TOOLCHAIN_FILE=${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake
123+ -DHTTPLIB_TEST=ON
124+ -DHTTPLIB_REQUIRE_OPENSSL=OFF
125+ -DHTTPLIB_REQUIRE_ZLIB=ON
126+ -DHTTPLIB_REQUIRE_BROTLI=ON
127+ -DHTTPLIB_USE_SELECT=${{ matrix.select_impl == 'select' ? 'ON' : 'OFF' }}
95128 - name : Build without SSL
96129 run : cmake --build build-no-ssl --config Release
97130 - name : Run tests without SSL
0 commit comments