mirror of
https://github.com/boostorg/beast.git
synced 2025-07-30 04:47:29 +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:
|
||||
apt:
|
||||
sources: ['ubuntu-toolchain-r-test']
|
||||
packages:
|
||||
- gcc-5
|
||||
- g++-5
|
||||
sources: &base_sources
|
||||
- ubuntu-toolchain-r-test
|
||||
packages: &base_packages
|
||||
- python-software-properties
|
||||
- libssl-dev
|
||||
- libffi-dev
|
||||
@ -35,7 +34,7 @@ addons:
|
||||
|
||||
matrix:
|
||||
include:
|
||||
# GCC/Coverage/Autobahn (if master or develop branch)
|
||||
# gcc coverage (+valgrind,+Autobahn if master or develop)
|
||||
- compiler: gcc
|
||||
env:
|
||||
- GCC_VER=5
|
||||
@ -43,27 +42,99 @@ matrix:
|
||||
- ADDRESS_MODEL=64
|
||||
- BUILD_SYSTEM=cmake
|
||||
- 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
|
||||
env:
|
||||
- GCC_VER=5
|
||||
- VARIANT=usan
|
||||
- VARIANT=ubasan
|
||||
- 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:
|
||||
- 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
|
||||
- compiler: clang
|
||||
env:
|
||||
- GCC_VER=5
|
||||
- VARIANT=asan
|
||||
- CLANG_VER=3.8
|
||||
- ADDRESS_MODEL=64
|
||||
- PATH=$PWD/llvm-$LLVM_VERSION/bin:$PATH
|
||||
#- compiler: clang
|
||||
# env:
|
||||
# - GCC_VER=5
|
||||
# - VARIANT=asan
|
||||
# - CLANG_VER=3.8
|
||||
# - ADDRESS_MODEL=64
|
||||
# - PATH=$PWD/llvm-$LLVM_VERSION/bin:$PATH
|
||||
# addons:
|
||||
# apt:
|
||||
# packages:
|
||||
# - *base_packages
|
||||
# sources:
|
||||
# - *base_sources
|
||||
|
||||
cache:
|
||||
directories:
|
||||
@ -72,7 +143,7 @@ cache:
|
||||
- llvm-$LLVM_VERSION
|
||||
- cmake
|
||||
|
||||
before_install:
|
||||
before_install: &base_before_install
|
||||
- scripts/install-dependencies.sh
|
||||
|
||||
script:
|
||||
|
@ -3,6 +3,7 @@ Version 40
|
||||
* Add to_static_string
|
||||
* Consolidate get_lowest_layer in type_traits.hpp
|
||||
* Fix basic_streambuf movable trait
|
||||
* Tidy up .travis.yml
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
|
@ -115,6 +115,12 @@ if ("${VARIANT}" STREQUAL "coverage")
|
||||
set(CMAKE_BUILD_TYPE RELWITHDEBINFO)
|
||||
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")
|
||||
set(CMAKE_CXX_FLAGS
|
||||
"${CMAKE_CXX_FLAGS} -funsigned-char -fsanitize=address -fno-omit-frame-pointer")
|
||||
@ -123,7 +129,7 @@ elseif ("${VARIANT}" STREQUAL "asan")
|
||||
|
||||
elseif ("${VARIANT}" STREQUAL "usan")
|
||||
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_BUILD_TYPE RELWITHDEBINFO)
|
||||
|
||||
|
10
Jamroot
10
Jamroot
@ -60,6 +60,14 @@ variant coverage
|
||||
<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
|
||||
:
|
||||
release
|
||||
@ -80,7 +88,7 @@ variant usan
|
||||
:
|
||||
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"
|
||||
;
|
||||
|
||||
|
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