In order to test the split version (.h + .cc via split.py): - Added a test_split program in the test directory whose main purpose is to verify that it works to compile and link the test case code against the split httplib.h version. - Moved types needed for test cases to the “header part” of httplib.h. Also added forward declarations of functions needed by test cases. - Added an include_httplib.cc file which is linked together with test.cc to verify that inline keywords have not been forgotten. The changes to httplib.h just move code around (or add forward declarations), with one exception: detail::split and detail::process_client_socket have been converted to non-template functions (taking an std::function instead of using a type parameter for the function) and forward-declared instead. This avoids having to move the templates to the “header part”.
42 lines
1.2 KiB
YAML
42 lines
1.2 KiB
YAML
name: test
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
strategy:
|
|
matrix:
|
|
os: [macOS-latest, ubuntu-latest, windows-latest]
|
|
|
|
steps:
|
|
- name: prepare git for checkout on windows
|
|
if: matrix.os == 'windows-latest'
|
|
run: |
|
|
git config --global core.autocrlf false
|
|
git config --global core.eol lf
|
|
- name: checkout
|
|
uses: actions/checkout@v2
|
|
- name: install brotli library on ubuntu
|
|
if: matrix.os == 'ubuntu-latest'
|
|
run: sudo apt update && sudo apt-get install -y libbrotli-dev
|
|
- name: install brotli library on macOS
|
|
if: matrix.os == 'macOS-latest'
|
|
run: brew install brotli
|
|
- name: make
|
|
if: matrix.os != 'windows-latest'
|
|
run: cd test && make -j2
|
|
- name: check fuzz test target
|
|
if: matrix.os == 'ubuntu-latest'
|
|
run: cd test && make -f Makefile.fuzz_test
|
|
- name: setup msbuild on windows
|
|
if: matrix.os == 'windows-latest'
|
|
uses: microsoft/setup-msbuild@v1.0.2
|
|
- name: make-windows
|
|
if: matrix.os == 'windows-latest'
|
|
run: |
|
|
cd test
|
|
msbuild.exe test.sln /verbosity:minimal /t:Build "/p:Configuration=Release;Platform=x64"
|
|
x64\Release\test.exe
|