mirror of
https://github.com/boostorg/beast.git
synced 2025-07-31 21:34:46 +02:00
Tidy up .travis.yml:
* Combine address and undefined sanitizers * Additional targets for older gcc and 32 bit
This commit is contained in:
101
.travis.yml
101
.travis.yml
@@ -16,10 +16,9 @@ env:
|
|||||||
|
|
||||||
addons:
|
addons:
|
||||||
apt:
|
apt:
|
||||||
sources: ['ubuntu-toolchain-r-test']
|
sources: &base_sources
|
||||||
packages:
|
- ubuntu-toolchain-r-test
|
||||||
- gcc-5
|
packages: &base_packages
|
||||||
- g++-5
|
|
||||||
- python-software-properties
|
- python-software-properties
|
||||||
- libssl-dev
|
- libssl-dev
|
||||||
- libffi-dev
|
- libffi-dev
|
||||||
@@ -35,7 +34,7 @@ addons:
|
|||||||
|
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
# GCC/Coverage/Autobahn (if master or develop branch)
|
# gcc coverage (+valgrind,+Autobahn if master or develop)
|
||||||
- compiler: gcc
|
- compiler: gcc
|
||||||
env:
|
env:
|
||||||
- GCC_VER=5
|
- GCC_VER=5
|
||||||
@@ -43,27 +42,99 @@ matrix:
|
|||||||
- ADDRESS_MODEL=64
|
- ADDRESS_MODEL=64
|
||||||
- BUILD_SYSTEM=cmake
|
- BUILD_SYSTEM=cmake
|
||||||
- PATH=$PWD/cmake/bin:$PATH
|
- PATH=$PWD/cmake/bin:$PATH
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- gcc-5
|
||||||
|
- g++-5
|
||||||
|
- *base_packages
|
||||||
|
sources:
|
||||||
|
- *base_sources
|
||||||
|
|
||||||
# Clang/UndefinedBehaviourSanitizer
|
# older GCC, release
|
||||||
|
- compiler: gcc
|
||||||
|
env:
|
||||||
|
- GCC_VER=4.8
|
||||||
|
- VARIANT=release
|
||||||
|
- ADDRESS_MODEL=64
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- gcc-4.8
|
||||||
|
- g++-4.8
|
||||||
|
- *base_packages
|
||||||
|
sources:
|
||||||
|
- *base_sources
|
||||||
|
|
||||||
|
# later GCC
|
||||||
|
- compiler: gcc
|
||||||
|
env:
|
||||||
|
- GCC_VER=6
|
||||||
|
- VARIANT=release
|
||||||
|
- ADDRESS_MODEL=64
|
||||||
|
- BUILD_SYSTEM=cmake
|
||||||
|
- PATH=$PWD/cmake/bin:$PATH
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- gcc-6
|
||||||
|
- g++-6
|
||||||
|
- *base_packages
|
||||||
|
sources:
|
||||||
|
- *base_sources
|
||||||
|
|
||||||
|
# clang ubsan+asan
|
||||||
- compiler: clang
|
- compiler: clang
|
||||||
env:
|
env:
|
||||||
- GCC_VER=5
|
- GCC_VER=5
|
||||||
- VARIANT=usan
|
- VARIANT=ubasan
|
||||||
- CLANG_VER=3.8
|
- CLANG_VER=3.8
|
||||||
- ADDRESS_MODEL=64
|
- ADDRESS_MODEL=64
|
||||||
- UBSAN_OPTIONS='print_stacktrace=1'
|
- UBSAN_OPTIONS='print_stacktrace=1'
|
||||||
- BUILD_SYSTEM=cmake
|
- BUILD_SYSTEM=cmake
|
||||||
- PATH=$PWD/cmake/bin:$PATH
|
- PATH=$PWD/cmake/bin:$PATH
|
||||||
- PATH=$PWD/llvm-$LLVM_VERSION/bin:$PATH
|
- PATH=$PWD/llvm-$LLVM_VERSION/bin:$PATH
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- gcc-5
|
||||||
|
- g++-5
|
||||||
|
- *base_packages
|
||||||
|
sources:
|
||||||
|
- *base_sources
|
||||||
|
|
||||||
|
# Clang/UndefinedBehaviourSanitizer
|
||||||
|
#- compiler: clang
|
||||||
|
# env:
|
||||||
|
# - GCC_VER=4.8
|
||||||
|
# - VARIANT=usan
|
||||||
|
# - CLANG_VER=3.8
|
||||||
|
# - ADDRESS_MODEL=64
|
||||||
|
# - UBSAN_OPTIONS='print_stacktrace=1'
|
||||||
|
# - BUILD_SYSTEM=cmake
|
||||||
|
# - PATH=$PWD/cmake/bin:$PATH
|
||||||
|
# - PATH=$PWD/llvm-$LLVM_VERSION/bin:$PATH
|
||||||
|
# addons:
|
||||||
|
# apt:
|
||||||
|
# packages:
|
||||||
|
# - *base_packages
|
||||||
|
# sources:
|
||||||
|
# - *base_sources
|
||||||
|
|
||||||
# Clang/AddressSanitizer
|
# Clang/AddressSanitizer
|
||||||
- compiler: clang
|
#- compiler: clang
|
||||||
env:
|
# env:
|
||||||
- GCC_VER=5
|
# - GCC_VER=5
|
||||||
- VARIANT=asan
|
# - VARIANT=asan
|
||||||
- CLANG_VER=3.8
|
# - CLANG_VER=3.8
|
||||||
- ADDRESS_MODEL=64
|
# - ADDRESS_MODEL=64
|
||||||
- PATH=$PWD/llvm-$LLVM_VERSION/bin:$PATH
|
# - PATH=$PWD/llvm-$LLVM_VERSION/bin:$PATH
|
||||||
|
# addons:
|
||||||
|
# apt:
|
||||||
|
# packages:
|
||||||
|
# - *base_packages
|
||||||
|
# sources:
|
||||||
|
# - *base_sources
|
||||||
|
|
||||||
cache:
|
cache:
|
||||||
directories:
|
directories:
|
||||||
@@ -72,7 +143,7 @@ cache:
|
|||||||
- llvm-$LLVM_VERSION
|
- llvm-$LLVM_VERSION
|
||||||
- cmake
|
- cmake
|
||||||
|
|
||||||
before_install:
|
before_install: &base_before_install
|
||||||
- scripts/install-dependencies.sh
|
- scripts/install-dependencies.sh
|
||||||
|
|
||||||
script:
|
script:
|
||||||
|
@@ -3,6 +3,7 @@ Version 40
|
|||||||
* Add to_static_string
|
* Add to_static_string
|
||||||
* Consolidate get_lowest_layer in type_traits.hpp
|
* Consolidate get_lowest_layer in type_traits.hpp
|
||||||
* Fix basic_streambuf movable trait
|
* Fix basic_streambuf movable trait
|
||||||
|
* Tidy up .travis.yml
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@@ -115,6 +115,12 @@ if ("${VARIANT}" STREQUAL "coverage")
|
|||||||
set(CMAKE_BUILD_TYPE RELWITHDEBINFO)
|
set(CMAKE_BUILD_TYPE RELWITHDEBINFO)
|
||||||
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lgcov")
|
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lgcov")
|
||||||
|
|
||||||
|
elseif ("${VARIANT}" STREQUAL "ubasan")
|
||||||
|
set(CMAKE_CXX_FLAGS
|
||||||
|
"${CMAKE_CXX_FLAGS} -funsigned-char -fno-omit-frame-pointer -fsanitize=address,undefined -fsanitize-blacklist=${PROJECT_SOURCE_DIR}/scripts/blacklist.supp")
|
||||||
|
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address,undefined")
|
||||||
|
set(CMAKE_BUILD_TYPE RELWITHDEBINFO)
|
||||||
|
|
||||||
elseif ("${VARIANT}" STREQUAL "asan")
|
elseif ("${VARIANT}" STREQUAL "asan")
|
||||||
set(CMAKE_CXX_FLAGS
|
set(CMAKE_CXX_FLAGS
|
||||||
"${CMAKE_CXX_FLAGS} -funsigned-char -fsanitize=address -fno-omit-frame-pointer")
|
"${CMAKE_CXX_FLAGS} -funsigned-char -fsanitize=address -fno-omit-frame-pointer")
|
||||||
@@ -123,7 +129,7 @@ elseif ("${VARIANT}" STREQUAL "asan")
|
|||||||
|
|
||||||
elseif ("${VARIANT}" STREQUAL "usan")
|
elseif ("${VARIANT}" STREQUAL "usan")
|
||||||
set(CMAKE_CXX_FLAGS
|
set(CMAKE_CXX_FLAGS
|
||||||
"${CMAKE_CXX_FLAGS} -fsanitize=undefined -fsanitize-blacklist=${PROJECT_SOURCE_DIR}/scripts/usan.supp -fno-omit-frame-pointer")
|
"${CMAKE_CXX_FLAGS} -fsanitize=undefined -fsanitize-blacklist=${PROJECT_SOURCE_DIR}/scripts/blacklist.supp -fno-omit-frame-pointer")
|
||||||
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=undefined")
|
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=undefined")
|
||||||
set(CMAKE_BUILD_TYPE RELWITHDEBINFO)
|
set(CMAKE_BUILD_TYPE RELWITHDEBINFO)
|
||||||
|
|
||||||
|
10
Jamroot
10
Jamroot
@@ -60,6 +60,14 @@ variant coverage
|
|||||||
<linkflags>"-lgcov"
|
<linkflags>"-lgcov"
|
||||||
;
|
;
|
||||||
|
|
||||||
|
variant ubasan
|
||||||
|
:
|
||||||
|
release
|
||||||
|
:
|
||||||
|
<cxxflags>"-funsigned-char -fno-omit-frame-pointer -fsanitize=address,undefined -fsanitize-blacklist=scripts/blacklist.supp"
|
||||||
|
<linkflags>"-fsanitize=address,undefined"
|
||||||
|
;
|
||||||
|
|
||||||
variant asan
|
variant asan
|
||||||
:
|
:
|
||||||
release
|
release
|
||||||
@@ -80,7 +88,7 @@ variant usan
|
|||||||
:
|
:
|
||||||
debug
|
debug
|
||||||
:
|
:
|
||||||
<cxxflags>"-fsanitize=undefined -fsanitize-blacklist=scripts/usan.supp -fno-omit-frame-pointer"
|
<cxxflags>"-fsanitize=undefined -fsanitize-blacklist=scripts/blacklist.supp -fno-omit-frame-pointer"
|
||||||
<linkflags>"-fsanitize=undefined"
|
<linkflags>"-fsanitize=undefined"
|
||||||
;
|
;
|
||||||
|
|
||||||
|
58
TODO.txt
58
TODO.txt
@@ -1,58 +0,0 @@
|
|||||||
* Add writer::prepare(msg&) interface to set Content-Type
|
|
||||||
|
|
||||||
Boost.Http
|
|
||||||
* Use enum instead of bool in isRequest
|
|
||||||
|
|
||||||
Docs:
|
|
||||||
* Include Example program listings in the docs
|
|
||||||
* Fix index in docs
|
|
||||||
* melpon sandbox?
|
|
||||||
* Implement cleanup-param to remove spaces around template arguments
|
|
||||||
e.g. in basic_streambuf move constructor members
|
|
||||||
* Don't put using namespace at file scope in examples,
|
|
||||||
do something like "using ba = boost::asio" instead.
|
|
||||||
|
|
||||||
Core:
|
|
||||||
* Replace Jamroot with Jamfile
|
|
||||||
* Fix bidirectional buffers iterators operator->()
|
|
||||||
* Complete allocator testing in basic_streambuf
|
|
||||||
|
|
||||||
WebSocket:
|
|
||||||
* Minimize sizeof(websocket::stream)
|
|
||||||
* Move check for message size limit to account for compression
|
|
||||||
* more invokable unit test coverage
|
|
||||||
* More control over the HTTP request and response during handshakes
|
|
||||||
* optimized versions of key/masking, choose prepared_key size
|
|
||||||
* Give callers control over the http request/response used during handshake
|
|
||||||
* Investigate poor autobahn results in Debug builds
|
|
||||||
* Fall through composed operation switch cases
|
|
||||||
* Use close_code::no_code instead of close_code::none
|
|
||||||
* Make request_type, response_type public APIs,
|
|
||||||
use in stream member function signatures
|
|
||||||
|
|
||||||
HTTP:
|
|
||||||
* Define Parser concept in HTTP
|
|
||||||
- Need parse version of read() so caller can set parser options
|
|
||||||
like maximum size of headers, maximum body size, etc
|
|
||||||
* add bool should_close(message_v1 const&) to replace the use
|
|
||||||
of eof return value from write and async_write
|
|
||||||
* More fine grained parser errors
|
|
||||||
* HTTP parser size limit with test (configurable?)
|
|
||||||
* HTTP parser trailers with test
|
|
||||||
* Decode chunk encoding parameters
|
|
||||||
* URL parser, strong URL character checking in HTTP parser
|
|
||||||
* Fix prepare() calling content_length() without init()
|
|
||||||
* Complete allocator testing in basic_streambuf, basic_headers
|
|
||||||
* Custom HTTP error codes for various situations
|
|
||||||
* Branch prediction hints in parser
|
|
||||||
* Check basic_parser_v1 against rfc7230 for leading message whitespace
|
|
||||||
* Fix the order of message constructor parameters:
|
|
||||||
body first then headers (since body is constructed with arguments more often)
|
|
||||||
* Unit tests for char tables
|
|
||||||
* Remove status_code() from API when isRequest==true, et. al.
|
|
||||||
* Permit sending trailers and parameters in chunk-encoding chunks
|
|
||||||
|
|
||||||
Future:
|
|
||||||
|
|
||||||
* SOCKS proxy client and server implementations
|
|
||||||
|
|
Reference in New Issue
Block a user