diff --git a/.github/workflows/gha.yml b/.github/workflows/gha.yml index 811ed108..5c854864 100644 --- a/.github/workflows/gha.yml +++ b/.github/workflows/gha.yml @@ -41,6 +41,7 @@ jobs: export ARCH="64" export CHAR_SIGN="unsigned" export API_VERSION="1" + export SANITIZE="-fsanitize=undefined" fi if [ ${{ matrix.pattern }} == 1 ]; then ACTION="ci/build_cmake.sh" @@ -48,6 +49,7 @@ jobs: export ARCH="64" export CHAR_SIGN="signed" export API_VERSION="3" + export SANITIZE="-fsanitize=undefined" fi if [ ${{ matrix.pattern }} == 2 ]; then ACTION="ci/build_cmake.sh" @@ -55,12 +57,14 @@ jobs: export ARCH="64" export CHAR_SIGN="signed" export API_VERSION="2" + export SANITIZE="-fsanitize=undefined" fi if [ ${{ matrix.pattern }} == 3 ]; then ACTION="ci/build_cmake.sh" export ARCH="64" export CHAR_SIGN="unsigned" export API_VERSION="2" + export SANITIZE="-fsanitize=undefined" fi # install gtest @@ -78,7 +82,7 @@ jobs: cd .. # build and test - CMAKE_CXX_COMPILER="${CXX}" CMAKE_LIBRARY_PATH="${BASE}/usr/lib:${BASE}/build" GTEST_ROOT="${BASE}/usr" CMAKE_PREFIX_PATH="${BASE}/usr/clang/lib${ARCH}/cmake" CXXFLAGS="-Werror -g" ${ACTION} + CMAKE_CXX_COMPILER="${CXX}" CMAKE_LIBRARY_PATH="${BASE}/usr/lib:${BASE}/build" GTEST_ROOT="${BASE}/usr" CMAKE_PREFIX_PATH="${BASE}/usr/clang/lib${ARCH}/cmake" CXXFLAGS="-Werror -g ${SANITIZE}" ${ACTION} cat Files.cmake| grep ".*\.[h|hpp]" | perl -pe 's/ //g' | sort > tmp1 && find include -name "*.h" -o -name "*.hpp" | sort > tmp2 && diff tmp1 tmp2 linux: @@ -114,6 +118,7 @@ jobs: export ARCH="64" export CHAR_SIGN="unsigned" export API_VERSION="2" + export SANITIZE="-fsanitize=undefined" fi if [ ${{ matrix.pattern }} == 1 ]; then export CXX=clang++ @@ -121,6 +126,7 @@ jobs: export ARCH="32" export CHAR_SIGN="signed" export API_VERSION="2" + export SANITIZE="-fsanitize=undefined" fi if [ ${{ matrix.pattern }} == 2 ]; then export CXX=clang++ @@ -130,6 +136,7 @@ jobs: export CHAR_SIGN="signed" export API_VERSION="3" export X3_PARSE="ON" + export SANITIZE="-fsanitize=undefined" fi if [ ${{ matrix.pattern }} == 3 ]; then export CXX=clang++ @@ -146,6 +153,7 @@ jobs: export ARCH="64" export CHAR_SIGN="signed" export API_VERSION="2" + export SANITIZE="-fsanitize=undefined" fi if [ ${{ matrix.pattern }} == 5 ]; then export CXX=g++ @@ -155,6 +163,7 @@ jobs: export CHAR_SIGN="unsigned" export API_VERSION="3" export X3_PARSE="ON" + export SANITIZE="-fsanitize=undefined" fi if [ ${{ matrix.pattern }} == 6 ]; then export CXX=g++ @@ -162,6 +171,7 @@ jobs: export ARCH="64" export CHAR_SIGN="unsigned" export API_VERSION="2" + export SANITIZE="-fsanitize=undefined" fi if [ ${{ matrix.pattern }} == 7 ]; then export CXX=g++ @@ -169,6 +179,7 @@ jobs: export ARCH="32" export CHAR_SIGN="signed" export API_VERSION="1" + export SANITIZE="-fsanitize=undefined" fi if [ ${{ matrix.pattern }} == 8 ]; then export CXX=g++ @@ -176,6 +187,7 @@ jobs: export ARCH="32" export CHAR_SIGN="signed" export API_VERSION="2" + export SANITIZE="-fsanitize=undefined" fi if [ ${{ matrix.pattern }} == 9 ]; then export CXX=clang++ @@ -184,6 +196,7 @@ jobs: export SAN="UBSAN" export MSGPACK_FUZZ_REGRESSION="ON" export CTEST_OUTPUT_ON_FAILURE=1 + export SANITIZE="-fsanitize=undefined" fi if [ ${{ matrix.pattern }} == 10 ]; then export CXX=clang++ @@ -192,6 +205,7 @@ jobs: export SAN="ASAN" export MSGPACK_FUZZ_REGRESSION="ON" export CTEST_OUTPUT_ON_FAILURE=1 + export SANITIZE="-fsanitize=undefined" fi # install gtest @@ -214,7 +228,7 @@ jobs: fi # build and test - CMAKE_CXX_COMPILER="${CXX}" CMAKE_LIBRARY_PATH="${BASE}/usr/lib:${BASE}/build" GTEST_ROOT="${BASE}/usr" CMAKE_PREFIX_PATH="${BASE}/usr/gcc/lib${ARCH}/cmake" CXXFLAGS="-Werror -g" MSGPACK_SAN="${SAN}" ${ACTION} + CMAKE_CXX_COMPILER="${CXX}" CMAKE_LIBRARY_PATH="${BASE}/usr/lib:${BASE}/build" GTEST_ROOT="${BASE}/usr" CMAKE_PREFIX_PATH="${BASE}/usr/gcc/lib${ARCH}/cmake" CXXFLAGS="-Werror -g ${SANITIZE}" MSGPACK_SAN="${SAN}" ${ACTION} cat Files.cmake| grep ".*\.[h|hpp]" | perl -pe 's/ //g' | sort > tmp1 && find include -name "*.h" -o -name "*.hpp" | sort > tmp2 && diff tmp1 tmp2 windows: runs-on: windows-2016 diff --git a/ci/build_cmake.sh b/ci/build_cmake.sh index 4c07a09c..d0b1066d 100755 --- a/ci/build_cmake.sh +++ b/ci/build_cmake.sh @@ -26,7 +26,7 @@ else export ARCH_FLAG="-m64" fi -cmake -DMSGPACK_CXX11=${CXX11} -DMSGPACK_CXX17=${CXX17} -DMSGPACK_32BIT=${BIT32} -DMSGPACK_CHAR_SIGN=${CHAR_SIGN} -DMSGPACK_DEFAULT_API_VERSION=${API_VERSION} -DMSGPACK_USE_X3_PARSE=${X3_PARSE} -DCMAKE_CXX_FLAGS="${ARCH_FLAG} ${CXXFLAGS} -fsanitize=undefined" ${ZLIB32} .. +cmake -DMSGPACK_CXX11=${CXX11} -DMSGPACK_CXX17=${CXX17} -DMSGPACK_32BIT=${BIT32} -DMSGPACK_CHAR_SIGN=${CHAR_SIGN} -DMSGPACK_DEFAULT_API_VERSION=${API_VERSION} -DMSGPACK_USE_X3_PARSE=${X3_PARSE} -DCMAKE_CXX_FLAGS="${ARCH_FLAG} ${CXXFLAGS}" ${ZLIB32} .. ret=$? if [ $ret -ne 0 ]