diff --git a/.github/depends/boost.sh b/.github/depends/boost.sh index 2ab43464..6aba0d85 100755 --- a/.github/depends/boost.sh +++ b/.github/depends/boost.sh @@ -1,23 +1,35 @@ -#!/bin/sh +#!/bin/bash usage() { cat < tmp1 && find include -name "*.h" -o -name "*.hpp" | sort > tmp2 && diff tmp1 tmp2 linux: - runs-on: ubuntu-18.04 + name: ${{ format('Linux (pattern {0})', matrix.pattern) }} + runs-on: ubuntu-20.04 strategy: fail-fast: false matrix: - pattern: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] + pattern: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] steps: - - uses: actions/checkout@v1 - - name: install build depends - run: | - sudo apt-get update - sudo apt-get install g++-multilib clang-8 valgrind - - name: Cache boost - id: cache-boost - uses: actions/cache@v1 - with: - path: usr - key: ${{ runner.os }}-boost-20210508-1-72-0 - - name: Build boost - if: steps.cache-boost.outputs.cache-hit != 'true' - run: ./.github/depends/boost.sh -b both -t gcc - - name: build and test + - uses: actions/checkout@v2 + + - name: Install build dependencies shell: bash run: | - BASE=`pwd`; + sudo apt-get update + sudo apt-get install g++-10 cmake valgrind -y + sudo apt-get install g++-10-multilib -y # for 32-bit compile + ./ci/set_gcc_10.sh - # matrix config - if [ ${{ matrix.pattern }} == 0 ]; then - export CXX=clang++ - ACTION="ci/build_cmake.sh" - export ARCH="64" - export CHAR_SIGN="unsigned" - export API_VERSION="2" - export SANITIZE="-fsanitize=undefined -fno-sanitize-recover=all" - fi - if [ ${{ matrix.pattern }} == 1 ]; then - export CXX=clang++ - ACTION="ci/build_cmake.sh" - export ARCH="32" - export CHAR_SIGN="signed" - export API_VERSION="2" - export SANITIZE="-fsanitize=undefined -fno-sanitize-recover=all" - fi - if [ ${{ matrix.pattern }} == 2 ]; then - export CXX=clang++ - ACTION="ci/build_cmake.sh" - export CXX17="ON" - export ARCH="64" - export CHAR_SIGN="signed" - export API_VERSION="3" - export X3_PARSE="ON" - export SANITIZE="-fsanitize=undefined -fno-sanitize-recover=all" - fi - if [ ${{ matrix.pattern }} == 3 ]; then - export CXX=clang++ - ACTION="ci/build_cmake.sh" - export CXX17="ON" - export ARCH="32" - export CHAR_SIGN="unsigned" - export API_VERSION="2" - fi - if [ ${{ matrix.pattern }} == 4 ]; then - export CXX=g++ - ACTION="ci/build_cmake.sh" - export CXX17="ON" - export ARCH="64" - export CHAR_SIGN="signed" - export API_VERSION="2" - export SANITIZE="-fsanitize=undefined -fno-sanitize-recover=all" - fi - if [ ${{ matrix.pattern }} == 5 ]; then - export CXX=g++ - ACTION="ci/build_cmake.sh" - export CXX17="ON" - export ARCH="32" - export CHAR_SIGN="unsigned" - export API_VERSION="3" - export X3_PARSE="ON" - export SANITIZE="-fsanitize=undefined -fno-sanitize-recover=all" - fi - if [ ${{ matrix.pattern }} == 6 ]; then - export CXX=g++ - ACTION="ci/build_cmake.sh" - export ARCH="64" - export CHAR_SIGN="unsigned" - export API_VERSION="2" - export SANITIZE="-fsanitize=undefined -fno-sanitize-recover=all" - fi - if [ ${{ matrix.pattern }} == 7 ]; then - export CXX=g++ - ACTION="ci/build_cmake.sh" - export ARCH="32" - export CHAR_SIGN="signed" - export API_VERSION="1" - export SANITIZE="-fsanitize=undefined -fno-sanitize-recover=all" - fi - if [ ${{ matrix.pattern }} == 8 ]; then - export CXX=g++ - ACTION="ci/build_cmake.sh" - export ARCH="32" - export CHAR_SIGN="signed" - export API_VERSION="2" - export SANITIZE="-fsanitize=undefined -fno-sanitize-recover=all" - fi - if [ ${{ matrix.pattern }} == 9 ]; then - export CXX=clang++ - ACTION="ci/build_regression.sh" - export ARCH="64" - export SAN="UBSAN" - export MSGPACK_FUZZ_REGRESSION="ON" - export CTEST_OUTPUT_ON_FAILURE=1 - export SANITIZE="-fsanitize=undefined -fno-sanitize-recover=all" - fi - if [ ${{ matrix.pattern }} == 10 ]; then - export CXX=clang++ - ACTION="ci/build_regression.sh" - export ARCH="64" - export SAN="ASAN" - export MSGPACK_FUZZ_REGRESSION="ON" - export CTEST_OUTPUT_ON_FAILURE=1 - export SANITIZE="-fsanitize=undefined -fno-sanitize-recover=all" - fi + - name: Cache boost + id: cache-boost + uses: actions/cache@v2 + with: + path: ~/boost-prefix/ + key: ${{ runner.os }}-boost-1-76-0-2021-08-09 - # install gtest - wget https://github.com/google/googletest/archive/release-1.7.0.zip -O googletest-release-1.7.0.zip - unzip -q googletest-release-1.7.0.zip - cd googletest-release-1.7.0 - $CXX -m${ARCH} src/gtest-all.cc -I. -Iinclude -c -fPIC - $CXX -m${ARCH} src/gtest_main.cc -I. -Iinclude -c -fPIC - ar -rv libgtest.a gtest-all.o - ar -rv libgtest_main.a gtest_main.o - mkdir -p ${BASE}/usr/include - cp -r include/gtest ${BASE}/usr/include - mkdir -p ${BASE}/usr/lib - mv *.a ${BASE}/usr/lib - cd .. + - name: Build boost + if: steps.cache-boost.outputs.cache-hit != 'true' + run: ./.github/depends/boost.sh -b both -t gcc -p $HOME/boost-prefix - # install zlib - if [ ${ARCH} == 32 ]; then - sudo apt-get install lib32z1-dev - fi + - name: Cache zlib + id: cache-zlib + uses: actions/cache@v2 + with: + path: ~/zlib-prefix/ + key: ${{ runner.os }}-zlib-1-2-11-2021-08-09 + + - name: Build zlib + if: steps.cache-zlib.outputs.cache-hit != 'true' + run: ./.github/depends/zlib.sh -b both -p $HOME/zlib-prefix + + - name: Build and test + shell: bash + run: | + # default configuration - overwrite its params later depending on matrix.pattern + export MSGPACK_CXX_VERSION="MSGPACK_CXX20=ON" + export ARCH=64 + export API_VERSION=3 + export CHAR_SIGN="signed" + export X3_PARSE="OFF" + export SANITIZE="-fsanitize=undefined -fno-sanitize-recover=all" + export ACTION="ci/build_cmake.sh" + + case ${{ matrix.pattern }} in + 0) + export CXX="clang++-10" + export MSGPACK_CXX_VERSION="MSGPACK_CXX11=OFF" + ;; + 1) + export CXX="g++-10" + export MSGPACK_CXX_VERSION="MSGPACK_CXX11=ON" + ;; + 2) + export CXX="clang++-10" + export MSGPACK_CXX_VERSION="MSGPACK_CXX14=ON" + ;; + 3) + export CXX="g++-10" + export MSGPACK_CXX_VERSION="MSGPACK_CXX17=ON" + ;; + 4) + export CXX="clang++-10" + export MSGPACK_CXX_VERSION="MSGPACK_CXX20=ON" + ;; + 5) + export CXX="g++-10" + export ARCH=32 + ;; + 6) + export CXX="clang++-10" + export API_VERSION=2 + ;; + 7) + export CXX="g++-10" + export API_VERSION=1 + ;; + 8) + export CXX="clang++-10" + export CHAR_SIGN="unsigned" + ;; + 9) + export CXX="g++-10" + export X3_PARSE="ON" + ;; + 10) + export CXX="clang++-10" + export ACTION="ci/build_regression.sh" + ;; + 11) + export CXX="g++-10" + export ARCH=32 + export CHAR_SIGN="unsigned" + export X3_PARSE="ON" + ;; + esac # 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 ${SANITIZE}" MSGPACK_SAN="${SAN}" ${ACTION} + CMAKE_CXX_COMPILER="$CXX" CXXFLAGS="-Werror -g ${SANITIZE}" ci/build_cmake.sh || exit 1 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 + name: ${{ format('Windows cxx{0}', matrix.cxx) }} + runs-on: windows-2019 strategy: fail-fast: false matrix: - pattern: [0, 1, 2] + # MSVC2019 only supports /std:c++14, /std:c++17 and /std:c++latest + cxx: [14, 17, 20] steps: - - uses: actions/checkout@v1 - - name: Cache vcpkg + - uses: actions/checkout@v2 + + - name: Cache vcpkg dependencies id: cache-vcpkg - uses: actions/cache@v1.0.3 + uses: actions/cache@v2 with: path: C:/vcpkg/installed/x64-windows - key: ${{ runner.os }}-vcpkg - - name: Build dependencies + key: ${{ runner.os }}-vcpkg-2021-08-09 + + - name: Install vcpkg dependencies if: steps.cache-vcpkg.outputs.cache-hit != 'true' shell: powershell run: | vcpkg update - vcpkg install gtest:x64-windows vcpkg install zlib:x64-windows vcpkg install boost:x64-windows + - name: Build and test shell: powershell run: | - if (${{ matrix.pattern }} -eq 0) { - $CPPVER="-DMSGPACK_CXX17=ON" - } - if (${{ matrix.pattern }} -eq 1) { - $CPPVER="-DMSGPACK_CXX11=ON" - } - if (${{ matrix.pattern }} -eq 2) { - $CPPVER="-DMSGPACK_CXX11=OFF" - } + $CPPVER="MSGPACK_CXX${{ matrix.cxx }}=ON" - $CUR=(Get-Location).Path md build - cd build - cmake -A x64 -DBOOST_ROOT="$env:BOOST_ROOT_1_72_0" -DCMAKE_TOOLCHAIN_FILE="C:/vcpkg/scripts/buildsystems/vcpkg.cmake" $CPPVER "-DCMAKE_CXX_FLAGS=/D_VARIADIC_MAX=10 /EHsc /D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING" .. - if ($LastExitCode -ne 0) { $host.SetShouldExit($LastExitCode) } - cmake --build . --config Release - $pathbak="$env:PATH" - $env:PATH="C:\vcpkg\installed\x64-windows\bin;$CUR\build\Release;$pathbak" - ctest -V - if ($LastExitCode -ne 0) { $host.SetShouldExit($LastExitCode) } - $env:PATH=$pathbak + cmake ` + -A x64 ` + -G "Visual Studio 16 2019" ` + -D CMAKE_TOOLCHAIN_FILE="C:/vcpkg/scripts/buildsystems/vcpkg.cmake" ` + -D MSGPACK_BUILD_TESTS=ON ` + -D $CPPVER ` + -D CMAKE_CXX_FLAGS="/D_VARIADIC_MAX=10 /EHsc /D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING /D_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING /D_SILENCE_CXX17_OLD_ALLOCATOR_MEMBERS_DEPRECATION_WARNING /W3 /WX" ` + -B build ` + -S . + if ($LastExitCode -ne 0) { exit $LastExitCode } + + cmake --build build --config Release + if ($LastExitCode -ne 0) { exit $LastExitCode } + + ctest -VV --test-dir build -C Release + if ($LastExitCode -ne 0) { exit $LastExitCode } diff --git a/CMakeLists.txt b/CMakeLists.txt index 4e6051fe..c92a28ea 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,11 +1,8 @@ -CMAKE_MINIMUM_REQUIRED (VERSION 3.0.0) +CMAKE_MINIMUM_REQUIRED (VERSION 3.1 FATAL_ERROR) -IF ((CMAKE_VERSION VERSION_GREATER 3.1) OR - (CMAKE_VERSION VERSION_EQUAL 3.1)) - CMAKE_POLICY(SET CMP0054 NEW) -ENDIF () +CMAKE_POLICY (SET CMP0054 NEW) -PROJECT (msgpack CXX) +PROJECT (msgpack LANGUAGES CXX) FILE (READ ${CMAKE_CURRENT_SOURCE_DIR}/include/msgpack/version_master.hpp contents) STRING (REGEX MATCH "#define MSGPACK_VERSION_MAJOR *([0-9a-zA-Z_]*)" NULL_OUT ${contents}) @@ -20,102 +17,61 @@ LIST (APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/") SET (GNUCXX_STD_SUPPORT_VERSION "4.3") OPTION (MSGPACK_CXX11 "Using c++11 compiler" OFF) -OPTION (MSGPACK_32BIT "32bit compile" OFF) +OPTION (MSGPACK_CXX14 "Using c++14 compiler" OFF) +OPTION (MSGPACK_CXX17 "Using c++17 compiler" OFF) +OPTION (MSGPACK_CXX20 "Using c++20 compiler" OFF) + +OPTION (MSGPACK_32BIT "32bit compile" OFF) +OPTION (MSGPACK_USE_X3_PARSE "Use Boost X3 parse" OFF) +OPTION (MSGPACK_BUILD_TESTS "Build tests" OFF) +OPTION (MSGPACK_FUZZ_REGRESSION "Enable regression testing" OFF) +OPTION (MSGPACK_BUILD_EXAMPLES "Build msgpack examples" OFF) +OPTION (MSGPACK_GEN_COVERAGE "Generate coverage report" OFF) + +SET (CMAKE_CXX_STANDARD_REQUIRED ON) IF (MSGPACK_USE_X3_PARSE) - IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") - SET (CMAKE_CXX_FLAGS "-DMSGPACK_USE_X3_PARSE -std=c++14 ${CMAKE_CXX_FLAGS}") - # matches Clang and AppleClang - ELSEIF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") - SET (CMAKE_CXX_FLAGS "-DMSGPACK_USE_X3_PARSE -std=c++14 ${CMAKE_CXX_FLAGS}") - ELSEIF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") - SET (CMAKE_CXX_FLAGS "-DMSGPACK_USE_X3_PARSE ${CMAKE_CXX_FLAGS}") - IF (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19) - MESSAGE ( FATAL_ERROR "MSVC doesn't support C++14.") - ENDIF () - ENDIF () + IF (NOT (MSGPACK_CXX14 OR MSGPACK_CXX17 OR MSGPACK_CXX20)) + MESSAGE (FATAL_ERROR "MSGPACK_USE_X3_PARSE requires MSGPACK_CXX14 or newer") + ENDIF () + SET (CMAKE_CXX_FLAGS "-DMSGPACK_USE_X3_PARSE ${CMAKE_CXX_FLAGS}") +ENDIF () + +IF (MSGPACK_CXX20) + SET (CMAKE_CXX_STANDARD 20) +ELSEIF (MSGPACK_CXX17) + SET (CMAKE_CXX_STANDARD 17) +ELSEIF (MSGPACK_CXX14) + SET (CMAKE_CXX_STANDARD 14) +ELSEIF (MSGPACK_CXX11) + SET (CMAKE_CXX_STANDARD 11) ELSE () - IF (MSGPACK_CXX17) - IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") - SET (CMAKE_CXX_FLAGS "-std=c++17 ${CMAKE_CXX_FLAGS}") - ELSEIF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") - SET (CMAKE_CXX_FLAGS "-std=c++17 ${CMAKE_CXX_FLAGS}") - ELSEIF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") - # MESSAGE ( FATAL_ERROR "MSVC doesn't support C++17.") - ENDIF () - ELSEIF (MSGPACK_CXX11) - IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") - SET (CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}") - ELSEIF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") - SET (CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}") - ELSEIF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") - IF (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19) - MESSAGE ( FATAL_ERROR "MSVC doesn't support C++11.") - ENDIF () - ENDIF () - ELSE () - IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") - IF ((CMAKE_CXX_COMPILER_VERSION VERSION_GREATER ${GNUCXX_STD_SUPPORT_VERSION}) OR - (CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL ${GNUCXX_STD_SUPPORT_VERSION})) - SET (CMAKE_CXX_FLAGS "-std=c++98 ${CMAKE_CXX_FLAGS}") - ENDIF () - ELSEIF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") - SET (CMAKE_CXX_FLAGS "-std=c++98 ${CMAKE_CXX_FLAGS}") - ELSEIF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") - IF (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 18) - SET (CMAKE_CXX_FLAGS "-DMSGPACK_USE_CPP03 ${CMAKE_CXX_FLAGS}") - ENDIF () - ENDIF () - ENDIF () + SET (CMAKE_CXX_STANDARD 98) ENDIF () IF (MSGPACK_32BIT) - IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") - SET (CMAKE_CXX_FLAGS "-m32 ${CMAKE_CXX_FLAGS}") - SET (CMAKE_EXE_LINKER_FLAGS "-m32 ${CMAKE_EXE_LINKER_FLAGS}") - ELSEIF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") - SET (CMAKE_CXX_FLAGS "-m32 ${CMAKE_CXX_FLAGS}") - SET (CMAKE_EXE_LINKER_FLAGS "-m32 ${CMAKE_EXE_LINKER_FLAGS}") - ENDIF () + IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") + SET (CMAKE_CXX_FLAGS "-m32 ${CMAKE_CXX_FLAGS}") + SET (CMAKE_EXE_LINKER_FLAGS "-m32 ${CMAKE_EXE_LINKER_FLAGS}") + ELSEIF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") + SET (CMAKE_CXX_FLAGS "-m32 ${CMAKE_CXX_FLAGS}") + SET (CMAKE_EXE_LINKER_FLAGS "-m32 ${CMAKE_EXE_LINKER_FLAGS}") + ENDIF () ENDIF () -OPTION (MSGPACK_BUILD_EXAMPLES "Build msgpack examples." ON) - SET (Boost_USE_MULTITHREADED ON) SET (Boost_USE_STATIC_RUNTIME OFF) -FIND_PACKAGE (Boost REQUIRED COMPONENTS chrono system OPTIONAL_COMPONENTS timer) - -INCLUDE_DIRECTORIES ( - ${Boost_INCLUDE_DIRS} -) -LINK_DIRECTORIES ( - ${Boost_LIBRARY_DIRS} -) -IF (MSGPACK_BOOST_DIR) - INCLUDE_DIRECTORIES ( - ${MSGPACK_BOOST_DIR} - ) -ENDIF () IF (MSGPACK_CHAR_SIGN) - SET (CMAKE_CXX_FLAGS "-f${MSGPACK_CHAR_SIGN}-char ${CMAKE_CXX_FLAGS}") + SET (CMAKE_CXX_FLAGS "-f${MSGPACK_CHAR_SIGN}-char ${CMAKE_CXX_FLAGS}") ENDIF () IF (MSGPACK_DEFAULT_API_VERSION) - SET (CMAKE_CXX_FLAGS "-DMSGPACK_DEFAULT_API_VERSION=${MSGPACK_DEFAULT_API_VERSION} ${CMAKE_CXX_FLAGS}") + SET (CMAKE_CXX_FLAGS "-DMSGPACK_DEFAULT_API_VERSION=${MSGPACK_DEFAULT_API_VERSION} ${CMAKE_CXX_FLAGS}") ELSE () - SET (CMAKE_CXX_FLAGS "-DMSGPACK_DEFAULT_API_VERSION=3 ${CMAKE_CXX_FLAGS}") + SET (CMAKE_CXX_FLAGS "-DMSGPACK_DEFAULT_API_VERSION=3 ${CMAKE_CXX_FLAGS}") ENDIF () -FIND_PACKAGE (GTest) -FIND_PACKAGE (ZLIB) -FIND_PACKAGE (Threads) -IF (GTEST_FOUND AND ZLIB_FOUND AND THREADS_FOUND AND NOT "${MSGPACK_FUZZ_REGRESSION}" STREQUAL "ON") - OPTION (MSGPACK_BUILD_TESTS "Build msgpack tests." ON) - OPTION (MSGPACK_GEN_COVERAGE "Enable running gcov to get a test coverage report." OFF) -ENDIF () - - IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") IF (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.1) INCLUDE (CheckCXXSourceCompiles) @@ -133,35 +89,31 @@ int main(int argc, char * argv[]) ENDIF () ENDIF () +FIND_PACKAGE (Boost REQUIRED) INCLUDE (Files.cmake) -ADD_LIBRARY (msgpackcxx INTERFACE) +ADD_LIBRARY (msgpackc-cxx INTERFACE) -TARGET_INCLUDE_DIRECTORIES (msgpackcxx +TARGET_INCLUDE_DIRECTORIES (msgpackc-cxx INTERFACE $ $ $ ) -# enable regression testing -IF ("${MSGPACK_FUZZ_REGRESSION}" STREQUAL "ON" AND "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") - enable_testing () - ADD_SUBDIRECTORY (fuzz) - SET (MSGPACK_BUILD_EXAMPLES OFF) -ENDIF () +TARGET_LINK_LIBRARIES (msgpackc-cxx INTERFACE Boost::boost) IF (MSGPACK_GEN_COVERAGE) IF (NOT MSGPACK_BUILD_TESTS) MESSAGE(FATAL_ERROR "Coverage requires -DMSGPACK_BUILD_TESTS=ON") ENDIF () - STRING(TOUPPER "${CMAKE_BUILD_TYPE}" UPPER_CMAKE_BUILD_TYPE) + STRING (TOUPPER "${CMAKE_BUILD_TYPE}" UPPER_CMAKE_BUILD_TYPE) IF (NOT "${UPPER_CMAKE_BUILD_TYPE}" STREQUAL "DEBUG") - MESSAGE(FATAL_ERROR "Coverage requires -DCMAKE_BUILD_TYPE=Debug") + MESSAGE (FATAL_ERROR "Coverage requires -DCMAKE_BUILD_TYPE=Debug") ENDIF () - INCLUDE(CodeCoverage) + INCLUDE (CodeCoverage) SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COVERAGE_FLAGS}") SETUP_TARGET_FOR_COVERAGE(coverage make coverage test) @@ -171,17 +123,15 @@ IF (MSGPACK_BUILD_TESTS) ENABLE_TESTING () # MEMORYCHECK_COMMAND_OPTIONS needs to place prior to CTEST_MEMORYCHECK_COMMAND SET (MEMORYCHECK_COMMAND_OPTIONS "--leak-check=full --show-leak-kinds=definite,possible --error-exitcode=1") - FIND_PROGRAM(CTEST_MEMORYCHECK_COMMAND NAMES valgrind) - INCLUDE(Dart) + FIND_PROGRAM (CTEST_MEMORYCHECK_COMMAND NAMES valgrind) + INCLUDE (Dart) ADD_SUBDIRECTORY (test) ENDIF () -IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") - IF (CMAKE_CXX_FLAGS MATCHES "/W[0-4]") - STRING(REGEX REPLACE "/W[0-4]" "/W3 /WX" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") - ELSE () - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3 /WX") - ENDIF () +# enable regression testing +IF (MSGPACK_FUZZ_REGRESSION) + ENABLE_TESTING () + ADD_SUBDIRECTORY (fuzz) ENDIF () IF ("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "sparc") @@ -192,11 +142,6 @@ IF (MSGPACK_BUILD_EXAMPLES) ADD_SUBDIRECTORY (example) ENDIF () -FOREACH (file ${msgpackc_HEADERS}) - GET_FILENAME_COMPONENT (dir ${file} PATH) - INSTALL (FILES ${file} DESTINATION ${CMAKE_INSTALL_PREFIX}/${dir}) -ENDFOREACH () - # Doxygen FIND_PACKAGE (Doxygen) IF (DOXYGEN_FOUND) @@ -221,3 +166,56 @@ IF (DOXYGEN_FOUND) VERBATIM ) ENDIF () + +# Install library. +INSTALL (TARGETS msgpackc-cxx + EXPORT msgpackc-cxx-targets + COMPONENT msgpackc-cxx + # This provides include directory in exported target + # relative to prefix in single directory we've put everything in. + INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" +) + +# Install headers from source tree. +INSTALL (DIRECTORY include/ + DESTINATION include + COMPONENT msgpackc-cxx +) + +INCLUDE (CMakePackageConfigHelpers) + +IF (NOT (CMAKE_VERSION VERSION_LESS 3.14)) + SET (extra_version_file_args ARCH_INDEPENDENT) +ENDIF () +SET (cmake_config_path "lib/cmake/msgpackc-cxx") + +# Configure the main package file from source tree. +CONFIGURE_PACKAGE_CONFIG_FILE ( + msgpack-config.cmake.in + "${CMAKE_CURRENT_BINARY_DIR}/msgpack-config.cmake" + INSTALL_DESTINATION "${cmake_config_path}" +) + +# Write package version file. +WRITE_BASIC_PACKAGE_VERSION_FILE ( + msgpack-config-version.cmake + VERSION ${VERSION} + COMPATIBILITY SameMajorVersion + ${extra_version_file_args} +) + +# Install the generated package version file and the main package file. +INSTALL (FILES + "${CMAKE_CURRENT_BINARY_DIR}/msgpack-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/msgpack-config-version.cmake" + DESTINATION "${cmake_config_path}" + COMPONENT msgpackc-cxx +) + +# This installs package in install tree for using installed targets. +INSTALL ( + EXPORT msgpackc-cxx-targets + FILE msgpackc-cxx-targets.cmake + DESTINATION "${cmake_config_path}" + COMPONENT msgpackc-cxx +) diff --git a/Files.cmake b/Files.cmake index ad92fb94..d1a482a2 100644 --- a/Files.cmake +++ b/Files.cmake @@ -28,11 +28,13 @@ SET (msgpackc_HEADERS include/msgpack/adaptor/cpp11/unique_ptr.hpp include/msgpack/adaptor/cpp11/unordered_map.hpp include/msgpack/adaptor/cpp11/unordered_set.hpp + include/msgpack/adaptor/cpp17/array_byte.hpp include/msgpack/adaptor/cpp17/byte.hpp include/msgpack/adaptor/cpp17/carray_byte.hpp include/msgpack/adaptor/cpp17/optional.hpp include/msgpack/adaptor/cpp17/string_view.hpp include/msgpack/adaptor/cpp17/vector_byte.hpp + include/msgpack/adaptor/cpp20/span.hpp include/msgpack/adaptor/define.hpp include/msgpack/adaptor/define_decl.hpp include/msgpack/adaptor/deque.hpp @@ -68,6 +70,7 @@ SET (msgpackc_HEADERS include/msgpack/adaptor/wstring.hpp include/msgpack/cpp_config.hpp include/msgpack/cpp_config_decl.hpp + include/msgpack/cpp_version.hpp include/msgpack/create_object_visitor.hpp include/msgpack/create_object_visitor_decl.hpp include/msgpack/fbuffer.hpp @@ -124,11 +127,13 @@ SET (msgpackc_HEADERS include/msgpack/v1/adaptor/cpp11/unique_ptr.hpp include/msgpack/v1/adaptor/cpp11/unordered_map.hpp include/msgpack/v1/adaptor/cpp11/unordered_set.hpp + include/msgpack/v1/adaptor/cpp17/array_byte.hpp include/msgpack/v1/adaptor/cpp17/byte.hpp include/msgpack/v1/adaptor/cpp17/carray_byte.hpp include/msgpack/v1/adaptor/cpp17/optional.hpp include/msgpack/v1/adaptor/cpp17/string_view.hpp include/msgpack/v1/adaptor/cpp17/vector_byte.hpp + include/msgpack/v1/adaptor/cpp20/span.hpp include/msgpack/v1/adaptor/define.hpp include/msgpack/v1/adaptor/define_decl.hpp include/msgpack/v1/adaptor/deque.hpp diff --git a/README.md b/README.md index 45c6106e..6dbea6b1 100644 --- a/README.md +++ b/README.md @@ -64,72 +64,112 @@ int main() See [`QUICKSTART-CPP.md`](./QUICKSTART-CPP.md) for more details. Dependency ------ +---------- + msgpack-c requires [boost library](https://www.boost.org/). -msgpack-c depends on only boost headers. You don't need to link boost libraries. +C++ version of msgpack-c itself is a header-only library and depends only on +boost headers. Tests depend on boost unit test framework and are linked with +it, so if you want to build them, you need to have this dependency installed. Usage ----- -### C++ Header Only Library +- If you build your project with cmake, you can find msgpack-c with a + canonical cmake-way: -When you use msgpack on C++, you can just add -msgpack-c/include to your include path: + ```cmake + # ... + find_package(msgpack REQUIRED) + # ... + target_link_libraries(your_target_name msgpackc-cxx) + # ... + ``` - g++ -I msgpack-c/include -I path_to_boost your_source_file.cpp + This will search for `msgpack` cmake package in a system prefix and in + prefixes from `CMAKE_PREFIX_PATH`. Note that msgpack-c depends on boost + headers, and `msgpack` cmake package depends on `Boost` cmake package. The + library is header-only and `target_link_libraries` command just adds path + to msgpack-c headers to your compiler's include path. + A usage example can be found at [test-install](test-install) directory. -### Building and Installing +- If you do not use cmake, you can just add path yo msgpack-c and boost + headers to your include path: -#### Install from git repository + ```bash + g++ -I msgpack-c/include -I path_to_boost your_source_file.cpp + ``` -##### Using the Terminal (CLI) +Building and Installing +----------------------- + +### Install from git repository + +#### Using the Terminal (CLI) You will need: - - `gcc >= 4.1.0` - - `cmake >= 3.0.0` +- `gcc >= 4.1.0` +- `cmake >= 3.1.0` C++03: - $ git clone https://github.com/msgpack/msgpack-c.git - $ cd msgpack-c - $ git checkout cpp_master - $ cmake . - $ make - $ sudo make install +```bash +git clone https://github.com/msgpack/msgpack-c.git +cd msgpack-c +git checkout cpp_master +cmake . +sudo cmake --build . --target install +``` -If you want to setup C++17 version of msgpack instead, -execute the following commands: +If you want to build tests with different C++ version, you can use +`MSGPACK_CXX11`, `MSGPACK_CXX14`, `MSGPACK_CXX17`, `MSGPACK_CXX20` options. +Just replace the line - $ git clone https://github.com/msgpack/msgpack-c.git - $ cd msgpack-c - $ git checkout cpp_master - $ cmake -DMSGPACK_CXX17=ON . - $ make - $ sudo make install +```bash +cmake . +``` -For C++11, replace `-DMSGPACK_CXX17=ON` with `-DMSGPACK_CXX11=ON`. +with a line like that: -`MSGPACK_CXX11` and `MSGPACK_CXX17` flags do not affect installation. They just switch test cases. All files are installed in every settings. +```bash +cmake -DMSGPACK_CXX20=ON . +``` +Note that these flags do not affect installation. They just switch test cases. +All files are installed in every settings. + +If you don't have superuser permissions or don't want to install the library +to a system-wide prefix, you can use `CMAKE_INSTALL_PREFIX` option like that: + +```bash +cmake -DCMAKE_INSTALL_PREFIX=/your/custom/prefix . +``` + +Other useful options: + +- `MSGPACK_BUILD_TESTS` (default `OFF`): build tests +- `MSGPACK_BUILD_EXAMPLES` (default `OFF`): build examples +- `MSGPACK_32BIT` (default `OFF`): 32bit compile +- `MSGPACK_USE_X3_PARSE` (default `OFF`): use Boost X3 parse + (note that it requires C++14 or newer) #### GUI on Windows -Clone msgpack-c git repository. +Clone msgpack-c git repository with the command: - $ git clone https://github.com/msgpack/msgpack-c.git +``` +git clone https://github.com/msgpack/msgpack-c.git +``` -or using GUI git client. +or using GUI git client (e.g. [tortoise git](https://code.google.com/p/tortoisegit/)). -e.g.) tortoise git https://code.google.com/p/tortoisegit/ - -1. Checkout to cpp_master branch +1. Checkout to `cpp_master` branch 2. Launch [cmake GUI client](http://www.cmake.org/cmake/resources/software.html). -3. Set 'Where is the source code:' text box and 'Where to build -the binaries:' text box. +3. Set 'Where is the source code:' text box and + 'Where to build the binaries:' text box. 4. Click 'Configure' button. @@ -141,7 +181,8 @@ the binaries:' text box. 8. Build all. -### Documentation +Documentation +------------- You can get additional information including the tutorial on the [wiki](https://github.com/msgpack/msgpack-c/wiki). diff --git a/appveyor.yml b/appveyor.yml index 281d374f..25d005c1 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -4,57 +4,63 @@ branches: only: - cpp_master -image: -- Visual Studio 2015 environment: - global: - BOOST_ROOT: C:\Libraries\boost_1_67_0 matrix: - - cpp11: -DMSGPACK_CXX11=OFF - example: -DMSGPACK_BUILD_EXAMPLES=OFF - msvc: '"Visual Studio 10 2010"' - - cpp11: -DMSGPACK_CXX11=OFF - example: -DMSGPACK_BUILD_EXAMPLES=OFF - msvc: '"Visual Studio 11 2012"' - - cpp11: -DMSGPACK_CXX11=OFF - example: -DMSGPACK_BUILD_EXAMPLES=OFF + - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013 + cpp11: -DMSGPACK_CXX11=OFF msvc: '"Visual Studio 12 2013"' - - cpp11: -DMSGPACK_CXX11=ON - example: -DMSGPACK_BUILD_EXAMPLES=ON + boost_prefix: C:\Libraries\boost_1_58_0 + boost_subdir: lib32-msvc-12.0 + - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 + cpp11: -DMSGPACK_CXX11=OFF msvc: '"Visual Studio 14 2015"' - - cpp11: -DMSGPACK_CXX11=OFF - example: -DMSGPACK_BUILD_EXAMPLES=ON + boost_prefix: C:\Libraries\boost_1_69_0 + boost_subdir: lib32-msvc-14.0 + - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 + cpp11: -DMSGPACK_CXX11=ON msvc: '"Visual Studio 14 2015"' + boost_prefix: C:\Libraries\boost_1_69_0 + boost_subdir: lib32-msvc-14.0 build_script: - ps: | - appveyor DownloadFile https://github.com/google/googletest/archive/release-1.7.0.zip -FileName googletest-release-1.7.0.zip - 7z x googletest-release-1.7.0.zip 2> $null - cd googletest-release-1.7.0 - md build - cd build - cmake -G $env:msvc -DBUILD_SHARED_LIBS=ON -DCMAKE_CXX_FLAGS=/D_VARIADIC_MAX=10 .. - cmake --build . --config Release - cd .. - cd .. appveyor DownloadFile http://zlib.net/zlib-1.2.11.tar.gz -FileName zlib-1.2.11.tar.gz 7z x zlib-1.2.11.tar.gz 2> $null 7z x zlib-1.2.11.tar 2> $null cd zlib-1.2.11 + md build + md prefix cd build - cmake -G $env:msvc .. + + cmake ` + -G $env:msvc ` + -D CMAKE_INSTALL_PREFIX="$env:APPVEYOR_BUILD_FOLDER\zlib-1.2.11\prefix" ` + .. + if ($LastExitCode -ne 0) { exit $LastExitCode } + + cmake --build . --target install --config Release + if ($LastExitCode -ne 0) { exit $LastExitCode } + cd ..\.. + + md build + md prefix + cd build + + cmake ` + -G $env:msvc ` + $env:cpp11 ` + -D MSGPACK_BUILD_EXAMPLES=ON ` + -D MSGPACK_BUILD_TESTS=ON ` + -D CMAKE_EXE_LINKER_FLAGS=/LIBPATH:"$env:boost_prefix\$env:boost_subdir" ` + -D CMAKE_PREFIX_PATH="$env:boost_prefix;$env:APPVEYOR_BUILD_FOLDER\zlib-1.2.11\prefix" ` + -D CMAKE_INSTALL_PREFIX="$env:APPVEYOR_BUILD_FOLDER\prefix" ` + -D CMAKE_CXX_FLAGS="/D_VARIADIC_MAX=10 /EHsc /DBOOST_ALL_DYN_LINK" ` + .. + if ($LastExitCode -ne 0) { exit $LastExitCode } + cmake --build . --config Release - copy zconf.h .. - cd .. - cd .. - if ($env:msvc -ne '"Visual Studio 14 2015"') { - ((Get-Content CMakeLists.txt) -replace "COMPONENTS chrono system OPTIONAL_COMPONENTS timer", "") | Set-Content -Path CMakeLists.txt - } - md build - cd build - cmake -G $env:msvc $env:cpp11 $env:example $env:x3_parse -DGTEST_LIBRARY="$env:APPVEYOR_BUILD_FOLDER\googletest-release-1.7.0\build\Release\gtest.lib" -DGTEST_MAIN_LIBRARY="$env:APPVEYOR_BUILD_FOLDER\googletest-release-1.7.0\build\Release\gtest_main.lib" -DGTEST_INCLUDE_DIR="$env:APPVEYOR_BUILD_FOLDER\googletest-release-1.7.0\include" -DZLIB_LIBRARY="$env:APPVEYOR_BUILD_FOLDER\zlib-1.2.11\build\Release\zlib.lib" -DZLIB_INCLUDE_DIR="$env:APPVEYOR_BUILD_FOLDER\zlib-1.2.11" -DCMAKE_CXX_FLAGS='"/D_VARIADIC_MAX=10 /EHsc"' .. - cmake --build . --config Release -v + if ($LastExitCode -ne 0) { exit $LastExitCode } test_script: -- set PATH=%PATH%;%APPVEYOR_BUILD_FOLDER%\googletest-release-1.7.0\build\Release;%APPVEYOR_BUILD_FOLDER%\zlib-1.2.11\build\Release;%APPVEYOR_BUILD_FOLDER%\build\release -- ctest -V +- set PATH=%PATH%;%APPVEYOR_BUILD_FOLDER%\zlib-1.2.11\build\Release;%APPVEYOR_BUILD_FOLDER%\build\release;%boost_prefix%\%boost_subdir% +- ctest -VV -C Release diff --git a/ci/build_cmake.sh b/ci/build_cmake.sh index d0b1066d..a89c4464 100755 --- a/ci/build_cmake.sh +++ b/ci/build_cmake.sh @@ -1,66 +1,37 @@ #!/bin/bash -mkdir build +build_dir="$CXX-build" +prefix_dir="`pwd`/$CXX-prefix" +mkdir $build_dir || exit 1 +mkdir $prefix_dir || exit 1 -ret=$? -if [ $ret -ne 0 ] -then - exit $ret -fi - -cd build - -ret=$? -if [ $ret -ne 0 ] -then - exit $ret -fi - -if [ "${ARCH}" == "32" ] -then +if [ "${ARCH}" == "32" ]; then export BIT32="ON" export ARCH_FLAG="-m32" - ZLIB32="-DZLIB_LIBRARY=/usr/lib32/libz.a" else export BIT32="OFF" 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}" ${ZLIB32} .. +cmake \ + -D CMAKE_PREFIX_PATH="${HOME}/boost-prefix/${ARCH};${HOME}/zlib-prefix/${ARCH}" \ + -D MSGPACK_BUILD_TESTS=ON \ + -D ${MSGPACK_CXX_VERSION} \ + -D MSGPACK_32BIT=${BIT32} \ + -D MSGPACK_CHAR_SIGN=${CHAR_SIGN} \ + -D MSGPACK_DEFAULT_API_VERSION=${API_VERSION} \ + -D MSGPACK_USE_X3_PARSE=${X3_PARSE} \ + -D CMAKE_CXX_FLAGS="${CXXFLAGS} ${ARCH_FLAG}" \ + -D CMAKE_INSTALL_PREFIX=$prefix_dir \ + -B $build_dir \ + -S . || exit 1 -ret=$? -if [ $ret -ne 0 ] -then - exit $ret -fi +cmake --build $build_dir --target install || exit 1 -make +ctest -VV --test-dir $build_dir || exit 1 -ret=$? -if [ $ret -ne 0 ] -then - exit $ret -fi - -ctest -VV - -ret=$? -if [ $ret -ne 0 ] -then - exit $ret -fi - -make install DESTDIR=`pwd`/install - -ret=$? -if [ $ret -ne 0 ] -then - exit $ret -fi - -if [ "${ARCH}" != "32" ] && [ `uname` = "Linux" ] -then - ctest -T memcheck | tee memcheck.log +if [ "${ARCH}" != "32" ] && [ `uname` = "Linux" ]; then + ctest -T memcheck --test-dir $build_dir | tee memcheck.log ret=${PIPESTATUS[0]} if [ $ret -ne 0 ] @@ -75,39 +46,15 @@ then fi fi -if [ "${ARCH}" != "32" ] -then - mkdir install-test +if [ "${ARCH}" != "32" ]; then + cd test-install || exit 1 - ret=$? - if [ $ret -ne 0 ] - then - exit $ret - fi + mkdir $build_dir + cmake \ + -D CMAKE_PREFIX_PATH="$prefix_dir;${HOME}/boost-prefix/${ARCH}" \ + -B $build_dir \ + -S . || exit 1 + cmake --build $build_dir --target all || exit 1 - cd install-test - - ret=$? - if [ $ret -ne 0 ] - then - exit $ret - fi - - ${CXX} ../../example/cpp03/simple.cpp -o simple -I `pwd`/../install/usr/local/include -I ${GTEST_ROOT}/include -L ${GTEST_ROOT}/lib -lgtest_main -lgtest - - ret=$? - if [ $ret -ne 0 ] - then - exit $ret - fi - - ./simple - - ret=$? - if [ $ret -ne 0 ] - then - exit $ret - fi + $build_dir/test-install || exit 1 fi - -exit 0 diff --git a/ci/build_regression.sh b/ci/build_regression.sh index c5b18621..0d4b94b3 100755 --- a/ci/build_regression.sh +++ b/ci/build_regression.sh @@ -1,20 +1,7 @@ #!/bin/bash -mkdir -p build - -ret=$? -if [ $ret -ne 0 ] -then - exit $ret -fi - -cd build - -ret=$? -if [ $ret -ne 0 ] -then - exit $ret -fi +build_dir="$CXX-build" +mkdir $build_dir || exit 1 if [ "${ARCH}" == "32" ] then @@ -22,28 +9,17 @@ then exit 1 fi -cmake -DMSGPACK_FUZZ_REGRESSION="ON" -DMSGPACK_CXX11="ON" -DMSGPACK_SAN=${MSGPACK_SAN} .. +cmake \ + -D CMAKE_PREFIX_PATH="${HOME}/boost-prefix/${ARCH};${HOME}/zlib-prefix/${ARCH}" \ + -D MSGPACK_FUZZ_REGRESSION="ON" \ + -D ${MSGPACK_CXX_VERSION} \ + -D MSGPACK_CHAR_SIGN=${CHAR_SIGN} \ + -D MSGPACK_DEFAULT_API_VERSION=${API_VERSION} \ + -D MSGPACK_USE_X3_PARSE=${X3_PARSE} \ + -D CMAKE_CXX_FLAGS="${CXXFLAGS}" \ + -B $build_dir \ + -S . || exit 1 -ret=$? -if [ $ret -ne 0 ] -then - exit $ret -fi +cmake --build $build_dir --target all || exit 1 -make - -ret=$? -if [ $ret -ne 0 ] -then - exit $ret -fi - -make test - -ret=$? -if [ $ret -ne 0 ] -then - exit $ret -fi - -exit 0 +ctest -VV --test-dir $build_dir || exit 1 diff --git a/ci/set_gcc_10.sh b/ci/set_gcc_10.sh new file mode 100755 index 00000000..dd47d049 --- /dev/null +++ b/ci/set_gcc_10.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +version=10 +priority=100 + +sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${version} ${priority} +sudo update-alternatives --install /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-${version} ${priority} +sudo update-alternatives --install /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-${version} ${priority} +sudo update-alternatives --install /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-${version} ${priority} +sudo update-alternatives --install /usr/bin/gcov gcov /usr/bin/gcov-${version} ${priority} +sudo update-alternatives --install /usr/bin/gcov-dump gcov-dump /usr/bin/gcov-dump-${version} ${priority} +sudo update-alternatives --install /usr/bin/gcov-tool gcov-tool /usr/bin/gcov-tool-${version} ${priority} +sudo update-alternatives --install /usr/bin/lto-dump lto-dump /usr/bin/lto-dump-${version} ${priority} +sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-${version} ${priority} + +sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc-${version} ${priority} +sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++-${version} ${priority} diff --git a/example/boost/CMakeLists.txt b/example/boost/CMakeLists.txt index 64ab1a93..10730f17 100644 --- a/example/boost/CMakeLists.txt +++ b/example/boost/CMakeLists.txt @@ -1,19 +1,16 @@ +FIND_PACKAGE (Boost REQUIRED COMPONENTS system) +FIND_PACKAGE (Threads REQUIRED) +FIND_PACKAGE (ZLIB REQUIRED) + LIST (APPEND exec_PROGRAMS msgpack_variant_capitalize.cpp msgpack_variant_mapbased.cpp ) -IF (MSGPACK_CXX11 OR MSGPACK_CXX17) - FIND_PACKAGE (Threads REQUIRED) - LIST (APPEND exec_PROGRAMS - asio_send_recv.cpp - ) + +IF (MSGPACK_CXX11 OR MSGPACK_CXX14 OR MSGPACK_CXX17 OR MSGPACK_CXX20) + LIST (APPEND exec_PROGRAMS asio_send_recv.cpp) IF (ZLIB_FOUND) - INCLUDE_DIRECTORIES ( - ${ZLIB_INCLUDE_DIRS} - ) - LIST (APPEND exec_PROGRAMS - asio_send_recv_zlib.cpp - ) + LIST (APPEND exec_PROGRAMS asio_send_recv_zlib.cpp) ENDIF () ENDIF () @@ -23,19 +20,14 @@ FOREACH (source_file ${exec_PROGRAMS}) ${source_file_we} ${source_file} ) - TARGET_INCLUDE_DIRECTORIES (${source_file_we} - PRIVATE - $ - ) - TARGET_LINK_LIBRARIES (${source_file_we} - ${Boost_SYSTEM_LIBRARY} - ${CMAKE_THREAD_LIBS_INIT} + TARGET_LINK_LIBRARIES (${source_file_we} PRIVATE + msgpackc-cxx + Boost::system + Threads::Threads ) IF (ZLIB_FOUND) - TARGET_LINK_LIBRARIES (${source_file_we} - ${ZLIB_LIBRARIES} - ) - ENDIF() + TARGET_LINK_LIBRARIES (${source_file_we} PRIVATE ZLIB::ZLIB) + ENDIF () IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra") ENDIF () diff --git a/example/boost/asio_send_recv_zlib.cpp b/example/boost/asio_send_recv_zlib.cpp index 885e8807..cffff2b2 100644 --- a/example/boost/asio_send_recv_zlib.cpp +++ b/example/boost/asio_send_recv_zlib.cpp @@ -85,12 +85,12 @@ int main() { } std::cout << bytes_transferred << " bytes read." << std::endl; print(std::string(std::string(&buf[0], buf.size()))); - strm.avail_in = bytes_transferred; + strm.avail_in = static_cast(bytes_transferred); do { strm.next_in = reinterpret_cast(&buf[0]) + (bytes_transferred - strm.avail_in); int zret; unp.reserve_buffer(window_size); - strm.avail_out = window_size; + strm.avail_out = static_cast(window_size); strm.next_out = reinterpret_cast(unp.buffer()); do { zret = inflate(&strm, Z_NO_FLUSH); diff --git a/example/cpp03/CMakeLists.txt b/example/cpp03/CMakeLists.txt index 5c48ca4f..a947c8c9 100644 --- a/example/cpp03/CMakeLists.txt +++ b/example/cpp03/CMakeLists.txt @@ -1,3 +1,7 @@ +FIND_PACKAGE (Threads REQUIRED) + +FIND_PACKAGE (Boost COMPONENTS timer) + LIST (APPEND exec_PROGRAMS class_intrusive.cpp class_intrusive_map.cpp @@ -35,9 +39,8 @@ FOREACH (source_file ${exec_PROGRAMS}) ${source_file_we} ${source_file} ) - TARGET_INCLUDE_DIRECTORIES (${source_file_we} - PRIVATE - $ + TARGET_LINK_LIBRARIES (${source_file_we} PRIVATE + msgpackc-cxx ) IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra") @@ -57,12 +60,9 @@ FOREACH (source_file ${with_pthread_PROGRAMS}) ${source_file_we} ${source_file} ) - TARGET_INCLUDE_DIRECTORIES (${source_file_we} - PRIVATE - $ - ) - TARGET_LINK_LIBRARIES (${source_file_we} - ${CMAKE_THREAD_LIBS_INIT} + TARGET_LINK_LIBRARIES (${source_file_we} PRIVATE + msgpackc-cxx + Threads::Threads ) IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra") @@ -77,27 +77,17 @@ FOREACH (source_file ${with_pthread_PROGRAMS}) ENDFOREACH () FOREACH (source_file ${with_boost_lib_PROGRAMS}) - INCLUDE_DIRECTORIES ( - ../include - ${Boost_INCLUDE_DIRS} - ) GET_FILENAME_COMPONENT (source_file_we ${source_file} NAME_WE) ADD_EXECUTABLE ( ${source_file_we} ${source_file} ) - TARGET_INCLUDE_DIRECTORIES (${source_file_we} - PRIVATE - $ - ) - LINK_DIRECTORIES(${Boost_LIBRARY_DIRS}) - TARGET_LINK_LIBRARIES (${source_file_we} - ${Boost_TIMER_LIBRARY} - ${Boost_CHRONO_LIBRARY} - ${Boost_SYSTEM_LIBRARY} + TARGET_LINK_LIBRARIES (${source_file_we} PRIVATE + msgpackc-cxx + Boost::timer ) IF (NOT MSVC AND NOT APPLE) - TARGET_LINK_LIBRARIES (${source_file_we} + TARGET_LINK_LIBRARIES (${source_file_we} PRIVATE rt ) ENDIF () diff --git a/example/cpp11/CMakeLists.txt b/example/cpp11/CMakeLists.txt index cd17d138..1f616398 100644 --- a/example/cpp11/CMakeLists.txt +++ b/example/cpp11/CMakeLists.txt @@ -1,8 +1,4 @@ -IF (MSGPACK_CXX11 OR MSGPACK_CXX17) - INCLUDE_DIRECTORIES ( - ../include - ) - +IF (MSGPACK_CXX11 OR MSGPACK_CXX14 OR MSGPACK_CXX17) LIST (APPEND exec_PROGRAMS container.cpp non_def_con_class.cpp @@ -20,9 +16,8 @@ IF (MSGPACK_CXX11 OR MSGPACK_CXX17) ${source_file_we} ${source_file} ) - TARGET_INCLUDE_DIRECTORIES (${source_file_we} - PRIVATE - $ + TARGET_LINK_LIBRARIES (${source_file_we} PRIVATE + msgpackc-cxx ) IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra") diff --git a/example/x3/CMakeLists.txt b/example/x3/CMakeLists.txt index f67ff80a..48d936f6 100644 --- a/example/x3/CMakeLists.txt +++ b/example/x3/CMakeLists.txt @@ -1,9 +1,6 @@ IF (MSGPACK_USE_X3_PARSE AND MSGPACK_DEFAULT_API_VERSION VERSION_GREATER 1) - FIND_PACKAGE (Boost REQUIRED COMPONENTS context) - - INCLUDE_DIRECTORIES ( - ../include - ) + FIND_PACKAGE (Boost REQUIRED COMPONENTS context system unit_test_framework) + FIND_PACKAGE (Threads REQUIRED) LIST (APPEND exec_PROGRAMS unpack.cpp @@ -18,10 +15,8 @@ IF (MSGPACK_USE_X3_PARSE AND MSGPACK_DEFAULT_API_VERSION VERSION_GREATER 1) ${source_file_we} ${source_file} ) - TARGET_INCLUDE_DIRECTORIES (${source_file_we} - PRIVATE - $ - ) + TARGET_LINK_LIBRARIES (${source_file_we} PRIVATE msgpackc-cxx) + IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra") ENDIF () @@ -44,14 +39,12 @@ IF (MSGPACK_USE_X3_PARSE AND MSGPACK_DEFAULT_API_VERSION VERSION_GREATER 1) ${source_file_we} ${source_file} ) - TARGET_INCLUDE_DIRECTORIES (${source_file_we} - PRIVATE - $ - ) - TARGET_LINK_LIBRARIES (${source_file_we} - ${Boost_CONTEXT_LIBRARY} - ${Boost_SYSTEM_LIBRARY} - ${CMAKE_THREAD_LIBS_INIT} + TARGET_LINK_LIBRARIES (${source_file_we} PRIVATE + msgpackc-cxx + Boost::context + Boost::system + Boost::unit_test_framework + Threads::Threads ) IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra") diff --git a/fuzz/CMakeLists.txt b/fuzz/CMakeLists.txt index 4ba2dabe..167378f3 100644 --- a/fuzz/CMakeLists.txt +++ b/fuzz/CMakeLists.txt @@ -1,21 +1,10 @@ -FIND_PACKAGE (GTest REQUIRED) -FIND_PACKAGE (ZLIB REQUIRED) -FIND_PACKAGE (Boost REQUIRED COMPONENTS system filesystem) - -INCLUDE_DIRECTORIES ( - ${GTEST_INCLUDE_DIRS} - ${ZLIB_INCLUDE_DIRS} - ${Boost_INCLUDE_DIRS} -) +FIND_PACKAGE (Threads REQUIRED) +FIND_PACKAGE (Boost REQUIRED COMPONENTS system filesystem unit_test_framework) LIST (APPEND check_PROGRAMS regression_runner.cpp ) -LINK_DIRECTORIES ( - ${Boost_LIBRARY_DIRS} -) - FOREACH (source_file ${check_PROGRAMS}) GET_FILENAME_COMPONENT (source_file_we ${source_file} NAME_WE) ADD_EXECUTABLE ( @@ -23,11 +12,11 @@ FOREACH (source_file ${check_PROGRAMS}) ${source_file} ) TARGET_LINK_LIBRARIES (${source_file_we} - msgpackcxx - ${GTEST_BOTH_LIBRARIES} - ${ZLIB_LIBRARIES} - ${CMAKE_THREAD_LIBS_INIT} - ${Boost_LIBRARIES} + msgpackc-cxx + Threads::Threads + Boost::filesystem + Boost::system + Boost::unit_test_framework ) ADD_TEST (${source_file_we} ${source_file_we}) IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") diff --git a/fuzz/regression_runner.cpp b/fuzz/regression_runner.cpp index 7b67222c..08aedd1b 100644 --- a/fuzz/regression_runner.cpp +++ b/fuzz/regression_runner.cpp @@ -1,50 +1,49 @@ #include -#include + +// Use parameterized tests instead of modern data-driven test cases +// because BOOST_DATA_TEST_CASE requires C++11 or newer. See: +// - https://www.boost.org/doc/libs/1_76_0/libs/test/doc/html/boost_test/tests_organization/test_cases/param_test.html +// - https://www.boost.org/doc/libs/1_76_0/libs/test/doc/html/boost_test/tests_organization/test_cases/test_case_generation.html +#include +#include #include -#include +#include #include #include "unpack_pack_fuzzer.cpp" -using ::testing::TestWithParam; -using ::testing::ValuesIn; - - std::vector ListDirectory(const std::string& path) { std::vector v; boost::filesystem::path p(path); - boost::filesystem::directory_iterator f{p}; + boost::filesystem::directory_iterator f(p); - if(boost::filesystem::is_directory(p)) { - while (f != boost::filesystem::directory_iterator{}) { + if (boost::filesystem::is_directory(p)) { + while (f != boost::filesystem::directory_iterator()) { v.push_back((*f++).path().string()); } } return v; } -class UnpackPackFuzzerRegressionTest : public ::testing::TestWithParam { -public: -}; - -TEST_P(UnpackPackFuzzerRegressionTest, Returns0) { - auto fpath = GetParam(); - std::ifstream in(fpath, std::ifstream::binary); +void UnpackPackFuzzerRegressionTest(const std::string& fpath) { + std::ifstream in(fpath.c_str(), std::ios_base::binary); if (!in) { - FAIL() << fpath << " not found"; + BOOST_FAIL(fpath + " not found"); } in.seekg(0, in.end); size_t length = in.tellg(); in.seekg(0, in.beg); std::vector bytes(length); in.read(bytes.data(), bytes.size()); - assert(in); - EXPECT_EQ(0, LLVMFuzzerTestOneInput(reinterpret_cast(bytes.data()), - bytes.size())); + BOOST_REQUIRE(in); + BOOST_REQUIRE_EQUAL(0, FuzzerTestOneInput(reinterpret_cast(bytes.data()), bytes.size())); } -INSTANTIATE_TEST_CASE_P(UnpackPackFuzzerRegressions, - UnpackPackFuzzerRegressionTest, - ::testing::ValuesIn(ListDirectory("../../fuzz/unpack_pack_fuzzer_regressions"))); +boost::unit_test::test_suite* init_unit_test_suite(int /*argc*/, char* /*argv*/[]) +{ + std::vector files = ListDirectory("../../fuzz/unpack_pack_fuzzer_regressions"); + boost::unit_test::framework::master_test_suite().add(BOOST_PARAM_TEST_CASE(&UnpackPackFuzzerRegressionTest, files.begin(), files.end())); + return 0; +} diff --git a/fuzz/unpack_pack_fuzzer.cpp b/fuzz/unpack_pack_fuzzer.cpp index c0467610..032db43d 100644 --- a/fuzz/unpack_pack_fuzzer.cpp +++ b/fuzz/unpack_pack_fuzzer.cpp @@ -1,14 +1,14 @@ #include -extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { +extern "C" int FuzzerTestOneInput(const uint8_t *data, size_t size) { try { // NOTE(derwolfe): by default the limits are set at 2^32-1 length. I'm // setting these at far smaller values to avoid OOMs const int test_limit = 1000; msgpack::object_handle unpacked = msgpack::unpack(reinterpret_cast(data), size, - nullptr, - nullptr, + MSGPACK_NULLPTR, + MSGPACK_NULLPTR, msgpack::unpack_limit(test_limit, test_limit, test_limit, diff --git a/include/msgpack/adaptor/cpp17/array_byte.hpp b/include/msgpack/adaptor/cpp17/array_byte.hpp new file mode 100644 index 00000000..069f36ee --- /dev/null +++ b/include/msgpack/adaptor/cpp17/array_byte.hpp @@ -0,0 +1,16 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2021 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_TYPE_CPP17_ARRAY_BYTE_HPP +#define MSGPACK_TYPE_CPP17_ARRAY_BYTE_HPP + +#include "msgpack/v1/adaptor/cpp17/array_byte.hpp" + +#endif // MSGPACK_TYPE_CPP17_ARRAY_BYTE_HPP diff --git a/include/msgpack/adaptor/cpp20/span.hpp b/include/msgpack/adaptor/cpp20/span.hpp new file mode 100644 index 00000000..b779b47e --- /dev/null +++ b/include/msgpack/adaptor/cpp20/span.hpp @@ -0,0 +1,16 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2021 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_TYPE_CPP20_SPAN_HPP +#define MSGPACK_TYPE_CPP20_SPAN_HPP + +#include "msgpack/v1/adaptor/cpp20/span.hpp" + +#endif // MSGPACK_TYPE_CPP20_SPAN_HPP diff --git a/include/msgpack/cpp_version.hpp b/include/msgpack/cpp_version.hpp new file mode 100644 index 00000000..f3d072c9 --- /dev/null +++ b/include/msgpack/cpp_version.hpp @@ -0,0 +1,18 @@ +#ifndef MSGPACK_CPP_VERSION_HPP +#define MSGPACK_CPP_VERSION_HPP + +#if defined(_MSC_VER) +# if _MSC_VER < 1900 +# define MSGPACK_USE_CPP03 +# endif +#elif (__cplusplus < 201103L) +# define MSGPACK_USE_CPP03 +#endif + +#if defined(_MSVC_LANG) +# define MSGPACK_CPP_VERSION _MSVC_LANG +#else +# define MSGPACK_CPP_VERSION __cplusplus +#endif + +#endif // MSGPACK_CPP_VERSION_HPP diff --git a/include/msgpack/type.hpp b/include/msgpack/type.hpp index d2f3ee93..109cd85a 100644 --- a/include/msgpack/type.hpp +++ b/include/msgpack/type.hpp @@ -54,10 +54,15 @@ #include "adaptor/cpp17/string_view.hpp" #endif // MSGPACK_HAS_INCLUDE() +#include "adaptor/cpp17/array_byte.hpp" #include "adaptor/cpp17/byte.hpp" #include "adaptor/cpp17/carray_byte.hpp" #include "adaptor/cpp17/vector_byte.hpp" +#if MSGPACK_HAS_INCLUDE() +#include "adaptor/cpp20/span.hpp" +#endif // MSGPACK_HAS_INCLUDE() + #endif // defined(MSGPACK_USE_CPP03) #include "adaptor/boost/fusion.hpp" diff --git a/include/msgpack/v1/adaptor/cpp17/array_byte.hpp b/include/msgpack/v1/adaptor/cpp17/array_byte.hpp new file mode 100644 index 00000000..ffaf427a --- /dev/null +++ b/include/msgpack/v1/adaptor/cpp17/array_byte.hpp @@ -0,0 +1,123 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2021 KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +#ifndef MSGPACK_V1_TYPE_ARRAY_BYTE_HPP +#define MSGPACK_V1_TYPE_ARRAY_BYTE_HPP + +#include "msgpack/cpp_version.hpp" + +#if MSGPACK_CPP_VERSION >= 201703 + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/check_container_size.hpp" + +#include +#include +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +template +struct convert > { + msgpack::object const& operator()(msgpack::object const& o, std::array& v) const { + switch (o.type) { + case msgpack::type::BIN: + if (o.via.bin.size != N) + throw msgpack::type_error(); + if (N != 0) { +#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif // defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) + std::memcpy(&v.front(), o.via.bin.ptr, o.via.bin.size); +#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) +#pragma GCC diagnostic pop +#endif // defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) + } + break; + case msgpack::type::STR: + if (o.via.bin.size != N) + throw msgpack::type_error(); + if (N != 0) { +#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif // defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) + std::memcpy(&v.front(), o.via.str.ptr, o.via.str.size); +#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) +#pragma GCC diagnostic pop +#endif // defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) + } + break; + default: + throw msgpack::type_error(); + break; + } + return o; + } +}; + +template +struct pack > { + template + msgpack::packer& operator()(msgpack::packer& o, const std::array& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.pack_bin(size); + if (size != 0) { + o.pack_bin_body(reinterpret_cast(&v.front()), size); + } + + return o; + } +}; + +template +struct object > { + void operator()(msgpack::object& o, const std::array& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.type = msgpack::type::BIN; + if (size != 0) { + o.via.bin.ptr = reinterpret_cast(&v.front()); + } + o.via.bin.size = size; + } +}; + +template +struct object_with_zone > { + void operator()(msgpack::object::with_zone& o, const std::array& v) const { + uint32_t size = checked_get_container_size(v.size()); + o.type = msgpack::type::BIN; + o.via.bin.size = size; + if (size != 0) { + char* ptr = static_cast(o.zone.allocate_align(size, MSGPACK_ZONE_ALIGNOF(char))); + o.via.bin.ptr = ptr; + std::memcpy(ptr, &v.front(), size); + } + } +}; + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_CPP_VERSION >= 201703 + +#endif // MSGPACK_V1_TYPE_ARRAY_BYTE_HPP diff --git a/include/msgpack/v1/adaptor/cpp17/byte.hpp b/include/msgpack/v1/adaptor/cpp17/byte.hpp index a1d12047..4401567e 100644 --- a/include/msgpack/v1/adaptor/cpp17/byte.hpp +++ b/include/msgpack/v1/adaptor/cpp17/byte.hpp @@ -10,7 +10,9 @@ #ifndef MSGPACK_V1_TYPE_BYTE_HPP #define MSGPACK_V1_TYPE_BYTE_HPP -#if __cplusplus >= 201703 +#include "msgpack/cpp_version.hpp" + +#if MSGPACK_CPP_VERSION >= 201703 #include "msgpack/versioning.hpp" #include "msgpack/adaptor/adaptor_base.hpp" @@ -69,6 +71,6 @@ struct object_with_zone { } // namespace msgpack -#endif // __cplusplus >= 201703 +#endif // MSGPACK_CPP_VERSION >= 201703 #endif // MSGPACK_V1_TYPE_BYTE_HPP diff --git a/include/msgpack/v1/adaptor/cpp17/carray_byte.hpp b/include/msgpack/v1/adaptor/cpp17/carray_byte.hpp index e2be6bc0..85e43c73 100644 --- a/include/msgpack/v1/adaptor/cpp17/carray_byte.hpp +++ b/include/msgpack/v1/adaptor/cpp17/carray_byte.hpp @@ -10,7 +10,9 @@ #ifndef MSGPACK_V1_TYPE_CARRAY_BYTE_HPP #define MSGPACK_V1_TYPE_CARRAY_BYTE_HPP -#if __cplusplus >= 201703 +#include "msgpack/cpp_version.hpp" + +#if MSGPACK_CPP_VERSION >= 201703 #include "msgpack/versioning.hpp" #include "msgpack/adaptor/adaptor_base.hpp" @@ -104,6 +106,6 @@ struct object_with_zone { } // namespace msgpack -#endif // __cplusplus >= 201703 +#endif // MSGPACK_CPP_VERSION >= 201703 #endif // MSGPACK_V1_TYPE_CARRAY_BYTE_HPP diff --git a/include/msgpack/v1/adaptor/cpp17/optional.hpp b/include/msgpack/v1/adaptor/cpp17/optional.hpp index 2179ac08..5f38fe2e 100644 --- a/include/msgpack/v1/adaptor/cpp17/optional.hpp +++ b/include/msgpack/v1/adaptor/cpp17/optional.hpp @@ -10,7 +10,9 @@ #ifndef MSGPACK_V1_TYPE_OPTIONAL_HPP #define MSGPACK_V1_TYPE_OPTIONAL_HPP -#if __cplusplus >= 201703 +#include "msgpack/cpp_version.hpp" + +#if MSGPACK_CPP_VERSION >= 201703 #include "msgpack/versioning.hpp" #include "msgpack/adaptor/adaptor_base.hpp" @@ -85,6 +87,6 @@ struct object_with_zone > { } // namespace msgpack -#endif // __cplusplus >= 201703 +#endif // MSGPACK_CPP_VERSION >= 201703 #endif // MSGPACK_V1_TYPE_OPTIONAL_HPP diff --git a/include/msgpack/v1/adaptor/cpp17/string_view.hpp b/include/msgpack/v1/adaptor/cpp17/string_view.hpp index 8ec56c26..9341cb73 100644 --- a/include/msgpack/v1/adaptor/cpp17/string_view.hpp +++ b/include/msgpack/v1/adaptor/cpp17/string_view.hpp @@ -10,7 +10,9 @@ #ifndef MSGPACK_V1_TYPE_STRING_VIEW_HPP #define MSGPACK_V1_TYPE_STRING_VIEW_HPP -#if __cplusplus >= 201703 +#include "msgpack/cpp_version.hpp" + +#if MSGPACK_CPP_VERSION >= 201703 #include "msgpack/versioning.hpp" #include "msgpack/adaptor/adaptor_base.hpp" @@ -81,6 +83,6 @@ struct object_with_zone { } // namespace msgpack -#endif // __cplusplus >= 201703 +#endif // MSGPACK_CPP_VERSION >= 201703 #endif // MSGPACK_V1_TYPE_STRING_VIEW_HPP diff --git a/include/msgpack/v1/adaptor/cpp17/vector_byte.hpp b/include/msgpack/v1/adaptor/cpp17/vector_byte.hpp index f0a578b5..0f2dba17 100644 --- a/include/msgpack/v1/adaptor/cpp17/vector_byte.hpp +++ b/include/msgpack/v1/adaptor/cpp17/vector_byte.hpp @@ -10,7 +10,9 @@ #ifndef MSGPACK_V1_TYPE_VECTOR_BYTE_HPP #define MSGPACK_V1_TYPE_VECTOR_BYTE_HPP -#if __cplusplus >= 201703 +#include "msgpack/cpp_version.hpp" + +#if MSGPACK_CPP_VERSION >= 201703 #include "msgpack/versioning.hpp" #include "msgpack/adaptor/adaptor_base.hpp" @@ -114,6 +116,6 @@ struct object_with_zone > { } // namespace msgpack -#endif // __cplusplus >= 201703 +#endif // MSGPACK_CPP_VERSION >= 201703 #endif // MSGPACK_V1_TYPE_VECTOR_BYTE_HPP diff --git a/include/msgpack/v1/adaptor/cpp20/span.hpp b/include/msgpack/v1/adaptor/cpp20/span.hpp new file mode 100644 index 00000000..f2533356 --- /dev/null +++ b/include/msgpack/v1/adaptor/cpp20/span.hpp @@ -0,0 +1,123 @@ +// +// MessagePack for C++ static resolution routine +// +// Copyright (C) 2021 KONDO Takatoshi and Daniil Kovalev +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef MSGPACK_V1_TYPE_CPP20_SPAN_HPP +#define MSGPACK_V1_TYPE_CPP20_SPAN_HPP + +#include "msgpack/cpp_version.hpp" + +// Some compilers still do not set the corresponding macro to 202002 +#if MSGPACK_CPP_VERSION > 201703 + +#include "msgpack/versioning.hpp" +#include "msgpack/adaptor/adaptor_base.hpp" +#include "msgpack/adaptor/check_container_size.hpp" +#include "msgpack/meta.hpp" + +#include +#include +#include + +namespace msgpack { + +/// @cond +MSGPACK_API_VERSION_NAMESPACE(v1) { +/// @endcond + +namespace adaptor { + +#define MSGPACK_ADAPTOR_CONVERT_SPAN_BINARY(byte_t) \ + template <> \ + struct convert > { \ + msgpack::object const& operator()(msgpack::object const& o, std::span& v) const { \ + switch (o.type) { \ + case msgpack::type::BIN: \ + v = std::span(reinterpret_cast(o.via.bin.ptr), o.via.bin.size); \ + break; \ + default: \ + throw msgpack::type_error(); \ + break; \ + } \ + return o; \ + } \ + }; + +#define MSGPACK_ADAPTOR_PACK_SPAN_BINARY(byte_t) \ + template <> \ + struct pack > { \ + template \ + msgpack::packer& operator()(msgpack::packer& o, const std::span& v) const { \ + uint32_t size = checked_get_container_size(v.size()); \ + o.pack_bin(size); \ + if (size != 0) { \ + o.pack_bin_body(reinterpret_cast(v.data()), size); \ + } \ + return o; \ + } \ + }; + +#define MSGPACK_ADAPTOR_OBJECT_SPAN_BINARY(byte_t) \ + template <> \ + struct object > { \ + void operator()(msgpack::object& o, const std::span& v) const { \ + uint32_t size = checked_get_container_size(v.size()); \ + o.type = msgpack::type::BIN; \ + if (size != 0) { \ + o.via.bin.ptr = reinterpret_cast(v.data()); \ + } \ + o.via.bin.size = size; \ + } \ + }; + +#define MSGPACK_ADAPTOR_OBJECT_WITH_ZONE_SPAN_BINARY(byte_t) \ + template <> \ + struct object_with_zone > { \ + void operator()(msgpack::object::with_zone& o, const std::span& v) const { \ + uint32_t size = checked_get_container_size(v.size()); \ + o.type = msgpack::type::BIN; \ + o.via.bin.size = size; \ + if (size != 0) { \ + char* ptr = static_cast(o.zone.allocate_align(size, MSGPACK_ZONE_ALIGNOF(char))); \ + o.via.bin.ptr = ptr; \ + std::memcpy(ptr, v.data(), size); \ + } \ + } \ + }; + +#define MSGPACK_ADAPTOR_SPAN_BINARY(byte_t) \ + MSGPACK_ADAPTOR_CONVERT_SPAN_BINARY(byte_t) \ + MSGPACK_ADAPTOR_PACK_SPAN_BINARY(byte_t) \ + MSGPACK_ADAPTOR_PACK_SPAN_BINARY(const byte_t) \ + MSGPACK_ADAPTOR_OBJECT_SPAN_BINARY(byte_t) \ + MSGPACK_ADAPTOR_OBJECT_SPAN_BINARY(const byte_t) \ + MSGPACK_ADAPTOR_OBJECT_WITH_ZONE_SPAN_BINARY(byte_t) \ + MSGPACK_ADAPTOR_OBJECT_WITH_ZONE_SPAN_BINARY(const byte_t) + +MSGPACK_ADAPTOR_SPAN_BINARY(char) +MSGPACK_ADAPTOR_SPAN_BINARY(unsigned char) +MSGPACK_ADAPTOR_SPAN_BINARY(std::byte) + +#undef MSGPACK_ADAPTOR_SPAN_BINARY +#undef MSGPACK_ADAPTOR_OBJECT_WITH_ZONE_SPAN_BINARY +#undef MSGPACK_ADAPTOR_OBJECT_SPAN_BINARY +#undef MSGPACK_ADAPTOR_PACK_SPAN_BINARY +#undef MSGPACK_ADAPTOR_CONVERT_SPAN_BINARY + +} // namespace adaptor + +/// @cond +} // MSGPACK_API_VERSION_NAMESPACE(v1) +/// @endcond + +} // namespace msgpack + +#endif // MSGPACK_CPP_VERSION > 201703 + +#endif // MSGPACK_V1_TYPE_CPP11_ARRAY_HPP diff --git a/include/msgpack/v1/adaptor/ext.hpp b/include/msgpack/v1/adaptor/ext.hpp index 26a4b538..11fed72f 100644 --- a/include/msgpack/v1/adaptor/ext.hpp +++ b/include/msgpack/v1/adaptor/ext.hpp @@ -37,7 +37,7 @@ public: m_data.resize(static_cast(s) + 1); m_data[0] = static_cast(t); } - ext(ext_ref const&); + explicit ext(ext_ref const&); int8_t type() const { return static_cast(m_data[0]); } @@ -167,6 +167,7 @@ public: if (m_size < x.m_size) return false; return std::memcmp(m_ptr, x.m_ptr, m_size) > 0; } + private: const char* m_ptr; uint32_t m_size; diff --git a/include/msgpack/v1/adaptor/map.hpp b/include/msgpack/v1/adaptor/map.hpp index 8c06c96b..3662a486 100644 --- a/include/msgpack/v1/adaptor/map.hpp +++ b/include/msgpack/v1/adaptor/map.hpp @@ -10,6 +10,8 @@ #ifndef MSGPACK_V1_TYPE_MAP_HPP #define MSGPACK_V1_TYPE_MAP_HPP +#include "msgpack/versioning.hpp" +#include "msgpack/cpp_version.hpp" #include "msgpack/v1/adaptor/map_decl.hpp" #include "msgpack/adaptor/adaptor_base.hpp" @@ -154,13 +156,13 @@ struct convert > { for (; p != pend; ++p) { K key; p->key.convert(key); -#if __cplusplus >= 201103L +#if MSGPACK_CPP_VERSION >= 201103L p->val.convert(tmp[std::move(key)]); #else p->val.convert(tmp[key]); #endif } -#if __cplusplus >= 201103L +#if MSGPACK_CPP_VERSION >= 201103L v = std::move(tmp); #else tmp.swap(v); @@ -248,13 +250,13 @@ struct convert > { std::pair value; p->key.convert(value.first); p->val.convert(value.second); -#if __cplusplus >= 201103L +#if MSGPACK_CPP_VERSION >= 201103L tmp.insert(std::move(value)); #else tmp.insert(value); #endif } -#if __cplusplus >= 201103L +#if MSGPACK_CPP_VERSION >= 201103L v = std::move(tmp); #else tmp.swap(v); diff --git a/include/msgpack/v1/adaptor/raw.hpp b/include/msgpack/v1/adaptor/raw.hpp index 80efdc78..e2f4cf42 100644 --- a/include/msgpack/v1/adaptor/raw.hpp +++ b/include/msgpack/v1/adaptor/raw.hpp @@ -34,7 +34,7 @@ struct raw_ref { bool operator== (const raw_ref& x) const { - return size == x.size && std::memcmp(ptr, x.ptr, size) == 0; + return size == x.size && (size == 0 || std::memcmp(ptr, x.ptr, size) == 0); } bool operator!= (const raw_ref& x) const @@ -44,13 +44,13 @@ struct raw_ref { bool operator< (const raw_ref& x) const { - if(size == x.size) { return std::memcmp(ptr, x.ptr, size) < 0; } + if(size == x.size) { return (size == 0 ? false : std::memcmp(ptr, x.ptr, size) < 0); } else { return size < x.size; } } bool operator> (const raw_ref& x) const { - if(size == x.size) { return std::memcmp(ptr, x.ptr, size) > 0; } + if(size == x.size) { return (size == 0 ? false : std::memcmp(ptr, x.ptr, size) > 0); } else { return size > x.size; } } }; diff --git a/include/msgpack/v1/adaptor/set.hpp b/include/msgpack/v1/adaptor/set.hpp index 96abe25f..3c280c5c 100644 --- a/include/msgpack/v1/adaptor/set.hpp +++ b/include/msgpack/v1/adaptor/set.hpp @@ -11,6 +11,7 @@ #define MSGPACK_V1_TYPE_SET_HPP #include "msgpack/versioning.hpp" +#include "msgpack/cpp_version.hpp" #include "msgpack/adaptor/adaptor_base.hpp" #include "msgpack/adaptor/check_container_size.hpp" @@ -54,7 +55,7 @@ struct convert > { --p; tmp.insert(p->as()); } -#if __cplusplus >= 201103L +#if MSGPACK_CPP_VERSION >= 201103L v = std::move(tmp); #else tmp.swap(v); @@ -131,7 +132,7 @@ struct convert > { --p; tmp.insert(p->as()); } -#if __cplusplus >= 201103L +#if MSGPACK_CPP_VERSION >= 201103L v = std::move(tmp); #else tmp.swap(v); diff --git a/include/msgpack/v1/cpp_config.hpp b/include/msgpack/v1/cpp_config.hpp index 0eb518d8..18d2a9a6 100644 --- a/include/msgpack/v1/cpp_config.hpp +++ b/include/msgpack/v1/cpp_config.hpp @@ -11,6 +11,8 @@ #define MSGPACK_V1_CPP_CONFIG_HPP #include "msgpack/cpp_config_decl.hpp" +#include "msgpack/cpp_version.hpp" +#include "msgpack/versioning.hpp" #if defined(MSGPACK_USE_CPP03) @@ -126,14 +128,14 @@ template struct is_pointer : detail::is_pointer_helper= 201402L +#if MSGPACK_CPP_VERSION >= 201402L #if defined(_MSC_VER) #define MSGPACK_DEPRECATED(msg) __declspec(deprecated(msg)) -#else // _MSC_VER 1914+ with /Zc:__cplusplus, @see https://docs.microsoft.com/cpp/build/reference/zc-cplusplus +#else #define MSGPACK_DEPRECATED(msg) [[deprecated(msg)]] #endif -#else // __cplusplus >= 201402L +#else // MSGPACK_CPP_VERSION >= 201402L #define MSGPACK_DEPRECATED(msg) -#endif // __cplusplus >= 201402L +#endif // MSGPACK_CPP_VERSION >= 201402L #endif // MSGPACK_V1_CPP_CONFIG_HPP diff --git a/include/msgpack/v1/cpp_config_decl.hpp b/include/msgpack/v1/cpp_config_decl.hpp index c9752f23..383a4451 100644 --- a/include/msgpack/v1/cpp_config_decl.hpp +++ b/include/msgpack/v1/cpp_config_decl.hpp @@ -10,19 +10,9 @@ #ifndef MSGPACK_V1_CPP_CONFIG_DECL_HPP #define MSGPACK_V1_CPP_CONFIG_DECL_HPP +#include "msgpack/cpp_version.hpp" #include "msgpack/versioning.hpp" -#if !defined(MSGPACK_USE_CPP03) -# if defined(_MSC_VER) -# if _MSC_VER < 1900 -# define MSGPACK_USE_CPP03 -# endif -# elif (__cplusplus < 201103L) -# define MSGPACK_USE_CPP03 -# endif -#endif // MSGPACK_USE_CPP03 - - #if defined(MSGPACK_USE_CPP03) #if defined(nullptr) diff --git a/include/msgpack/v1/unpack.hpp b/include/msgpack/v1/unpack.hpp index 4f5dab47..fefee66d 100644 --- a/include/msgpack/v1/unpack.hpp +++ b/include/msgpack/v1/unpack.hpp @@ -177,6 +177,9 @@ inline void unpack_str(unpack_user& u, const char* p, uint32_t l, msgpack::objec std::memcpy(tmp, p, l); o.via.str.ptr = tmp; } + else { + o.via.str.ptr = MSGPACK_NULLPTR; + } o.via.str.size = l; } @@ -193,6 +196,9 @@ inline void unpack_bin(unpack_user& u, const char* p, uint32_t l, msgpack::objec std::memcpy(tmp, p, l); o.via.bin.ptr = tmp; } + else { + o.via.bin.ptr = MSGPACK_NULLPTR; + } o.via.bin.size = l; } diff --git a/include/msgpack/v1/versioning.hpp b/include/msgpack/v1/versioning.hpp index c1e86c52..b7428d16 100644 --- a/include/msgpack/v1/versioning.hpp +++ b/include/msgpack/v1/versioning.hpp @@ -10,6 +10,8 @@ #ifndef MSGPACK_VERSIONING_HPP #define MSGPACK_VERSIONING_HPP +#include "msgpack/cpp_version.hpp" + #if !defined(MSGPACK_DEFAULT_API_VERSION) #define MSGPACK_DEFAULT_API_VERSION 1 #endif @@ -54,16 +56,16 @@ #define MSGPACK_DETAIL_PP_IS_NS_ENABLED(ns) MSGPACK_DETAIL_PP_CHECK(MSGPACK_DETAIL_PP_NS_ENABLED_PROBE(ns)) -#if __cplusplus < 201103L +#ifdef MSGPACK_USE_CPP03 #define MSGPACK_API_VERSION_NAMESPACE(ns) MSGPACK_DETAIL_PP_IIF(MSGPACK_DETAIL_PP_IS_NS_ENABLED(ns)) \ (namespace ns{}; using namespace ns; namespace ns, \ namespace ns) -#else // __cplusplus < 201103L +#else // MSGPACK_USE_CPP03 #define MSGPACK_API_VERSION_NAMESPACE(ns) MSGPACK_DETAIL_PP_IIF(MSGPACK_DETAIL_PP_IS_NS_ENABLED(ns)) \ (inline namespace ns, namespace ns) -#endif // __cplusplus < 201103L +#endif // MSGPACK_USE_CPP03 #endif // MSGPACK_VERSIONING_HPP diff --git a/include/msgpack/v2/cpp_config_decl.hpp b/include/msgpack/v2/cpp_config_decl.hpp index 7e2e9832..ee221a82 100644 --- a/include/msgpack/v2/cpp_config_decl.hpp +++ b/include/msgpack/v2/cpp_config_decl.hpp @@ -11,6 +11,7 @@ #define MSGPACK_V2_CPP_CONFIG_DECL_HPP #include "msgpack/v1/cpp_config_decl.hpp" +#include "msgpack/cpp_version.hpp" #if defined(MSGPACK_USE_CPP03) diff --git a/include/msgpack/v3/cpp_config_decl.hpp b/include/msgpack/v3/cpp_config_decl.hpp index 2a33dc54..2944aa02 100644 --- a/include/msgpack/v3/cpp_config_decl.hpp +++ b/include/msgpack/v3/cpp_config_decl.hpp @@ -11,6 +11,7 @@ #define MSGPACK_V3_CPP_CONFIG_DECL_HPP #include "msgpack/v2/cpp_config_decl.hpp" +#include "msgpack/cpp_version.hpp" #if defined(MSGPACK_USE_CPP03) diff --git a/include/msgpack/versioning.hpp b/include/msgpack/versioning.hpp index 379e715c..2f36c5bf 100644 --- a/include/msgpack/versioning.hpp +++ b/include/msgpack/versioning.hpp @@ -10,6 +10,8 @@ #ifndef MSGPACK_VERSIONING_HPP #define MSGPACK_VERSIONING_HPP +#include "msgpack/cpp_version.hpp" + #if !defined(MSGPACK_DEFAULT_API_VERSION) #define MSGPACK_DEFAULT_API_VERSION 3 #endif @@ -56,16 +58,16 @@ #define MSGPACK_DETAIL_PP_IS_NS_ENABLED(ns) MSGPACK_DETAIL_PP_CHECK(MSGPACK_DETAIL_PP_NS_ENABLED_PROBE(ns)) -#if __cplusplus < 201103L +#ifdef MSGPACK_USE_CPP03 #define MSGPACK_API_VERSION_NAMESPACE(ns) MSGPACK_DETAIL_PP_IIF(MSGPACK_DETAIL_PP_IS_NS_ENABLED(ns)) \ (namespace ns{}; using namespace ns; namespace ns, \ namespace ns) -#else // __cplusplus < 201103L +#else // MSGPACK_USE_CPP03 #define MSGPACK_API_VERSION_NAMESPACE(ns) MSGPACK_DETAIL_PP_IIF(MSGPACK_DETAIL_PP_IS_NS_ENABLED(ns)) \ (inline namespace ns, namespace ns) -#endif // __cplusplus < 201103L +#endif // MSGPACK_USE_CPP03 #endif // MSGPACK_VERSIONING_HPP diff --git a/msgpack-config.cmake.in b/msgpack-config.cmake.in new file mode 100644 index 00000000..eef212a0 --- /dev/null +++ b/msgpack-config.cmake.in @@ -0,0 +1,9 @@ +@PACKAGE_INIT@ + +include(CMakeFindDependencyMacro) + +find_dependency(Boost REQUIRED) + +include("${CMAKE_CURRENT_LIST_DIR}/msgpackc-cxx-targets.cmake") + +check_required_components(msgpackc-cxx) diff --git a/test-install/CMakeLists.txt b/test-install/CMakeLists.txt new file mode 100644 index 00000000..21818c3f --- /dev/null +++ b/test-install/CMakeLists.txt @@ -0,0 +1,10 @@ +cmake_minimum_required(VERSION 3.1 FATAL_ERROR) + +project(test-install LANGUAGES CXX) + +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +find_package(msgpack REQUIRED) + +add_executable(test-install simple.cpp) +target_link_libraries(test-install PRIVATE msgpackc-cxx) diff --git a/test-install/simple.cpp b/test-install/simple.cpp new file mode 100644 index 00000000..21b57018 --- /dev/null +++ b/test-install/simple.cpp @@ -0,0 +1,44 @@ +// MessagePack for C++ example +// +// Copyright (C) 2008-2015 FURUHASHI Sadayuki and KONDO Takatoshi +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#include +#include +#include +#include + +int main(void) +{ + msgpack::type::tuple src(1, true, "example"); + + // serialize the object into the buffer. + // any classes that implements write(const char*,size_t) can be a buffer. + std::stringstream buffer; + msgpack::pack(buffer, src); + + // send the buffer ... + buffer.seekg(0); + + // deserialize the buffer into msgpack::object instance. + std::string str(buffer.str()); + + msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); + + // deserialized object is valid during the msgpack::object_handle instance alive. + msgpack::object deserialized = oh.get(); + + // msgpack::object supports ostream. + std::cout << deserialized << std::endl; + + // convert msgpack::object instance into the original type. + // if the type is mismatched, it throws msgpack::type_error exception. + msgpack::type::tuple dst; + deserialized.convert(dst); + + return 0; +} diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index cc9c4d77..b75e4be7 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,11 +1,6 @@ -FIND_PACKAGE (GTest REQUIRED) -FIND_PACKAGE (ZLIB REQUIRED) FIND_PACKAGE (Threads REQUIRED) - -INCLUDE_DIRECTORIES ( - ${GTEST_INCLUDE_DIRS} - ${ZLIB_INCLUDE_DIRS} -) +FIND_PACKAGE (ZLIB) +FIND_PACKAGE (Boost REQUIRED COMPONENTS unit_test_framework system) LIST (APPEND check_PROGRAMS array_ref.cpp @@ -46,7 +41,7 @@ IF (MSGPACK_USE_X3_PARSE) ) ENDIF () -IF (MSGPACK_CXX11 OR MSGPACK_CXX17) +IF (MSGPACK_CXX11 OR MSGPACK_CXX14 OR MSGPACK_CXX17 OR MSGPACK_CXX20) LIST (APPEND check_PROGRAMS iterator_cpp11.cpp msgpack_cpp11.cpp @@ -60,12 +55,18 @@ IF (MSGPACK_CXX11 OR MSGPACK_CXX17) ) ENDIF () -IF (MSGPACK_CXX17) +IF (MSGPACK_CXX17 OR MSGPACK_CXX20) LIST (APPEND check_PROGRAMS msgpack_cpp17.cpp ) ENDIF () +IF (MSGPACK_CXX20) + LIST (APPEND check_PROGRAMS + msgpack_cpp20.cpp + ) +ENDIF () + FOREACH (source_file ${check_PROGRAMS}) GET_FILENAME_COMPONENT (source_file_we ${source_file} NAME_WE) ADD_EXECUTABLE ( @@ -74,12 +75,14 @@ FOREACH (source_file ${check_PROGRAMS}) ) TARGET_LINK_LIBRARIES (${source_file_we} - msgpackcxx - ${GTEST_BOTH_LIBRARIES} - ${ZLIB_LIBRARIES} - ${CMAKE_THREAD_LIBS_INIT} + msgpackc-cxx + Boost::system + Boost::unit_test_framework + Threads::Threads + ZLIB::ZLIB ) - ADD_TEST (${source_file_we} ${source_file_we}) + ADD_TEST (NAME ${source_file_we} COMMAND ${source_file_we}) + IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra -Wconversion") ENDIF () @@ -89,9 +92,9 @@ FOREACH (source_file ${check_PROGRAMS}) IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") IF (CMAKE_CXX_FLAGS MATCHES "/W[0-4]") - STRING(REGEX REPLACE "/W[0-4]" "/W3 /WX" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") + STRING (REGEX REPLACE "/W[0-4]" "/W3 /WX" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") ELSE () - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3 /WX") + SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3 /WX") ENDIF () ENDIF () ENDFOREACH () @@ -100,8 +103,9 @@ ADD_EXECUTABLE ( multi_file multi_file1.cpp multi_file2.cpp ) -TARGET_INCLUDE_DIRECTORIES (multi_file - PRIVATE - $ + +TARGET_LINK_LIBRARIES (multi_file + msgpackc-cxx ) + ADD_TEST (multi_file multi_file) diff --git a/test/array_ref.cpp b/test/array_ref.cpp index dc231768..7660e6e3 100644 --- a/test/array_ref.cpp +++ b/test/array_ref.cpp @@ -3,22 +3,14 @@ #include #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) - -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE MSGPACK_ARRAY_REF +#include #ifdef HAVE_CONFIG_H #include "config.h" #endif -TEST(MSGPACK_ARRAY_REF, pack_unpack_convert_vector_char) +BOOST_AUTO_TEST_CASE(pack_unpack_convert_vector_char) { std::vector v; v.push_back('a'); @@ -32,14 +24,14 @@ TEST(MSGPACK_ARRAY_REF, pack_unpack_convert_vector_char) std::string const& str = ss.str(); msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); - EXPECT_EQ(oh.get().type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::ARRAY); std::vector v2; msgpack::type::array_ref > ar2(v2); oh.get().convert(ar2); - EXPECT_TRUE(ar1 == ar2); + BOOST_CHECK(ar1 == ar2); } -TEST(MSGPACK_ARRAY_REF, pack_unpack_convert_vector_char_const) +BOOST_AUTO_TEST_CASE(pack_unpack_convert_vector_char_const) { std::vector v; v.push_back('a'); @@ -55,14 +47,14 @@ TEST(MSGPACK_ARRAY_REF, pack_unpack_convert_vector_char_const) std::string const& str = ss.str(); msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); - EXPECT_EQ(oh.get().type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::ARRAY); std::vector v2; msgpack::type::array_ref > ar2(v2); oh.get().convert(ar2); - EXPECT_TRUE(ar1 == ar2); + BOOST_CHECK(ar1 == ar2); } -TEST(MSGPACK_ARRAY_REF, pack_unpack_convert_vector_unsigned_char) +BOOST_AUTO_TEST_CASE(pack_unpack_convert_vector_unsigned_char) { std::vector v; v.push_back('a'); @@ -76,14 +68,14 @@ TEST(MSGPACK_ARRAY_REF, pack_unpack_convert_vector_unsigned_char) std::string const& str = ss.str(); msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); - EXPECT_EQ(oh.get().type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::ARRAY); std::vector v2; msgpack::type::array_ref > ar2(v2); oh.get().convert(ar2); - EXPECT_TRUE(ar1 == ar2); + BOOST_CHECK(ar1 == ar2); } -TEST(MSGPACK_ARRAY_REF, pack_unpack_convert_vector_unsigned_char_const) +BOOST_AUTO_TEST_CASE(pack_unpack_convert_vector_unsigned_char_const) { std::vector v; v.push_back('a'); @@ -99,14 +91,14 @@ TEST(MSGPACK_ARRAY_REF, pack_unpack_convert_vector_unsigned_char_const) std::string const& str = ss.str(); msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); - EXPECT_EQ(oh.get().type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::ARRAY); std::vector v2; msgpack::type::array_ref > ar2(v2); oh.get().convert(ar2); - EXPECT_TRUE(ar1 == ar2); + BOOST_CHECK(ar1 == ar2); } -TEST(MSGPACK_ARRAY_REF, object_with_zone_vector_char) +BOOST_AUTO_TEST_CASE(object_with_zone_vector_char) { std::vector v; v.push_back('a'); @@ -117,14 +109,14 @@ TEST(MSGPACK_ARRAY_REF, object_with_zone_vector_char) msgpack::zone z; msgpack::object obj(ar1, z); - EXPECT_EQ(obj.type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(obj.type, msgpack::type::ARRAY); std::vector v2; msgpack::type::array_ref > ar2(v2); obj.convert(ar2); - EXPECT_TRUE(ar1 == ar2); + BOOST_CHECK(ar1 == ar2); } -TEST(MSGPACK_ARRAY_REF, object_with_zone_vector_char_const) +BOOST_AUTO_TEST_CASE(object_with_zone_vector_char_const) { std::vector v; v.push_back('a'); @@ -137,14 +129,14 @@ TEST(MSGPACK_ARRAY_REF, object_with_zone_vector_char_const) msgpack::zone z; msgpack::object obj(ar1, z); - EXPECT_EQ(obj.type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(obj.type, msgpack::type::ARRAY); std::vector v2; msgpack::type::array_ref > ar2(v2); obj.convert(ar2); - EXPECT_TRUE(ar1 == ar2); + BOOST_CHECK(ar1 == ar2); } -TEST(MSGPACK_ARRAY_REF, object_with_zone_vector_unsigned_char) +BOOST_AUTO_TEST_CASE(object_with_zone_vector_unsigned_char) { std::vector v; v.push_back('a'); @@ -155,14 +147,14 @@ TEST(MSGPACK_ARRAY_REF, object_with_zone_vector_unsigned_char) msgpack::zone z; msgpack::object obj(ar1, z); - EXPECT_EQ(obj.type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(obj.type, msgpack::type::ARRAY); std::vector v2; msgpack::type::array_ref > ar2(v2); obj.convert(ar2); - EXPECT_TRUE(ar1 == ar2); + BOOST_CHECK(ar1 == ar2); } -TEST(MSGPACK_ARRAY_REF, object_with_zone_vector_unsigned_char_const) +BOOST_AUTO_TEST_CASE(object_with_zone_vector_unsigned_char_const) { std::vector v; v.push_back('a'); @@ -175,16 +167,16 @@ TEST(MSGPACK_ARRAY_REF, object_with_zone_vector_unsigned_char_const) msgpack::zone z; msgpack::object obj(ar1, z); - EXPECT_EQ(obj.type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(obj.type, msgpack::type::ARRAY); std::vector v2; msgpack::type::array_ref > ar2(v2); obj.convert(ar2); - EXPECT_TRUE(ar1 == ar2); + BOOST_CHECK(ar1 == ar2); } #if !defined(MSGPACK_USE_CPP03) -TEST(MSGPACK_ARRAY_REF, pack_unpack_convert_array_char) +BOOST_AUTO_TEST_CASE(pack_unpack_convert_array_char) { std::array v { { 'a', 'b', 'c' } }; @@ -195,14 +187,14 @@ TEST(MSGPACK_ARRAY_REF, pack_unpack_convert_array_char) std::string const& str = ss.str(); msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); - EXPECT_EQ(oh.get().type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::ARRAY); std::array v2; msgpack::type::array_ref > ar2(v2); oh.get().convert(ar2); - EXPECT_TRUE(ar1 == ar2); + BOOST_CHECK(ar1 == ar2); } -TEST(MSGPACK_ARRAY_REF, pack_unpack_convert_array_char_const) +BOOST_AUTO_TEST_CASE(pack_unpack_convert_array_char_const) { std::array v { { 'a', 'b', 'c' } }; @@ -215,14 +207,14 @@ TEST(MSGPACK_ARRAY_REF, pack_unpack_convert_array_char_const) std::string const& str = ss.str(); msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); - EXPECT_EQ(oh.get().type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::ARRAY); std::array v2; msgpack::type::array_ref > ar2(v2); oh.get().convert(ar2); - EXPECT_TRUE(ar1 == ar2); + BOOST_CHECK(ar1 == ar2); } -TEST(MSGPACK_ARRAY_REF, pack_unpack_convert_array_unsigned_char) +BOOST_AUTO_TEST_CASE(pack_unpack_convert_array_unsigned_char) { std::array v { { 'a', 'b', 'c' } }; @@ -233,14 +225,14 @@ TEST(MSGPACK_ARRAY_REF, pack_unpack_convert_array_unsigned_char) std::string const& str = ss.str(); msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); - EXPECT_EQ(oh.get().type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::ARRAY); std::array v2; msgpack::type::array_ref > ar2(v2); oh.get().convert(ar2); - EXPECT_TRUE(ar1 == ar2); + BOOST_CHECK(ar1 == ar2); } -TEST(MSGPACK_ARRAY_REF, pack_unpack_convert_array_unsigned_char_const) +BOOST_AUTO_TEST_CASE(pack_unpack_convert_array_unsigned_char_const) { std::array v { { 'a', 'b', 'c' } }; @@ -253,14 +245,14 @@ TEST(MSGPACK_ARRAY_REF, pack_unpack_convert_array_unsigned_char_const) std::string const& str = ss.str(); msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); - EXPECT_EQ(oh.get().type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::ARRAY); std::array v2; msgpack::type::array_ref > ar2(v2); oh.get().convert(ar2); - EXPECT_TRUE(ar1 == ar2); + BOOST_CHECK(ar1 == ar2); } -TEST(MSGPACK_ARRAY_REF, object_with_zone_array_char) +BOOST_AUTO_TEST_CASE(object_with_zone_array_char) { std::array v { { 'a', 'b', 'c' } }; @@ -268,14 +260,14 @@ TEST(MSGPACK_ARRAY_REF, object_with_zone_array_char) msgpack::zone z; msgpack::object obj(ar1, z); - EXPECT_EQ(obj.type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(obj.type, msgpack::type::ARRAY); std::array v2; msgpack::type::array_ref > ar2(v2); obj.convert(ar2); - EXPECT_TRUE(ar1 == ar2); + BOOST_CHECK(ar1 == ar2); } -TEST(MSGPACK_ARRAY_REF, object_with_zone_array_char_const) +BOOST_AUTO_TEST_CASE(object_with_zone_array_char_const) { std::array v { { 'a', 'b', 'c' } }; @@ -285,14 +277,14 @@ TEST(MSGPACK_ARRAY_REF, object_with_zone_array_char_const) msgpack::zone z; msgpack::object obj(ar1, z); - EXPECT_EQ(obj.type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(obj.type, msgpack::type::ARRAY); std::array v2; msgpack::type::array_ref > ar2(v2); obj.convert(ar2); - EXPECT_TRUE(ar1 == ar2); + BOOST_CHECK(ar1 == ar2); } -TEST(MSGPACK_ARRAY_REF, object_with_zone_array_unsigned_char) +BOOST_AUTO_TEST_CASE(object_with_zone_array_unsigned_char) { std::array v { { 'a', 'b', 'c' } }; @@ -300,14 +292,14 @@ TEST(MSGPACK_ARRAY_REF, object_with_zone_array_unsigned_char) msgpack::zone z; msgpack::object obj(ar1, z); - EXPECT_EQ(obj.type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(obj.type, msgpack::type::ARRAY); std::array v2; msgpack::type::array_ref > ar2(v2); obj.convert(ar2); - EXPECT_TRUE(ar1 == ar2); + BOOST_CHECK(ar1 == ar2); } -TEST(MSGPACK_ARRAY_REF, object_with_zone_array_unsigned_char_const) +BOOST_AUTO_TEST_CASE(object_with_zone_array_unsigned_char_const) { std::array v { { 'a', 'b', 'c' } }; @@ -317,11 +309,11 @@ TEST(MSGPACK_ARRAY_REF, object_with_zone_array_unsigned_char_const) msgpack::zone z; msgpack::object obj(ar1, z); - EXPECT_EQ(obj.type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(obj.type, msgpack::type::ARRAY); std::array v2; msgpack::type::array_ref > ar2(v2); obj.convert(ar2); - EXPECT_TRUE(ar1 == ar2); + BOOST_CHECK(ar1 == ar2); } #endif // !defined(MSGPACK_USE_CPP03) diff --git a/test/boost_fusion.cpp b/test/boost_fusion.cpp index c29608f6..36ba0e2d 100644 --- a/test/boost_fusion.cpp +++ b/test/boost_fusion.cpp @@ -3,16 +3,8 @@ #include #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) - -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE MSGPACK_BOOST +#include #ifdef HAVE_CONFIG_H #include "config.h" @@ -30,7 +22,7 @@ BOOST_FUSION_DEFINE_STRUCT( (double, f2) ) -TEST(MSGPACK_BOOST, fusion_pack_unpack_convert) +BOOST_AUTO_TEST_CASE(fusion_pack_unpack_convert) { std::stringstream ss; mystruct val1; @@ -41,11 +33,11 @@ TEST(MSGPACK_BOOST, fusion_pack_unpack_convert) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); mystruct val2 = oh.get().as(); - EXPECT_TRUE(val1.f1 == val2.f1); - EXPECT_TRUE(fabs(val2.f2 - val1.f2) <= kEPS); + BOOST_CHECK(val1.f1 == val2.f1); + BOOST_CHECK(fabs(val2.f2 - val1.f2) <= kEPS); } -TEST(MSGPACK_BOOST, object_with_zone_convert) +BOOST_AUTO_TEST_CASE(object_with_zone_convert) { mystruct val1; val1.f1 = 42; @@ -53,8 +45,8 @@ TEST(MSGPACK_BOOST, object_with_zone_convert) msgpack::zone z; msgpack::object obj(val1, z); mystruct val2 = obj.as(); - EXPECT_TRUE(val1.f1 == val2.f1); - EXPECT_TRUE(fabs(val2.f2 - val1.f2) <= kEPS); + BOOST_CHECK(val1.f1 == val2.f1); + BOOST_CHECK(fabs(val2.f2 - val1.f2) <= kEPS); } #if !defined(MSGPACK_USE_CPP03) @@ -154,7 +146,7 @@ BOOST_FUSION_ADAPT_STRUCT( // After MSVC would support Expression SFINAE, remove this guard. #if !defined(_MSC_VER) -TEST(MSGPACK_BOOST, pack_convert_no_def_con) +BOOST_AUTO_TEST_CASE(pack_convert_no_def_con) { std::stringstream ss; mystruct_no_def_con val1(no_def_con1(1), no_def_con2(2), no_def_con1(3)); @@ -163,7 +155,7 @@ TEST(MSGPACK_BOOST, pack_convert_no_def_con) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); mystruct_no_def_con val2 = oh.get().as(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } #endif // !defined(_MSC_VER) @@ -206,7 +198,7 @@ BOOST_FUSION_ADAPT_STRUCT( // After MSVC would support Expression SFINAE, remove this guard. #if !defined(_MSC_VER) -TEST(MSGPACK_BOOST, pack_convert_no_def_con_def_con) +BOOST_AUTO_TEST_CASE(pack_convert_no_def_con_def_con) { std::stringstream ss; mystruct_no_def_con_def_con val1(no_def_con1(1), no_def_con2(2), 3); @@ -215,7 +207,7 @@ TEST(MSGPACK_BOOST, pack_convert_no_def_con_def_con) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); mystruct_no_def_con_def_con val2 = oh.get().as(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } #endif // !defined(_MSC_VER) @@ -224,7 +216,7 @@ TEST(MSGPACK_BOOST, pack_convert_no_def_con_def_con) #include -TEST(MSGPACK_BOOST, fusion_pack_unpack_convert_pair) +BOOST_AUTO_TEST_CASE(fusion_pack_unpack_convert_pair) { std::stringstream ss; std::pair val1(false, 42); @@ -233,15 +225,15 @@ TEST(MSGPACK_BOOST, fusion_pack_unpack_convert_pair) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); std::pair val2 = oh.get().as >(); - EXPECT_TRUE(val1.first == val2.first); - EXPECT_TRUE(val1.second == val2.second); + BOOST_CHECK(val1.first == val2.first); + BOOST_CHECK(val1.second == val2.second); } #if !defined(MSGPACK_USE_CPP03) #include -TEST(MSGPACK_BOOST, fusion_pack_unpack_convert_tuple) +BOOST_AUTO_TEST_CASE(fusion_pack_unpack_convert_tuple) { std::stringstream ss; std::tuple val1(false, 42); @@ -250,7 +242,7 @@ TEST(MSGPACK_BOOST, fusion_pack_unpack_convert_tuple) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); std::tuple val2 = oh.get().as >(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } #endif // !defined(MSGPACK_USE_CPP03) diff --git a/test/boost_optional.cpp b/test/boost_optional.cpp index e00218d1..9eb2689a 100644 --- a/test/boost_optional.cpp +++ b/test/boost_optional.cpp @@ -2,23 +2,14 @@ #include #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) - -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) - +#define BOOST_TEST_MODULE MSGPACK_BOOST +#include #ifdef HAVE_CONFIG_H #include "config.h" #endif -TEST(MSGPACK_BOOST, pack_convert_nil) +BOOST_AUTO_TEST_CASE(pack_convert_nil) { std::stringstream ss; boost::optional val1; @@ -27,10 +18,10 @@ TEST(MSGPACK_BOOST, pack_convert_nil) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); boost::optional val2 = oh.get().as >(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_BOOST, pack_convert_int) +BOOST_AUTO_TEST_CASE(pack_convert_int) { std::stringstream ss; boost::optional val1 = 1; @@ -39,10 +30,10 @@ TEST(MSGPACK_BOOST, pack_convert_int) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); boost::optional val2 = oh.get().as >(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_BOOST, pack_convert_vector) +BOOST_AUTO_TEST_CASE(pack_convert_vector) { typedef boost::optional > ovi_t; std::stringstream ss; @@ -57,10 +48,10 @@ TEST(MSGPACK_BOOST, pack_convert_vector) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); ovi_t val2 = oh.get().as(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_BOOST, pack_convert_vector_optional) +BOOST_AUTO_TEST_CASE(pack_convert_vector_optional) { typedef std::vector > voi_t; std::stringstream ss; @@ -73,28 +64,28 @@ TEST(MSGPACK_BOOST, pack_convert_vector_optional) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); voi_t val2 = oh.get().as(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_BOOST, object_nil) +BOOST_AUTO_TEST_CASE(object_nil) { boost::optional val1; msgpack::object obj(val1); boost::optional val2 = obj.as >(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_BOOST, object_int) +BOOST_AUTO_TEST_CASE(object_int) { boost::optional val1 = 1; msgpack::object obj(val1); boost::optional val2 = obj.as >(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } // Compile error as expected /* - TEST(MSGPACK_BOOST, object_vector) + BOOST_AUTO_TEST_CASE(object_vector) { typedef boost::optional > ovi_t; ovi_t val1; @@ -105,29 +96,29 @@ TEST(MSGPACK_BOOST, object_int) val1 = v; msgpack::object obj(val1); ovi_t val2 = obj.as(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } */ -TEST(MSGPACK_BOOST, object_with_zone_nil) +BOOST_AUTO_TEST_CASE(object_with_zone_nil) { msgpack::zone z; boost::optional val1; msgpack::object obj(val1, z); boost::optional val2 = obj.as >(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_BOOST, object_with_zone_int) +BOOST_AUTO_TEST_CASE(object_with_zone_int) { msgpack::zone z; boost::optional val1 = 1; msgpack::object obj(val1, z); boost::optional val2 = obj.as >(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_BOOST, object_with_zone_vector_optional) +BOOST_AUTO_TEST_CASE(object_with_zone_vector_optional) { typedef std::vector > voi_t; msgpack::zone z; @@ -137,7 +128,7 @@ TEST(MSGPACK_BOOST, object_with_zone_vector_optional) val1[2] = 3; msgpack::object obj(val1, z); voi_t val2 = obj.as(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } #if !defined(MSGPACK_USE_CPP03) @@ -172,7 +163,7 @@ MSGPACK_API_VERSION_NAMESPACE(MSGPACK_DEFAULT_API_NS) { } // MSGPACK_API_VERSION_NAMESPACE(MSGPACK_DEFAULT_API_NS) } // msgpack -TEST(MSGPACK_BOOST, pack_convert_no_def_con) +BOOST_AUTO_TEST_CASE(pack_convert_no_def_con) { std::stringstream ss; boost::optional val1 = no_def_con(1); @@ -181,7 +172,7 @@ TEST(MSGPACK_BOOST, pack_convert_no_def_con) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); boost::optional val2 = oh.get().as>(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } #endif // !defined(MSGPACK_USE_CPP03 diff --git a/test/boost_string_ref.cpp b/test/boost_string_ref.cpp index 5cf51404..caf4565e 100644 --- a/test/boost_string_ref.cpp +++ b/test/boost_string_ref.cpp @@ -2,16 +2,8 @@ #include #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) - -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE MSGPACK_BOOST +#include #ifdef HAVE_CONFIG_H #include "config.h" @@ -19,7 +11,7 @@ #if (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53 -TEST(MSGPACK_BOOST, pack_convert_string_ref) +BOOST_AUTO_TEST_CASE(pack_convert_string_ref) { std::stringstream ss; std::string s = "ABC"; @@ -31,26 +23,26 @@ TEST(MSGPACK_BOOST, pack_convert_string_ref) std::string const& str = ss.str(); msgpack::unpack(oh, str.data(), str.size()); boost::string_ref val2 = oh.get().as(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_BOOST, object_strinf_ref) +BOOST_AUTO_TEST_CASE(object_strinf_ref) { std::string s = "ABC"; boost::string_ref val1(s); msgpack::object obj(val1); boost::string_ref val2 = obj.as(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_BOOST, object_with_zone_string_ref) +BOOST_AUTO_TEST_CASE(object_with_zone_string_ref) { msgpack::zone z; std::string s = "ABC"; boost::string_ref val1(s); msgpack::object obj(val1, z); boost::string_ref val2 = obj.as(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } #endif // (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53 diff --git a/test/boost_string_view.cpp b/test/boost_string_view.cpp index f82a69cf..96172e54 100644 --- a/test/boost_string_view.cpp +++ b/test/boost_string_view.cpp @@ -2,24 +2,21 @@ #include #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) - -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE MSGPACK_BOOST +#include #ifdef HAVE_CONFIG_H #include "config.h" #endif +// Avoid empty test tree on boost 1.60 and lower +BOOST_AUTO_TEST_CASE(dummy) +{ +} + #if (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 61 -TEST(MSGPACK_BOOST, pack_convert_string_view) +BOOST_AUTO_TEST_CASE(pack_convert_string_view) { std::stringstream ss; std::string s = "ABC"; @@ -31,26 +28,26 @@ TEST(MSGPACK_BOOST, pack_convert_string_view) std::string const& str = ss.str(); msgpack::unpack(oh, str.data(), str.size()); boost::string_view val2 = oh.get().as(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_BOOST, object_strinf_view) +BOOST_AUTO_TEST_CASE(object_strinf_view) { std::string s = "ABC"; boost::string_view val1(s); msgpack::object obj(val1); boost::string_view val2 = obj.as(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_BOOST, object_with_zone_string_view) +BOOST_AUTO_TEST_CASE(object_with_zone_string_view) { msgpack::zone z; std::string s = "ABC"; boost::string_view val1(s); msgpack::object obj(val1, z); boost::string_view val2 = obj.as(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } #endif // (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 61 diff --git a/test/boost_variant.cpp b/test/boost_variant.cpp index c2a28d8b..fa17ca74 100644 --- a/test/boost_variant.cpp +++ b/test/boost_variant.cpp @@ -3,16 +3,8 @@ #include #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) - -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE MSGPACK_BOOST +#include #ifdef HAVE_CONFIG_H #include "config.h" @@ -22,49 +14,49 @@ const double kEPS = 1e-10; // nil -TEST(MSGPACK_BOOST, pack_convert_variant_nil) +BOOST_AUTO_TEST_CASE(pack_convert_variant_nil) { std::stringstream ss; msgpack::type::variant val1 = msgpack::type::nil_t(); - EXPECT_TRUE(val1.is_nil()); + BOOST_CHECK(val1.is_nil()); msgpack::pack(ss, val1); std::string const& str = ss.str(); msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); msgpack::type::variant val2 = oh.get().as(); - EXPECT_TRUE(val2.is_nil()); - EXPECT_NO_THROW(boost::get(val2)); + BOOST_CHECK(val2.is_nil()); + BOOST_CHECK_NO_THROW(boost::get(val2)); } -TEST(MSGPACK_BOOST, object_variant_nil) +BOOST_AUTO_TEST_CASE(object_variant_nil) { msgpack::type::variant val1 = msgpack::type::nil_t(); - EXPECT_TRUE(val1.is_nil()); + BOOST_CHECK(val1.is_nil()); msgpack::object obj(val1); msgpack::type::variant val2 = obj.as(); - EXPECT_TRUE(val2.is_nil()); - EXPECT_NO_THROW(boost::get(val2)); + BOOST_CHECK(val2.is_nil()); + BOOST_CHECK_NO_THROW(boost::get(val2)); } -TEST(MSGPACK_BOOST, object_with_zone_variant_nil) +BOOST_AUTO_TEST_CASE(object_with_zone_variant_nil) { msgpack::zone z; msgpack::type::variant val1 = msgpack::type::nil_t(); - EXPECT_TRUE(val1.is_nil()); + BOOST_CHECK(val1.is_nil()); msgpack::object obj(val1, z); msgpack::type::variant val2 = obj.as(); - EXPECT_TRUE(val2.is_nil()); - EXPECT_NO_THROW(boost::get(val2)); + BOOST_CHECK(val2.is_nil()); + BOOST_CHECK_NO_THROW(boost::get(val2)); } // nil (default constructor) -TEST(MSGPACK_BOOST, pack_convert_variant_nil_default) +BOOST_AUTO_TEST_CASE(pack_convert_variant_nil_default) { std::stringstream ss; msgpack::type::variant val1; - EXPECT_TRUE(val1.is_nil()); + BOOST_CHECK(val1.is_nil()); msgpack::pack(ss, val1); @@ -72,39 +64,39 @@ TEST(MSGPACK_BOOST, pack_convert_variant_nil_default) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); msgpack::type::variant val2 = oh.get().as(); - EXPECT_TRUE(val2.is_nil()); - EXPECT_NO_THROW(boost::get(val2)); + BOOST_CHECK(val2.is_nil()); + BOOST_CHECK_NO_THROW(boost::get(val2)); } -TEST(MSGPACK_BOOST, object_variant_nil_default) +BOOST_AUTO_TEST_CASE(object_variant_nil_default) { msgpack::type::variant val1; - EXPECT_TRUE(val1.is_nil()); + BOOST_CHECK(val1.is_nil()); msgpack::object obj(val1); msgpack::type::variant val2 = obj.as(); - EXPECT_TRUE(val2.is_nil()); - EXPECT_NO_THROW(boost::get(val2)); + BOOST_CHECK(val2.is_nil()); + BOOST_CHECK_NO_THROW(boost::get(val2)); } -TEST(MSGPACK_BOOST, object_with_zone_variant_nil_default) +BOOST_AUTO_TEST_CASE(object_with_zone_variant_nil_default) { msgpack::zone z; msgpack::type::variant val1; - EXPECT_TRUE(val1.is_nil()); + BOOST_CHECK(val1.is_nil()); msgpack::object obj(val1, z); msgpack::type::variant val2 = obj.as(); - EXPECT_TRUE(val2.is_nil()); - EXPECT_NO_THROW(boost::get(val2)); + BOOST_CHECK(val2.is_nil()); + BOOST_CHECK_NO_THROW(boost::get(val2)); } // bool -TEST(MSGPACK_BOOST, pack_convert_variant_bool) +BOOST_AUTO_TEST_CASE(pack_convert_variant_bool) { std::stringstream ss; msgpack::type::variant val1 = true; - EXPECT_TRUE(val1.is_bool()); - EXPECT_TRUE(val1.as_bool()); + BOOST_CHECK(val1.is_bool()); + BOOST_CHECK(val1.as_bool()); msgpack::pack(ss, val1); @@ -112,53 +104,53 @@ TEST(MSGPACK_BOOST, pack_convert_variant_bool) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); msgpack::type::variant val2 = oh.get().as(); - EXPECT_TRUE(val2.is_bool()); - EXPECT_TRUE(val2.as_bool()); - EXPECT_NO_THROW(boost::get(val2)); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val2.is_bool()); + BOOST_CHECK(val2.as_bool()); + BOOST_CHECK_NO_THROW(boost::get(val2)); + BOOST_CHECK(val1 == val2); // Tests for totally ordered - EXPECT_FALSE(val1 != val2); - EXPECT_FALSE(val1 < val2); - EXPECT_FALSE(val1 > val2); - EXPECT_TRUE(val1 <= val2); - EXPECT_TRUE(val1 >= val2); + BOOST_CHECK(!(val1 != val2)); + BOOST_CHECK(!(val1 < val2)); + BOOST_CHECK(!(val1 > val2)); + BOOST_CHECK(val1 <= val2); + BOOST_CHECK(val1 >= val2); } -TEST(MSGPACK_BOOST, object_variant_bool) +BOOST_AUTO_TEST_CASE(object_variant_bool) { msgpack::type::variant val1 = true; - EXPECT_TRUE(val1.is_bool()); - EXPECT_TRUE(val1.as_bool()); + BOOST_CHECK(val1.is_bool()); + BOOST_CHECK(val1.as_bool()); msgpack::object obj(val1); msgpack::type::variant val2 = obj.as(); - EXPECT_TRUE(val2.is_bool()); - EXPECT_TRUE(val2.as_bool()); - EXPECT_NO_THROW(boost::get(val2)); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val2.is_bool()); + BOOST_CHECK(val2.as_bool()); + BOOST_CHECK_NO_THROW(boost::get(val2)); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_BOOST, object_with_zone_variant_bool) +BOOST_AUTO_TEST_CASE(object_with_zone_variant_bool) { msgpack::zone z; msgpack::type::variant val1 = true; - EXPECT_TRUE(val1.is_bool()); - EXPECT_TRUE(val1.as_bool()); + BOOST_CHECK(val1.is_bool()); + BOOST_CHECK(val1.as_bool()); msgpack::object obj(val1, z); msgpack::type::variant val2 = obj.as(); - EXPECT_TRUE(val2.is_bool()); - EXPECT_TRUE(val2.as_bool()); - EXPECT_NO_THROW(boost::get(val2)); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val2.is_bool()); + BOOST_CHECK(val2.as_bool()); + BOOST_CHECK_NO_THROW(boost::get(val2)); + BOOST_CHECK(val1 == val2); } // positive integer -TEST(MSGPACK_BOOST, pack_convert_variant_positive_integer) +BOOST_AUTO_TEST_CASE(pack_convert_variant_positive_integer) { std::stringstream ss; msgpack::type::variant val1 = 123; - EXPECT_TRUE(val1.is_uint64_t()); - EXPECT_EQ(val1.as_uint64_t(), 123U); + BOOST_CHECK(val1.is_uint64_t()); + BOOST_CHECK_EQUAL(val1.as_uint64_t(), 123U); msgpack::pack(ss, val1); @@ -166,47 +158,47 @@ TEST(MSGPACK_BOOST, pack_convert_variant_positive_integer) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); msgpack::type::variant val2 = oh.get().as(); - EXPECT_TRUE(val2.is_uint64_t()); - EXPECT_EQ(val2.as_uint64_t(), 123U); - EXPECT_NO_THROW(boost::get(val2)); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val2.is_uint64_t()); + BOOST_CHECK_EQUAL(val2.as_uint64_t(), 123U); + BOOST_CHECK_NO_THROW(boost::get(val2)); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_BOOST, object_variant_positive_integer) +BOOST_AUTO_TEST_CASE(object_variant_positive_integer) { msgpack::type::variant val1 = 123; - EXPECT_TRUE(val1.is_uint64_t()); - EXPECT_EQ(val1.as_uint64_t(), 123U); + BOOST_CHECK(val1.is_uint64_t()); + BOOST_CHECK_EQUAL(val1.as_uint64_t(), 123U); msgpack::object obj(val1); msgpack::type::variant val2 = obj.as(); - EXPECT_TRUE(val2.is_uint64_t()); - EXPECT_EQ(val2.as_uint64_t(), 123U); - EXPECT_NO_THROW(boost::get(val2)); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val2.is_uint64_t()); + BOOST_CHECK_EQUAL(val2.as_uint64_t(), 123U); + BOOST_CHECK_NO_THROW(boost::get(val2)); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_BOOST, object_with_zone_variant_positive_integer) +BOOST_AUTO_TEST_CASE(object_with_zone_variant_positive_integer) { msgpack::zone z; msgpack::type::variant val1 = 123; - EXPECT_TRUE(val1.is_uint64_t()); - EXPECT_EQ(val1.as_uint64_t(), 123U); + BOOST_CHECK(val1.is_uint64_t()); + BOOST_CHECK_EQUAL(val1.as_uint64_t(), 123U); msgpack::object obj(val1, z); msgpack::type::variant val2 = obj.as(); - EXPECT_TRUE(val2.is_uint64_t()); - EXPECT_EQ(val2.as_uint64_t(), 123U); - EXPECT_NO_THROW(boost::get(val2)); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val2.is_uint64_t()); + BOOST_CHECK_EQUAL(val2.as_uint64_t(), 123U); + BOOST_CHECK_NO_THROW(boost::get(val2)); + BOOST_CHECK(val1 == val2); } // negative integer -TEST(MSGPACK_BOOST, pack_convert_variant_negative_integer) +BOOST_AUTO_TEST_CASE(pack_convert_variant_negative_integer) { std::stringstream ss; msgpack::type::variant val1 = -123; - EXPECT_TRUE(val1.is_int64_t()); - EXPECT_EQ(val1.as_int64_t(), -123); + BOOST_CHECK(val1.is_int64_t()); + BOOST_CHECK_EQUAL(val1.as_int64_t(), -123); msgpack::pack(ss, val1); @@ -214,47 +206,47 @@ TEST(MSGPACK_BOOST, pack_convert_variant_negative_integer) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); msgpack::type::variant val2 = oh.get().as(); - EXPECT_TRUE(val2.is_int64_t()); - EXPECT_EQ(val2.as_int64_t(), -123); - EXPECT_NO_THROW(boost::get(val2)); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val2.is_int64_t()); + BOOST_CHECK_EQUAL(val2.as_int64_t(), -123); + BOOST_CHECK_NO_THROW(boost::get(val2)); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_BOOST, object_variant_negative_integer) +BOOST_AUTO_TEST_CASE(object_variant_negative_integer) { msgpack::type::variant val1 = -123; - EXPECT_TRUE(val1.is_int64_t()); - EXPECT_EQ(val1.as_int64_t(), -123); + BOOST_CHECK(val1.is_int64_t()); + BOOST_CHECK_EQUAL(val1.as_int64_t(), -123); msgpack::object obj(val1); msgpack::type::variant val2 = obj.as(); - EXPECT_TRUE(val2.is_int64_t()); - EXPECT_EQ(val2.as_int64_t(), -123); - EXPECT_NO_THROW(boost::get(val2)); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val2.is_int64_t()); + BOOST_CHECK_EQUAL(val2.as_int64_t(), -123); + BOOST_CHECK_NO_THROW(boost::get(val2)); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_BOOST, object_with_zone_variant_negative_integer) +BOOST_AUTO_TEST_CASE(object_with_zone_variant_negative_integer) { msgpack::zone z; msgpack::type::variant val1 = -123; - EXPECT_TRUE(val1.is_int64_t()); - EXPECT_EQ(val1.as_int64_t(), -123); + BOOST_CHECK(val1.is_int64_t()); + BOOST_CHECK_EQUAL(val1.as_int64_t(), -123); msgpack::object obj(val1, z); msgpack::type::variant val2 = obj.as(); - EXPECT_TRUE(val2.is_int64_t()); - EXPECT_EQ(val2.as_int64_t(), -123); - EXPECT_NO_THROW(boost::get(val2)); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val2.is_int64_t()); + BOOST_CHECK_EQUAL(val2.as_int64_t(), -123); + BOOST_CHECK_NO_THROW(boost::get(val2)); + BOOST_CHECK(val1 == val2); } // float -TEST(MSGPACK_BOOST, pack_convert_variant_float) +BOOST_AUTO_TEST_CASE(pack_convert_variant_float) { std::stringstream ss; msgpack::type::variant val1 = 12.34; - EXPECT_TRUE(val1.is_double()); - EXPECT_TRUE(fabs(12.34 - val1.as_double()) <= kEPS); + BOOST_CHECK(val1.is_double()); + BOOST_CHECK(fabs(12.34 - val1.as_double()) <= kEPS); msgpack::pack(ss, val1); @@ -262,47 +254,47 @@ TEST(MSGPACK_BOOST, pack_convert_variant_float) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); msgpack::type::variant val2 = oh.get().as(); - EXPECT_TRUE(val2.is_double()); - EXPECT_TRUE(fabs(12.34 - val2.as_double()) <= kEPS); - EXPECT_NO_THROW(boost::get(val2)); - EXPECT_TRUE(fabs(val2.as_double() - val2.as_double()) <= kEPS); + BOOST_CHECK(val2.is_double()); + BOOST_CHECK(fabs(12.34 - val2.as_double()) <= kEPS); + BOOST_CHECK_NO_THROW(boost::get(val2)); + BOOST_CHECK(fabs(val2.as_double() - val2.as_double()) <= kEPS); } -TEST(MSGPACK_BOOST, object_variant_float) +BOOST_AUTO_TEST_CASE(object_variant_float) { msgpack::type::variant val1 = 12.34; - EXPECT_TRUE(val1.is_double()); - EXPECT_TRUE(fabs(12.34 - val1.as_double()) <= kEPS); + BOOST_CHECK(val1.is_double()); + BOOST_CHECK(fabs(12.34 - val1.as_double()) <= kEPS); msgpack::object obj(val1); msgpack::type::variant val2 = obj.as(); - EXPECT_TRUE(val2.is_double()); - EXPECT_TRUE(fabs(12.34 - val2.as_double()) <= kEPS); - EXPECT_NO_THROW(boost::get(val2)); - EXPECT_TRUE(fabs(val2.as_double() - val2.as_double()) <= kEPS); + BOOST_CHECK(val2.is_double()); + BOOST_CHECK(fabs(12.34 - val2.as_double()) <= kEPS); + BOOST_CHECK_NO_THROW(boost::get(val2)); + BOOST_CHECK(fabs(val2.as_double() - val2.as_double()) <= kEPS); } -TEST(MSGPACK_BOOST, object_with_zone_variant_float) +BOOST_AUTO_TEST_CASE(object_with_zone_variant_float) { msgpack::zone z; msgpack::type::variant val1 = 12.34; - EXPECT_TRUE(val1.is_double()); - EXPECT_TRUE(fabs(12.34 - val1.as_double()) <= kEPS); + BOOST_CHECK(val1.is_double()); + BOOST_CHECK(fabs(12.34 - val1.as_double()) <= kEPS); msgpack::object obj(val1, z); msgpack::type::variant val2 = obj.as(); - EXPECT_TRUE(val2.is_double()); - EXPECT_TRUE(fabs(12.34 - val2.as_double()) <= kEPS); - EXPECT_NO_THROW(boost::get(val2)); - EXPECT_TRUE(fabs(val2.as_double() - val2.as_double()) <= kEPS); + BOOST_CHECK(val2.is_double()); + BOOST_CHECK(fabs(12.34 - val2.as_double()) <= kEPS); + BOOST_CHECK_NO_THROW(boost::get(val2)); + BOOST_CHECK(fabs(val2.as_double() - val2.as_double()) <= kEPS); } // str -TEST(MSGPACK_BOOST, pack_convert_variant_str) +BOOST_AUTO_TEST_CASE(pack_convert_variant_str) { std::stringstream ss; msgpack::type::variant val1 = "ABC"; - EXPECT_TRUE(val1.is_string()); - EXPECT_EQ(val1.as_string(), "ABC"); + BOOST_CHECK(val1.is_string()); + BOOST_CHECK_EQUAL(val1.as_string(), "ABC"); msgpack::pack(ss, val1); @@ -310,53 +302,53 @@ TEST(MSGPACK_BOOST, pack_convert_variant_str) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); msgpack::type::variant val2 = oh.get().as(); - EXPECT_TRUE(val2.is_string()); - EXPECT_EQ(val2.as_string(), "ABC"); - EXPECT_NO_THROW(boost::get(val2)); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val2.is_string()); + BOOST_CHECK_EQUAL(val2.as_string(), "ABC"); + BOOST_CHECK_NO_THROW(boost::get(val2)); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_BOOST, object_with_zone_variant_str) +BOOST_AUTO_TEST_CASE(object_with_zone_variant_str) { msgpack::zone z; msgpack::type::variant val1 = "ABC"; - EXPECT_TRUE(val1.is_string()); - EXPECT_EQ(val1.as_string(), "ABC"); + BOOST_CHECK(val1.is_string()); + BOOST_CHECK_EQUAL(val1.as_string(), "ABC"); msgpack::object obj(val1, z); msgpack::type::variant val2 = obj.as(); - EXPECT_TRUE(val2.is_string()); - EXPECT_EQ(val2.as_string(), "ABC"); - EXPECT_NO_THROW(boost::get(val2)); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val2.is_string()); + BOOST_CHECK_EQUAL(val2.as_string(), "ABC"); + BOOST_CHECK_NO_THROW(boost::get(val2)); + BOOST_CHECK(val1 == val2); } #if (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53 -TEST(MSGPACK_BOOST, object_with_zone_variant_str_ref) +BOOST_AUTO_TEST_CASE(object_with_zone_variant_str_ref) { // You can use boost::string_ref with msgpack::type::variant. msgpack::zone z; std::string s = "ABC"; boost::string_ref sr(s); msgpack::type::variant val1(sr); - EXPECT_TRUE(val1.is_boost_string_ref()); - EXPECT_EQ(val1.as_boost_string_ref(), "ABC"); + BOOST_CHECK(val1.is_boost_string_ref()); + BOOST_CHECK_EQUAL(val1.as_boost_string_ref(), "ABC"); msgpack::object obj(val1, z); msgpack::type::variant val2 = obj.as(); // Converted as std::string. - EXPECT_TRUE(val2.is_string()); - EXPECT_EQ(val2.as_string(), "ABC"); - EXPECT_NO_THROW(boost::get(val2)); + BOOST_CHECK(val2.is_string()); + BOOST_CHECK_EQUAL(val2.as_string(), "ABC"); + BOOST_CHECK_NO_THROW(boost::get(val2)); // boost::string_ref and std::string are different. - EXPECT_FALSE(val1 == val2); + BOOST_CHECK(!(val1 == val2)); } #endif // (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53 // bin -TEST(MSGPACK_BOOST, pack_convert_variant_bin) +BOOST_AUTO_TEST_CASE(pack_convert_variant_bin) { std::stringstream ss; std::vector v; @@ -364,8 +356,8 @@ TEST(MSGPACK_BOOST, pack_convert_variant_bin) v.push_back('b'); v.push_back('c'); msgpack::type::variant val1 = v; - EXPECT_TRUE(val1.is_vector_char()); - EXPECT_EQ(val1.as_vector_char(), v); + BOOST_CHECK(val1.is_vector_char()); + BOOST_CHECK(val1.as_vector_char() == v); msgpack::pack(ss, val1); @@ -373,15 +365,15 @@ TEST(MSGPACK_BOOST, pack_convert_variant_bin) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); msgpack::type::variant val2 = oh.get().as(); - EXPECT_TRUE(val2.is_vector_char()); - EXPECT_EQ(val2.as_vector_char(), v); - EXPECT_NO_THROW(boost::get >(val2)); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val2.is_vector_char()); + BOOST_CHECK(val2.as_vector_char() == v); + BOOST_CHECK_NO_THROW(boost::get >(val2)); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_BOOST, object_with_zone_variant_bin) +BOOST_AUTO_TEST_CASE(object_with_zone_variant_bin) { msgpack::zone z; std::vector v; @@ -389,19 +381,19 @@ TEST(MSGPACK_BOOST, object_with_zone_variant_bin) v.push_back('b'); v.push_back('c'); msgpack::type::variant val1 = v; - EXPECT_TRUE(val1.is_vector_char()); - EXPECT_EQ(val1.as_vector_char(), v); + BOOST_CHECK(val1.is_vector_char()); + BOOST_CHECK(val1.as_vector_char() == v); msgpack::object obj(val1, z); msgpack::type::variant val2 = obj.as(); - EXPECT_TRUE(val2.is_vector_char()); - EXPECT_EQ(val2.as_vector_char(), v); - EXPECT_NO_THROW(boost::get >(val2)); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val2.is_vector_char()); + BOOST_CHECK(val2.as_vector_char() == v); + BOOST_CHECK_NO_THROW(boost::get >(val2)); + BOOST_CHECK(val1 == val2); } #if (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53 -TEST(MSGPACK_BOOST, object_with_zone_variant_raw_ref) +BOOST_AUTO_TEST_CASE(object_with_zone_variant_raw_ref) { // You can use boost::string_ref with msgpack::type::variant. msgpack::zone z; @@ -411,23 +403,23 @@ TEST(MSGPACK_BOOST, object_with_zone_variant_raw_ref) v.push_back('c'); msgpack::type::raw_ref rr(&v.front(), static_cast(v.size())); msgpack::type::variant val1 = rr; - EXPECT_TRUE(val1.is_raw_ref()); - EXPECT_EQ(val1.as_raw_ref(), msgpack::type::raw_ref(&v.front(), static_cast(v.size()))); + BOOST_CHECK(val1.is_raw_ref()); + BOOST_CHECK(val1.as_raw_ref() == msgpack::type::raw_ref(&v.front(), static_cast(v.size()))); msgpack::object obj(val1, z); msgpack::type::variant val2 = obj.as(); // Converted as std::vector. - EXPECT_TRUE(val2.is_vector_char()); - EXPECT_EQ(val2.as_vector_char(), v); - EXPECT_NO_THROW(boost::get >(val2)); + BOOST_CHECK(val2.is_vector_char()); + BOOST_CHECK(val2.as_vector_char() == v); + BOOST_CHECK_NO_THROW(boost::get >(val2)); // msgpack::type::raw_ref and std::vector are different. - EXPECT_FALSE(val1 == val2); + BOOST_CHECK(!(val1 == val2)); } #endif // (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53 // ext -TEST(MSGPACK_BOOST, pack_convert_variant_ext) +BOOST_AUTO_TEST_CASE(pack_convert_variant_ext) { std::stringstream ss; std::vector v; @@ -436,8 +428,8 @@ TEST(MSGPACK_BOOST, pack_convert_variant_ext) v.push_back('c'); msgpack::type::ext e(42, v.data(), static_cast(v.size())); msgpack::type::variant val1(e); - EXPECT_TRUE(val1.is_ext()); - EXPECT_EQ(val1.as_ext(), e); + BOOST_CHECK(val1.is_ext()); + BOOST_CHECK(val1.as_ext() == e); msgpack::pack(ss, val1); @@ -445,15 +437,13 @@ TEST(MSGPACK_BOOST, pack_convert_variant_ext) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); msgpack::type::variant val2 = oh.get().as(); - EXPECT_TRUE(val2.is_ext()); - EXPECT_EQ(val2.as_ext(), e); - EXPECT_NO_THROW(boost::get(val2)); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val2.is_ext()); + BOOST_CHECK(val2.as_ext() == e); + BOOST_CHECK_NO_THROW(boost::get(val2)); + BOOST_CHECK(val1 == val2); } - - -TEST(MSGPACK_BOOST, object_with_zone_variant_ext) +BOOST_AUTO_TEST_CASE(object_with_zone_variant_ext) { msgpack::zone z; std::vector v; @@ -462,17 +452,17 @@ TEST(MSGPACK_BOOST, object_with_zone_variant_ext) v.push_back('c'); msgpack::type::ext e(42, v.data(), static_cast(v.size())); msgpack::type::variant val1(e); - EXPECT_TRUE(val1.is_ext()); - EXPECT_EQ(val1.as_ext(), e); + BOOST_CHECK(val1.is_ext()); + BOOST_CHECK(val1.as_ext() == e); msgpack::object obj(val1, z); msgpack::type::variant val2 = obj.as(); - EXPECT_TRUE(val2.is_ext()); - EXPECT_EQ(val2.as_ext(), e); - EXPECT_NO_THROW(boost::get(val2)); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val2.is_ext()); + BOOST_CHECK(val2.as_ext() == e); + BOOST_CHECK_NO_THROW(boost::get(val2)); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_BOOST, object_with_zone_variant_ext_ref) +BOOST_AUTO_TEST_CASE(object_with_zone_variant_ext_ref) { // You can use msgpack::type::ext_ref with msgpack::type::variant. msgpack::zone z; @@ -482,21 +472,21 @@ TEST(MSGPACK_BOOST, object_with_zone_variant_ext_ref) v.push_back('c'); msgpack::type::ext_ref e(v.data(), static_cast(v.size())); msgpack::type::variant val1(e); - EXPECT_TRUE(val1.is_ext_ref()); - EXPECT_EQ(val1.as_ext_ref(), e); + BOOST_CHECK(val1.is_ext_ref()); + BOOST_CHECK(val1.as_ext_ref() == e); msgpack::object obj(val1, z); msgpack::type::variant val2 = obj.as(); // Converted as msgpack::type::ext. - EXPECT_TRUE(val2.is_ext()); - EXPECT_EQ(val2.as_ext(), e); - EXPECT_NO_THROW(boost::get(val2)); + BOOST_CHECK(val2.is_ext()); + BOOST_CHECK(val2.as_ext() == msgpack::type::ext(e)); + BOOST_CHECK_NO_THROW(boost::get(val2)); // msgpack::type::ext_ref and msgpack::type::ext are different. - EXPECT_FALSE(val1 == val2); + BOOST_CHECK(!(val1 == val2)); } // array -TEST(MSGPACK_BOOST, pack_convert_variant_array) +BOOST_AUTO_TEST_CASE(pack_convert_variant_array) { std::stringstream ss; std::vector v; @@ -504,8 +494,8 @@ TEST(MSGPACK_BOOST, pack_convert_variant_array) v.push_back(msgpack::type::variant(-1)); v.push_back(msgpack::type::variant("ABC")); msgpack::type::variant val1 = v; - EXPECT_TRUE(val1.is_vector()); - EXPECT_EQ(val1.as_vector(), v); + BOOST_CHECK(val1.is_vector()); + BOOST_CHECK(val1.as_vector() == v); msgpack::pack(ss, val1); @@ -513,13 +503,13 @@ TEST(MSGPACK_BOOST, pack_convert_variant_array) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); msgpack::type::variant val2 = oh.get().as(); - EXPECT_TRUE(val2.is_vector()); - EXPECT_EQ(val2.as_vector(), v); - EXPECT_NO_THROW(boost::get >(val2)); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val2.is_vector()); + BOOST_CHECK(val2.as_vector() == v); + BOOST_CHECK_NO_THROW(boost::get >(val2)); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_BOOST, object_with_zone_variant_array) +BOOST_AUTO_TEST_CASE(object_with_zone_variant_array) { msgpack::zone z; std::vector v; @@ -527,19 +517,19 @@ TEST(MSGPACK_BOOST, object_with_zone_variant_array) v.push_back(msgpack::type::variant(-1)); v.push_back(msgpack::type::variant("ABC")); msgpack::type::variant val1 = v; - EXPECT_TRUE(val1.is_vector()); - EXPECT_EQ(val1.as_vector(), v); + BOOST_CHECK(val1.is_vector()); + BOOST_CHECK(val1.as_vector() == v); msgpack::object obj(val1, z); msgpack::type::variant val2 = obj.as(); - EXPECT_TRUE(val2.is_vector()); - EXPECT_EQ(val2.as_vector(), v); - EXPECT_NO_THROW(boost::get >(val2)); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val2.is_vector()); + BOOST_CHECK(val2.as_vector() == v); + BOOST_CHECK_NO_THROW(boost::get >(val2)); + BOOST_CHECK(val1 == val2); } // multimap -TEST(MSGPACK_BOOST, pack_convert_variant_map) +BOOST_AUTO_TEST_CASE(pack_convert_variant_map) { std::stringstream ss; typedef std::multimap multimap_t; @@ -547,8 +537,8 @@ TEST(MSGPACK_BOOST, pack_convert_variant_map) v.insert(multimap_t::value_type(msgpack::type::variant(1), msgpack::type::variant(-1))); v.insert(multimap_t::value_type(msgpack::type::variant("ABC"), msgpack::type::variant("DEF"))); msgpack::type::variant val1 = v; - EXPECT_TRUE(val1.is_multimap()); - EXPECT_EQ(val1.as_multimap(), v); + BOOST_CHECK(val1.is_multimap()); + BOOST_CHECK(val1.as_multimap() == v); msgpack::pack(ss, val1); @@ -556,13 +546,13 @@ TEST(MSGPACK_BOOST, pack_convert_variant_map) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); msgpack::type::variant val2 = oh.get().as(); - EXPECT_TRUE(val2.is_multimap()); - EXPECT_EQ(val2.as_multimap(), v); - EXPECT_NO_THROW(boost::get(val2)); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val2.is_multimap()); + BOOST_CHECK(val2.as_multimap() == v); + BOOST_CHECK_NO_THROW(boost::get(val2)); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_BOOST, object_with_zone_variant_map) +BOOST_AUTO_TEST_CASE(object_with_zone_variant_map) { msgpack::zone z; typedef std::multimap multimap_t; @@ -570,14 +560,14 @@ TEST(MSGPACK_BOOST, object_with_zone_variant_map) v.insert(multimap_t::value_type(msgpack::type::variant(1), msgpack::type::variant(-1))); v.insert(multimap_t::value_type(msgpack::type::variant("ABC"), msgpack::type::variant("DEF"))); msgpack::type::variant val1 = v; - EXPECT_TRUE(val1.is_multimap()); - EXPECT_EQ(val1.as_multimap(), v); + BOOST_CHECK(val1.is_multimap()); + BOOST_CHECK(val1.as_multimap() == v); msgpack::object obj(val1, z); msgpack::type::variant val2 = obj.as(); - EXPECT_TRUE(val2.is_multimap()); - EXPECT_EQ(val2.as_multimap(), v); - EXPECT_NO_THROW(boost::get(val2)); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val2.is_multimap()); + BOOST_CHECK(val2.as_multimap() == v); + BOOST_CHECK_NO_THROW(boost::get(val2)); + BOOST_CHECK(val1 == val2); } // variant_ref @@ -586,14 +576,14 @@ TEST(MSGPACK_BOOST, object_with_zone_variant_map) #if (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53 -TEST(MSGPACK_BOOST, pack_convert_variant_ref_str) +BOOST_AUTO_TEST_CASE(pack_convert_variant_ref_str) { std::stringstream ss; std::string s("ABC"); boost::string_ref sr(s); msgpack::type::variant_ref val1 = sr; - EXPECT_TRUE(val1.is_boost_string_ref()); - EXPECT_EQ(val1.as_boost_string_ref(), sr); + BOOST_CHECK(val1.is_boost_string_ref()); + BOOST_CHECK_EQUAL(val1.as_boost_string_ref(), sr); msgpack::pack(ss, val1); @@ -601,35 +591,35 @@ TEST(MSGPACK_BOOST, pack_convert_variant_ref_str) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); msgpack::type::variant_ref val2 = oh.get().as(); - EXPECT_TRUE(val2.is_boost_string_ref()); - EXPECT_EQ(val2.as_boost_string_ref(), sr); - EXPECT_NO_THROW(boost::get(val2)); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val2.is_boost_string_ref()); + BOOST_CHECK_EQUAL(val2.as_boost_string_ref(), sr); + BOOST_CHECK_NO_THROW(boost::get(val2)); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_BOOST, object_with_zone_variant_ref_str) +BOOST_AUTO_TEST_CASE(object_with_zone_variant_ref_str) { msgpack::zone z; std::string s("ABC"); boost::string_ref sr(s); msgpack::type::variant_ref val1 = sr; - EXPECT_TRUE(val1.is_boost_string_ref()); - EXPECT_EQ(val1.as_boost_string_ref(), sr); + BOOST_CHECK(val1.is_boost_string_ref()); + BOOST_CHECK_EQUAL(val1.as_boost_string_ref(), sr); msgpack::object obj(val1, z); msgpack::type::variant_ref val2 = obj.as(); - EXPECT_TRUE(val2.is_boost_string_ref()); - EXPECT_EQ(val2.as_boost_string_ref(), sr); - EXPECT_NO_THROW(boost::get(val2)); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val2.is_boost_string_ref()); + BOOST_CHECK_EQUAL(val2.as_boost_string_ref(), sr); + BOOST_CHECK_NO_THROW(boost::get(val2)); + BOOST_CHECK(val1 == val2); } #endif // (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53 // bin -TEST(MSGPACK_BOOST, pack_convert_variant_ref_bin) +BOOST_AUTO_TEST_CASE(pack_convert_variant_ref_bin) { std::stringstream ss; std::vector v; @@ -638,8 +628,8 @@ TEST(MSGPACK_BOOST, pack_convert_variant_ref_bin) v.push_back('c'); msgpack::type::raw_ref rr(v.data(), static_cast(v.size())); msgpack::type::variant_ref val1 = rr; - EXPECT_TRUE(val1.is_raw_ref()); - EXPECT_EQ(val1.as_raw_ref(), rr); + BOOST_CHECK(val1.is_raw_ref()); + BOOST_CHECK(val1.as_raw_ref() == rr); msgpack::pack(ss, val1); @@ -647,15 +637,15 @@ TEST(MSGPACK_BOOST, pack_convert_variant_ref_bin) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); msgpack::type::variant_ref val2 = oh.get().as(); - EXPECT_TRUE(val2.is_raw_ref()); - EXPECT_EQ(val2.as_raw_ref(), rr); - EXPECT_NO_THROW(boost::get(val2)); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val2.is_raw_ref()); + BOOST_CHECK(val2.as_raw_ref() == rr); + BOOST_CHECK_NO_THROW(boost::get(val2)); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_BOOST, object_with_zone_variant_ref_bin) +BOOST_AUTO_TEST_CASE(object_with_zone_variant_ref_bin) { msgpack::zone z; std::vector v; @@ -664,19 +654,19 @@ TEST(MSGPACK_BOOST, object_with_zone_variant_ref_bin) v.push_back('c'); msgpack::type::raw_ref rr(v.data(), static_cast(v.size())); msgpack::type::variant_ref val1 = rr; - EXPECT_TRUE(val1.is_raw_ref()); - EXPECT_EQ(val1.as_raw_ref(), rr); + BOOST_CHECK(val1.is_raw_ref()); + BOOST_CHECK(val1.as_raw_ref() == rr); msgpack::object obj(val1, z); msgpack::type::variant_ref val2 = obj.as(); - EXPECT_TRUE(val2.is_raw_ref()); - EXPECT_EQ(val2.as_raw_ref(), rr); - EXPECT_NO_THROW(boost::get(val2)); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val2.is_raw_ref()); + BOOST_CHECK(val2.as_raw_ref() == rr); + BOOST_CHECK_NO_THROW(boost::get(val2)); + BOOST_CHECK(val1 == val2); } // ext -TEST(MSGPACK_BOOST, pack_convert_variant_ref_ext) +BOOST_AUTO_TEST_CASE(pack_convert_variant_ref_ext) { std::stringstream ss; std::vector v; @@ -686,8 +676,8 @@ TEST(MSGPACK_BOOST, pack_convert_variant_ref_ext) v.push_back('c'); msgpack::type::ext_ref er(v.data(), static_cast(v.size())); msgpack::type::variant_ref val1(er); - EXPECT_TRUE(val1.is_ext_ref()); - EXPECT_EQ(val1.as_ext_ref(), er); + BOOST_CHECK(val1.is_ext_ref()); + BOOST_CHECK(val1.as_ext_ref() == er); msgpack::pack(ss, val1); @@ -695,14 +685,14 @@ TEST(MSGPACK_BOOST, pack_convert_variant_ref_ext) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); msgpack::type::variant_ref val2 = oh.get().as(); - EXPECT_NO_THROW(boost::get(val2)); - EXPECT_TRUE(val2.is_ext_ref()); - EXPECT_EQ(val2.as_ext_ref(), er); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK_NO_THROW(boost::get(val2)); + BOOST_CHECK(val2.is_ext_ref()); + BOOST_CHECK(val2.as_ext_ref() == er); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_BOOST, object_with_zone_variant_ref_ext) +BOOST_AUTO_TEST_CASE(object_with_zone_variant_ref_ext) { msgpack::zone z; std::vector v; @@ -712,19 +702,19 @@ TEST(MSGPACK_BOOST, object_with_zone_variant_ref_ext) v.push_back('c'); msgpack::type::ext_ref er(v.data(), static_cast(v.size())); msgpack::type::variant_ref val1(er); - EXPECT_TRUE(val1.is_ext_ref()); - EXPECT_EQ(val1.as_ext_ref(), er); + BOOST_CHECK(val1.is_ext_ref()); + BOOST_CHECK(val1.as_ext_ref() == er); msgpack::object obj(val1, z); msgpack::type::variant_ref val2 = obj.as(); - EXPECT_TRUE(val2.is_ext_ref()); - EXPECT_EQ(val2.as_ext_ref(), er); - EXPECT_NO_THROW(boost::get(val2)); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val2.is_ext_ref()); + BOOST_CHECK(val2.as_ext_ref() == er); + BOOST_CHECK_NO_THROW(boost::get(val2)); + BOOST_CHECK(val1 == val2); } // array -TEST(MSGPACK_BOOST, pack_convert_variant_ref_array) +BOOST_AUTO_TEST_CASE(pack_convert_variant_ref_array) { std::stringstream ss; std::vector v; @@ -737,8 +727,8 @@ TEST(MSGPACK_BOOST, pack_convert_variant_ref_array) v.push_back(msgpack::type::variant_ref(s)); #endif // (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53 msgpack::type::variant_ref val1 = v; - EXPECT_TRUE(val1.is_vector()); - EXPECT_EQ(val1.as_vector(), v); + BOOST_CHECK(val1.is_vector()); + BOOST_CHECK(val1.as_vector() == v); msgpack::pack(ss, val1); @@ -746,13 +736,13 @@ TEST(MSGPACK_BOOST, pack_convert_variant_ref_array) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); msgpack::type::variant_ref val2 = oh.get().as(); - EXPECT_TRUE(val2.is_vector()); - EXPECT_EQ(val2.as_vector(), v); - EXPECT_NO_THROW(boost::get >(val2)); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val2.is_vector()); + BOOST_CHECK(val2.as_vector() == v); + BOOST_CHECK_NO_THROW(boost::get >(val2)); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_BOOST, object_with_zone_variant_ref_array) +BOOST_AUTO_TEST_CASE(object_with_zone_variant_ref_array) { msgpack::zone z; std::vector v; @@ -765,19 +755,19 @@ TEST(MSGPACK_BOOST, object_with_zone_variant_ref_array) v.push_back(msgpack::type::variant_ref(s)); #endif // (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53 msgpack::type::variant_ref val1 = v; - EXPECT_TRUE(val1.is_vector()); - EXPECT_EQ(val1.as_vector(), v); + BOOST_CHECK(val1.is_vector()); + BOOST_CHECK(val1.as_vector() == v); msgpack::object obj(val1, z); msgpack::type::variant_ref val2 = obj.as(); - EXPECT_TRUE(val2.is_vector()); - EXPECT_EQ(val2.as_vector(), v); - EXPECT_NO_THROW(boost::get >(val2)); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val2.is_vector()); + BOOST_CHECK(val2.as_vector() == v); + BOOST_CHECK_NO_THROW(boost::get >(val2)); + BOOST_CHECK(val1 == val2); } // multimap -TEST(MSGPACK_BOOST, pack_convert_variant_ref_map) +BOOST_AUTO_TEST_CASE(pack_convert_variant_ref_map) { std::stringstream ss; typedef std::multimap multimap_t; @@ -791,8 +781,8 @@ TEST(MSGPACK_BOOST, pack_convert_variant_ref_map) v.insert(multimap_t::value_type(msgpack::type::variant_ref(s1), msgpack::type::variant_ref(s2))); #endif // (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53 msgpack::type::variant_ref val1 = v; - EXPECT_TRUE(val1.is_multimap()); - EXPECT_EQ(val1.as_multimap(), v); + BOOST_CHECK(val1.is_multimap()); + BOOST_CHECK(val1.as_multimap() == v); msgpack::pack(ss, val1); @@ -800,13 +790,13 @@ TEST(MSGPACK_BOOST, pack_convert_variant_ref_map) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); msgpack::type::variant_ref val2 = oh.get().as(); - EXPECT_TRUE(val2.is_multimap()); - EXPECT_EQ(val2.as_multimap(), v); - EXPECT_NO_THROW(boost::get(val2)); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val2.is_multimap()); + BOOST_CHECK(val2.as_multimap() == v); + BOOST_CHECK_NO_THROW(boost::get(val2)); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_BOOST, object_with_zone_variant_ref_map) +BOOST_AUTO_TEST_CASE(object_with_zone_variant_ref_map) { msgpack::zone z; typedef std::multimap multimap_t; @@ -820,12 +810,12 @@ TEST(MSGPACK_BOOST, object_with_zone_variant_ref_map) v.insert(multimap_t::value_type(msgpack::type::variant_ref(s1), msgpack::type::variant_ref(s2))); #endif // (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53 msgpack::type::variant_ref val1 = v; - EXPECT_TRUE(val1.is_multimap()); - EXPECT_EQ(val1.as_multimap(), v); + BOOST_CHECK(val1.is_multimap()); + BOOST_CHECK(val1.as_multimap() == v); msgpack::object obj(val1, z); msgpack::type::variant_ref val2 = obj.as(); - EXPECT_TRUE(val2.is_multimap()); - EXPECT_EQ(val2.as_multimap(), v); - EXPECT_NO_THROW(boost::get(val2)); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val2.is_multimap()); + BOOST_CHECK(val2.as_multimap() == v); + BOOST_CHECK_NO_THROW(boost::get(val2)); + BOOST_CHECK(val1 == val2); } diff --git a/test/buffer.cpp b/test/buffer.cpp index 217abd5c..90af2dcb 100644 --- a/test/buffer.cpp +++ b/test/buffer.cpp @@ -2,40 +2,32 @@ #include #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) - -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE buffer +#include #include -TEST(buffer, sbuffer) +BOOST_AUTO_TEST_CASE(sbuffer) { msgpack::sbuffer sbuf; sbuf.write("a", 1); sbuf.write("a", 1); sbuf.write("a", 1); - EXPECT_EQ(3ul, sbuf.size()); - EXPECT_TRUE( memcmp(sbuf.data(), "aaa", 3) == 0 ); + BOOST_CHECK_EQUAL(3ul, sbuf.size()); + BOOST_CHECK( memcmp(sbuf.data(), "aaa", 3) == 0 ); sbuf.clear(); sbuf.write("a", 1); sbuf.write("a", 1); sbuf.write("a", 1); - EXPECT_EQ(3ul, sbuf.size()); - EXPECT_TRUE( memcmp(sbuf.data(), "aaa", 3) == 0 ); + BOOST_CHECK_EQUAL(3ul, sbuf.size()); + BOOST_CHECK( memcmp(sbuf.data(), "aaa", 3) == 0 ); } -TEST(buffer, vrefbuffer) +BOOST_AUTO_TEST_CASE(vrefbuffer) { msgpack::vrefbuffer vbuf; vbuf.write("a", 1); @@ -50,8 +42,8 @@ TEST(buffer, vrefbuffer) sbuf.write((const char*)vec[i].iov_base, vec[i].iov_len); } - EXPECT_EQ(3ul, sbuf.size()); - EXPECT_TRUE( memcmp(sbuf.data(), "aaa", 3) == 0 ); + BOOST_CHECK_EQUAL(3ul, sbuf.size()); + BOOST_CHECK( memcmp(sbuf.data(), "aaa", 3) == 0 ); vbuf.clear(); @@ -67,11 +59,11 @@ TEST(buffer, vrefbuffer) sbuf.write((const char*)vec[i].iov_base, vec[i].iov_len); } - EXPECT_EQ(3ul, sbuf.size()); - EXPECT_TRUE( memcmp(sbuf.data(), "aaa", 3) == 0 ); + BOOST_CHECK_EQUAL(3ul, sbuf.size()); + BOOST_CHECK( memcmp(sbuf.data(), "aaa", 3) == 0 ); } -TEST(buffer, zbuffer) +BOOST_AUTO_TEST_CASE(zbuffer) { msgpack::zbuffer zbuf; zbuf.write("a", 1); @@ -82,7 +74,7 @@ TEST(buffer, zbuffer) zbuf.flush(); } -TEST(buffer, fbuffer) +BOOST_AUTO_TEST_CASE(fbuffer) { #if defined(_MSC_VER) FILE* file; @@ -90,10 +82,10 @@ TEST(buffer, fbuffer) #else // defined(_MSC_VER) FILE* file = tmpfile(); #endif // defined(_MSC_VER) - EXPECT_TRUE( file != NULL ); + BOOST_CHECK( file != NULL ); msgpack::fbuffer fbuf(file); - EXPECT_EQ(file, fbuf.file()); + BOOST_CHECK_EQUAL(file, fbuf.file()); fbuf.write("a", 1); fbuf.write("a", 1); @@ -103,9 +95,9 @@ TEST(buffer, fbuffer) rewind(file); for (size_t i=0; i < 3; ++i) { int ch = fgetc(file); - EXPECT_TRUE(ch != EOF); - EXPECT_EQ('a', static_cast(ch)); + BOOST_CHECK(ch != EOF); + BOOST_CHECK_EQUAL('a', static_cast(ch)); } - EXPECT_EQ(EOF, fgetc(file)); + BOOST_CHECK_EQUAL(EOF, fgetc(file)); fclose(file); } diff --git a/test/buffer_c.cpp b/test/buffer_c.cpp index 01e8d24c..4354608b 100644 --- a/test/buffer_c.cpp +++ b/test/buffer_c.cpp @@ -3,18 +3,10 @@ #include #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE buffer +#include -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) - -#include +#include #if defined(unix) || defined(__unix) || defined(__linux__) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__QNX__) || defined(__QNXTO__) || defined(__HAIKU__) #define HAVE_SYS_UIO_H 1 @@ -22,21 +14,21 @@ #define HAVE_SYS_UIO_H 0 #endif -TEST(buffer, zbuffer_c) +BOOST_AUTO_TEST_CASE(zbuffer_c) { msgpack_zbuffer zbuf; - EXPECT_TRUE(msgpack_zbuffer_init(&zbuf, 1, MSGPACK_ZBUFFER_INIT_SIZE)); - EXPECT_EQ(0, msgpack_zbuffer_write(&zbuf, "a", 1)); - EXPECT_EQ(0, msgpack_zbuffer_write(&zbuf, "a", 1)); - EXPECT_EQ(0, msgpack_zbuffer_write(&zbuf, "a", 1)); - EXPECT_EQ(0, msgpack_zbuffer_write(&zbuf, "", 0)); + BOOST_CHECK(msgpack_zbuffer_init(&zbuf, 1, MSGPACK_ZBUFFER_INIT_SIZE)); + BOOST_CHECK_EQUAL(0, msgpack_zbuffer_write(&zbuf, "a", 1)); + BOOST_CHECK_EQUAL(0, msgpack_zbuffer_write(&zbuf, "a", 1)); + BOOST_CHECK_EQUAL(0, msgpack_zbuffer_write(&zbuf, "a", 1)); + BOOST_CHECK_EQUAL(0, msgpack_zbuffer_write(&zbuf, "", 0)); - EXPECT_TRUE(msgpack_zbuffer_flush(&zbuf) != NULL); + BOOST_CHECK(msgpack_zbuffer_flush(&zbuf) != NULL); msgpack_zbuffer_destroy(&zbuf); } -TEST(buffer, fbuffer_c) +BOOST_AUTO_TEST_CASE(fbuffer_c) { #if defined(_MSC_VER) FILE* file; @@ -47,45 +39,45 @@ TEST(buffer, fbuffer_c) void* fbuf = (void*)file; - EXPECT_TRUE( file != NULL ); - EXPECT_EQ(0, msgpack_fbuffer_write(fbuf, "a", 1)); - EXPECT_EQ(0, msgpack_fbuffer_write(fbuf, "a", 1)); - EXPECT_EQ(0, msgpack_fbuffer_write(fbuf, "a", 1)); + BOOST_CHECK( file != NULL ); + BOOST_CHECK_EQUAL(0, msgpack_fbuffer_write(fbuf, "a", 1)); + BOOST_CHECK_EQUAL(0, msgpack_fbuffer_write(fbuf, "a", 1)); + BOOST_CHECK_EQUAL(0, msgpack_fbuffer_write(fbuf, "a", 1)); fflush(file); rewind(file); for (size_t i=0; i < 3; ++i) { int ch = fgetc(file); - EXPECT_TRUE(ch != EOF); - EXPECT_EQ('a', (char) ch); + BOOST_CHECK(ch != EOF); + BOOST_CHECK_EQUAL('a', (char) ch); } - EXPECT_EQ(EOF, fgetc(file)); + BOOST_CHECK_EQUAL(EOF, fgetc(file)); fclose(file); } -TEST(buffer, sbuffer_c) +BOOST_AUTO_TEST_CASE(sbuffer_c) { msgpack_sbuffer *sbuf; char *data; sbuf = msgpack_sbuffer_new(); - EXPECT_TRUE(sbuf != NULL); - EXPECT_EQ(0, msgpack_sbuffer_write(sbuf, "a", 1)); - EXPECT_EQ(0, msgpack_sbuffer_write(sbuf, "b", 1)); - EXPECT_EQ(0, msgpack_sbuffer_write(sbuf, "c", 1)); - EXPECT_EQ(0, msgpack_sbuffer_write(sbuf, "", 0)); - EXPECT_EQ(3U, sbuf->size); - EXPECT_EQ(0, memcmp(sbuf->data, "abc", 3)); + BOOST_CHECK(sbuf != NULL); + BOOST_CHECK_EQUAL(0, msgpack_sbuffer_write(sbuf, "a", 1)); + BOOST_CHECK_EQUAL(0, msgpack_sbuffer_write(sbuf, "b", 1)); + BOOST_CHECK_EQUAL(0, msgpack_sbuffer_write(sbuf, "c", 1)); + BOOST_CHECK_EQUAL(0, msgpack_sbuffer_write(sbuf, "", 0)); + BOOST_CHECK_EQUAL(3U, sbuf->size); + BOOST_CHECK_EQUAL(0, memcmp(sbuf->data, "abc", 3)); data = msgpack_sbuffer_release(sbuf); - EXPECT_EQ(0, memcmp(data, "abc", 3)); - EXPECT_EQ(0U, sbuf->size); - EXPECT_TRUE(sbuf->data == NULL); + BOOST_CHECK_EQUAL(0, memcmp(data, "abc", 3)); + BOOST_CHECK_EQUAL(0U, sbuf->size); + BOOST_CHECK(sbuf->data == NULL); free(data); msgpack_sbuffer_free(sbuf); } -TEST(buffer, vrefbuffer_c) +BOOST_AUTO_TEST_CASE(vrefbuffer_c) { const char *raw = "I was about to sail away in a junk," "When suddenly I heard" @@ -127,7 +119,7 @@ TEST(buffer, vrefbuffer_c) len = (size_t)lseek(fd, 0, SEEK_END); lseek(fd, 0, SEEK_SET); read(fd, buf, len); - EXPECT_EQ(0, memcmp(buf, raw, len)); + BOOST_CHECK_EQUAL(0, memcmp(buf, raw, len)); close(fd); unlink(filename); } @@ -140,7 +132,7 @@ TEST(buffer, vrefbuffer_c) memcpy(buf + len, iov[i].iov_base, iov[i].iov_len); len += iov[i].iov_len; } - EXPECT_EQ(0, memcmp(buf, raw, len)); + BOOST_CHECK_EQUAL(0, memcmp(buf, raw, len)); } #endif free(buf); diff --git a/test/carray.cpp b/test/carray.cpp index a7eda14c..6e5bfbad 100644 --- a/test/carray.cpp +++ b/test/carray.cpp @@ -1,19 +1,11 @@ #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) - -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE carray +#include #include -TEST(carray, pack_unpack_int) +BOOST_AUTO_TEST_CASE(pack_unpack_int) { std::stringstream ss; int v1[] = { 0, 1 }; @@ -21,29 +13,29 @@ TEST(carray, pack_unpack_int) msgpack::pack(ss, v1); std::string const& str = ss.str(); msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); - EXPECT_EQ(oh.get().type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::ARRAY); int v2[2]; oh.get().convert(v2); - EXPECT_EQ(v1[0], v2[0]); - EXPECT_EQ(v1[1], v2[1]); + BOOST_CHECK_EQUAL(v1[0], v2[0]); + BOOST_CHECK_EQUAL(v1[1], v2[1]); } -TEST(carray, obj_with_zone_int) +BOOST_AUTO_TEST_CASE(obj_with_zone_int) { int v1[] = { 0, 1 }; msgpack::zone z; msgpack::object o(v1, z); - EXPECT_EQ(o.type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(o.type, msgpack::type::ARRAY); int v2[2]; o.convert(v2); - EXPECT_EQ(v1[0], v2[0]); - EXPECT_EQ(v1[1], v2[1]); + BOOST_CHECK_EQUAL(v1[0], v2[0]); + BOOST_CHECK_EQUAL(v1[1], v2[1]); } -TEST(carray, pack_unpack_const_int) +BOOST_AUTO_TEST_CASE(pack_unpack_const_int) { std::stringstream ss; const int v1[] = { 0, 1 }; @@ -51,29 +43,29 @@ TEST(carray, pack_unpack_const_int) msgpack::pack(ss, v1); std::string const& str = ss.str(); msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); - EXPECT_EQ(oh.get().type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::ARRAY); int v2[2]; oh.get().convert(v2); - EXPECT_EQ(v1[0], v2[0]); - EXPECT_EQ(v1[1], v2[1]); + BOOST_CHECK_EQUAL(v1[0], v2[0]); + BOOST_CHECK_EQUAL(v1[1], v2[1]); } -TEST(carray, obj_with_zone_const_int) +BOOST_AUTO_TEST_CASE(obj_with_zone_const_int) { const int v1[] = { 0, 1 }; msgpack::zone z; msgpack::object o(v1, z); - EXPECT_EQ(o.type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(o.type, msgpack::type::ARRAY); int v2[2]; o.convert(v2); - EXPECT_EQ(v1[0], v2[0]); - EXPECT_EQ(v1[1], v2[1]); + BOOST_CHECK_EQUAL(v1[0], v2[0]); + BOOST_CHECK_EQUAL(v1[1], v2[1]); } -TEST(carray, pack_unpack_string) +BOOST_AUTO_TEST_CASE(pack_unpack_string) { std::stringstream ss; std::string v1[] = { "ABC", "DEFG" }; @@ -81,29 +73,29 @@ TEST(carray, pack_unpack_string) msgpack::pack(ss, v1); std::string const& str = ss.str(); msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); - EXPECT_EQ(oh.get().type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::ARRAY); std::string v2[2]; oh.get().convert(v2); - EXPECT_EQ(v1[0], v2[0]); - EXPECT_EQ(v1[1], v2[1]); + BOOST_CHECK_EQUAL(v1[0], v2[0]); + BOOST_CHECK_EQUAL(v1[1], v2[1]); } -TEST(carray, obj_with_zone_string) +BOOST_AUTO_TEST_CASE(obj_with_zone_string) { std::string v1[] = { "ABC", "DEFG" }; msgpack::zone z; msgpack::object o(v1, z); - EXPECT_EQ(o.type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(o.type, msgpack::type::ARRAY); std::string v2[2]; o.convert(v2); - EXPECT_EQ(v1[0], v2[0]); - EXPECT_EQ(v1[1], v2[1]); + BOOST_CHECK_EQUAL(v1[0], v2[0]); + BOOST_CHECK_EQUAL(v1[1], v2[1]); } -TEST(carray, pack_unpack_char) +BOOST_AUTO_TEST_CASE(pack_unpack_char) { std::stringstream ss; char v1[] = { 0, 1 }; @@ -111,16 +103,16 @@ TEST(carray, pack_unpack_char) msgpack::pack(ss, msgpack::type::make_array_ref(v1)); std::string const& str = ss.str(); msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); - EXPECT_EQ(oh.get().type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::ARRAY); char v2[2]; msgpack::type::array_ref ar = msgpack::type::make_array_ref(v2); oh.get().convert(ar); - EXPECT_EQ(v1[0], v2[0]); - EXPECT_EQ(v1[1], v2[1]); + BOOST_CHECK_EQUAL(v1[0], v2[0]); + BOOST_CHECK_EQUAL(v1[1], v2[1]); } -TEST(carray, pack_unpack_char_as_str) +BOOST_AUTO_TEST_CASE(pack_unpack_char_as_str) { std::stringstream ss; char v1[2] = { 1, '\0' }; @@ -128,46 +120,46 @@ TEST(carray, pack_unpack_char_as_str) msgpack::pack(ss, v1); std::string const& str = ss.str(); msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); - EXPECT_EQ(oh.get().type, msgpack::type::STR); - EXPECT_EQ(oh.get().via.str.size, static_cast(1)); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::STR); + BOOST_CHECK_EQUAL(oh.get().via.str.size, static_cast(1)); char v2[2] = { 2, 3 }; oh.get().convert(v2); - EXPECT_EQ(v1[0], v2[0]); - EXPECT_EQ(v1[1], v2[1]); + BOOST_CHECK_EQUAL(v1[0], v2[0]); + BOOST_CHECK_EQUAL(v1[1], v2[1]); } -TEST(carray, obj_with_zone_char) +BOOST_AUTO_TEST_CASE(obj_with_zone_char) { char v1[] = { 0, 1 }; msgpack::zone z; msgpack::object o(msgpack::type::make_array_ref(v1), z); - EXPECT_EQ(o.type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(o.type, msgpack::type::ARRAY); char v2[2]; msgpack::type::array_ref ar = msgpack::type::make_array_ref(v2); o.convert(ar); - EXPECT_EQ(v1[0], v2[0]); - EXPECT_EQ(v1[1], v2[1]); + BOOST_CHECK_EQUAL(v1[0], v2[0]); + BOOST_CHECK_EQUAL(v1[1], v2[1]); } -TEST(carray, obj_with_zone_char_as_str) +BOOST_AUTO_TEST_CASE(obj_with_zone_char_as_str) { char v1[] = { 1, '\0' }; msgpack::zone z; msgpack::object o(v1, z); - EXPECT_EQ(o.type, msgpack::type::STR); - EXPECT_EQ(o.via.str.size, static_cast(1)); + BOOST_CHECK_EQUAL(o.type, msgpack::type::STR); + BOOST_CHECK_EQUAL(o.via.str.size, static_cast(1)); char v2[2]; o.convert(v2); - EXPECT_EQ(v1[0], v2[0]); - EXPECT_EQ(v1[1], v2[1]); + BOOST_CHECK_EQUAL(v1[0], v2[0]); + BOOST_CHECK_EQUAL(v1[1], v2[1]); } -TEST(carray, pack_unpack_unsigned_char) +BOOST_AUTO_TEST_CASE(pack_unpack_unsigned_char) { std::stringstream ss; unsigned char v1[] = { 0, 1 }; @@ -175,16 +167,16 @@ TEST(carray, pack_unpack_unsigned_char) msgpack::pack(ss, msgpack::type::make_array_ref(v1)); std::string const& str = ss.str(); msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); - EXPECT_EQ(oh.get().type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::ARRAY); unsigned char v2[2]; msgpack::type::array_ref ar = msgpack::type::make_array_ref(v2); oh.get().convert(ar); - EXPECT_EQ(v1[0], v2[0]); - EXPECT_EQ(v1[1], v2[1]); + BOOST_CHECK_EQUAL(v1[0], v2[0]); + BOOST_CHECK_EQUAL(v1[1], v2[1]); } -TEST(carray, pack_unpack_unsigned_char_as_bin) +BOOST_AUTO_TEST_CASE(pack_unpack_unsigned_char_as_bin) { std::stringstream ss; unsigned char v1[] = { 0, 1 }; @@ -192,46 +184,46 @@ TEST(carray, pack_unpack_unsigned_char_as_bin) msgpack::pack(ss, v1); std::string const& str = ss.str(); msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); - EXPECT_EQ(oh.get().type, msgpack::type::BIN); - EXPECT_EQ(oh.get().via.bin.size, static_cast(2)); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::BIN); + BOOST_CHECK_EQUAL(oh.get().via.bin.size, static_cast(2)); unsigned char v2[2]; oh.get().convert(v2); - EXPECT_EQ(v1[0], v2[0]); - EXPECT_EQ(v1[1], v2[1]); + BOOST_CHECK_EQUAL(v1[0], v2[0]); + BOOST_CHECK_EQUAL(v1[1], v2[1]); } -TEST(carray, obj_with_zone_unsigned_char) +BOOST_AUTO_TEST_CASE(obj_with_zone_unsigned_char) { unsigned char v1[] = { 0, 1 }; msgpack::zone z; msgpack::object o(msgpack::type::make_array_ref(v1), z); - EXPECT_EQ(o.type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(o.type, msgpack::type::ARRAY); unsigned char v2[2]; msgpack::type::array_ref ar = msgpack::type::make_array_ref(v2); o.convert(ar); - EXPECT_EQ(v1[0], v2[0]); - EXPECT_EQ(v1[1], v2[1]); + BOOST_CHECK_EQUAL(v1[0], v2[0]); + BOOST_CHECK_EQUAL(v1[1], v2[1]); } -TEST(carray, obj_with_zone_unsigned_char_as_bin) +BOOST_AUTO_TEST_CASE(obj_with_zone_unsigned_char_as_bin) { unsigned char v1[] = { 0, 1 }; msgpack::zone z; msgpack::object o(v1, z); - EXPECT_EQ(o.type, msgpack::type::BIN); - EXPECT_EQ(o.via.bin.size, static_cast(2)); + BOOST_CHECK_EQUAL(o.type, msgpack::type::BIN); + BOOST_CHECK_EQUAL(o.via.bin.size, static_cast(2)); unsigned char v2[2]; o.convert(v2); - EXPECT_EQ(v1[0], v2[0]); - EXPECT_EQ(v1[1], v2[1]); + BOOST_CHECK_EQUAL(v1[0], v2[0]); + BOOST_CHECK_EQUAL(v1[1], v2[1]); } -TEST(carray, pack_unpack_signed_char) +BOOST_AUTO_TEST_CASE(pack_unpack_signed_char) { std::stringstream ss; signed char v1[] = { 0, 1 }; @@ -239,45 +231,45 @@ TEST(carray, pack_unpack_signed_char) msgpack::pack(ss, v1); std::string const& str = ss.str(); msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); - EXPECT_EQ(oh.get().type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::ARRAY); signed char v2[2]; oh.get().convert(v2); - EXPECT_EQ(v1[0], v2[0]); - EXPECT_EQ(v1[1], v2[1]); + BOOST_CHECK_EQUAL(v1[0], v2[0]); + BOOST_CHECK_EQUAL(v1[1], v2[1]); } -TEST(carray, obj_with_zone_signed_char) +BOOST_AUTO_TEST_CASE(obj_with_zone_signed_char) { signed char v1[] = { 0, 1 }; msgpack::zone z; msgpack::object o(v1, z); - EXPECT_EQ(o.type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(o.type, msgpack::type::ARRAY); signed char v2[2]; o.convert(v2); - EXPECT_EQ(v1[0], v2[0]); - EXPECT_EQ(v1[1], v2[1]); + BOOST_CHECK_EQUAL(v1[0], v2[0]); + BOOST_CHECK_EQUAL(v1[1], v2[1]); } #if MSGPACK_DEFAULT_API_VERSION == 1 -TEST(carray, object_as_str) +BOOST_AUTO_TEST_CASE(object_as_str) { char v1[] = { 1, '\0' }; msgpack::zone z; msgpack::object o(v1); - EXPECT_EQ(o.type, msgpack::type::STR); + BOOST_CHECK_EQUAL(o.type, msgpack::type::STR); } -TEST(carray, object_as_str_const) +BOOST_AUTO_TEST_CASE(object_as_str_const) { const char v1[] = { 1, '\0' }; msgpack::zone z; msgpack::object o(v1); - EXPECT_EQ(o.type, msgpack::type::STR); + BOOST_CHECK_EQUAL(o.type, msgpack::type::STR); } #endif // MSGPACK_DEFAULT_API_VERSION == 1 diff --git a/test/cases.cpp b/test/cases.cpp index 109b83fc..2e4db669 100644 --- a/test/cases.cpp +++ b/test/cases.cpp @@ -1,16 +1,8 @@ #include #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) - -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE cases +#include static void feed_file(msgpack::unpacker& pac, const char* path) { @@ -28,7 +20,7 @@ static void feed_file(msgpack::unpacker& pac, const char* path) } } -TEST(cases, format) +BOOST_AUTO_TEST_CASE(format) { #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) #pragma GCC diagnostic push @@ -43,11 +35,11 @@ TEST(cases, format) msgpack::object_handle oh; while(pac.next(oh)) { msgpack::object_handle oh_compact; - EXPECT_TRUE( pac_compact.next(oh_compact) ); - EXPECT_EQ(oh_compact.get(), oh.get()); + BOOST_CHECK( pac_compact.next(oh_compact) ); + BOOST_CHECK_EQUAL(oh_compact.get(), oh.get()); } - EXPECT_FALSE( pac_compact.next(oh) ); + BOOST_CHECK( !pac_compact.next(oh) ); #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) #pragma GCC diagnostic pop #endif // defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) diff --git a/test/convert.cpp b/test/convert.cpp index 07ccca0d..2bc4ae8a 100644 --- a/test/convert.cpp +++ b/test/convert.cpp @@ -1,15 +1,7 @@ #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) - -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE convert +#include class enum_member { public: @@ -37,7 +29,7 @@ public: MSGPACK_DEFINE(str1, str2); }; -TEST(convert, compatibility_less) +BOOST_AUTO_TEST_CASE(compatibility_less) { std::vector src(1); src[0] = "kumofs"; @@ -46,13 +38,13 @@ TEST(convert, compatibility_less) msgpack::object obj(src, z); compatibility c; - EXPECT_NO_THROW( obj.convert(c) ); + BOOST_CHECK_NO_THROW( obj.convert(c) ); - EXPECT_EQ("kumofs", c.str1); - EXPECT_EQ("default", c.str2); + BOOST_CHECK_EQUAL("kumofs", c.str1); + BOOST_CHECK_EQUAL("default", c.str2); } -TEST(convert, compatibility_more) +BOOST_AUTO_TEST_CASE(compatibility_more) { std::vector src(3); src[0] = "kumofs"; @@ -63,13 +55,13 @@ TEST(convert, compatibility_more) msgpack::object obj(src, z); compatibility to; - EXPECT_NO_THROW( obj.convert(to) ); + BOOST_CHECK_NO_THROW( obj.convert(to) ); - EXPECT_EQ("kumofs", to.str1); - EXPECT_EQ("mpio", to.str2); + BOOST_CHECK_EQUAL("kumofs", to.str1); + BOOST_CHECK_EQUAL("mpio", to.str2); } -TEST(convert, enum_member) +BOOST_AUTO_TEST_CASE(enum_member_) { enum_member src; src.flag = enum_member::B; @@ -78,25 +70,25 @@ TEST(convert, enum_member) msgpack::object obj(src, z); enum_member to; - EXPECT_NO_THROW( obj.convert(to) ); + BOOST_CHECK_NO_THROW( obj.convert(to) ); - EXPECT_EQ(enum_member::B, to.flag); + BOOST_CHECK_EQUAL(enum_member::B, to.flag); } -TEST(convert, return_value_ref) +BOOST_AUTO_TEST_CASE(return_value_ref) { msgpack::zone z; msgpack::object obj(1, z); int i; int const& j = obj.convert(i); - EXPECT_EQ(&i, &j); - EXPECT_EQ(i, j); + BOOST_CHECK_EQUAL(&i, &j); + BOOST_CHECK_EQUAL(i, j); } #if MSGPACK_DEFAULT_API_VERSION == 1 && !defined(MSGPACK_DISABLE_LEGACY_CONVERT) -TEST(convert, return_value_ptr) +BOOST_AUTO_TEST_CASE(return_value_ptr) { msgpack::zone z; msgpack::object obj(1, z); @@ -107,28 +99,28 @@ TEST(convert, return_value_ptr) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdeprecated-declarations" #endif // defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)) - EXPECT_EQ(obj.convert(&i), &i); + BOOST_CHECK_EQUAL(obj.convert(&i), &i); #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)) #pragma GCC diagnostic pop #endif // defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)) - EXPECT_EQ(1, i); + BOOST_CHECK_EQUAL(1, i); } #endif // MSGPACK_DEFAULT_API_VERSION == 1 && !defined(MSGPACK_DISABLE_LEGACY_CONVERT) -TEST(convert, if_not_nil_nil) +BOOST_AUTO_TEST_CASE(if_not_nil_nil) { msgpack::object obj; int i; - EXPECT_FALSE(obj.convert_if_not_nil(i)); + BOOST_CHECK(!obj.convert_if_not_nil(i)); } -TEST(convert, if_not_nil_not_nil) +BOOST_AUTO_TEST_CASE(if_not_nil_not_nil) { msgpack::zone z; msgpack::object obj(1, z); int i; - EXPECT_TRUE(obj.convert_if_not_nil(i)); - EXPECT_EQ(i, 1); + BOOST_CHECK(obj.convert_if_not_nil(i)); + BOOST_CHECK_EQUAL(i, 1); } diff --git a/test/fixint.cpp b/test/fixint.cpp index 5f8214c9..24d7ab8d 100644 --- a/test/fixint.cpp +++ b/test/fixint.cpp @@ -1,25 +1,17 @@ #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) - -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE fixint +#include template void check_size(size_t size) { T v(0); msgpack::sbuffer sbuf; msgpack::pack(sbuf, v); - EXPECT_EQ(size, sbuf.size()); + BOOST_CHECK_EQUAL(size, sbuf.size()); } -TEST(fixint, size) +BOOST_AUTO_TEST_CASE(size) { check_size(2); check_size(3); @@ -45,12 +37,12 @@ void check_convert() { T v2; oh.get().convert(v2); - EXPECT_EQ(v1.get(), v2.get()); + BOOST_CHECK_EQUAL(v1.get(), v2.get()); - EXPECT_EQ(oh.get(), msgpack::object(T(v1.get()))); + BOOST_CHECK_EQUAL(oh.get(), msgpack::object(T(v1.get()))); } -TEST(fixint, convert) +BOOST_AUTO_TEST_CASE(convert) { check_convert(); check_convert(); diff --git a/test/fuzz_unpack_pack_fuzzer_cpp11.cpp b/test/fuzz_unpack_pack_fuzzer_cpp11.cpp index de2105f4..6bc89448 100644 --- a/test/fuzz_unpack_pack_fuzzer_cpp11.cpp +++ b/test/fuzz_unpack_pack_fuzzer_cpp11.cpp @@ -1,17 +1,9 @@ -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) - -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE FUZZ_UNPACK_PACK_FUZZER +#include #include "../fuzz/unpack_pack_fuzzer.cpp" -TEST(FUZZ_UNPACK_PACK_FUZZER, works) +BOOST_AUTO_TEST_CASE(works) { - EXPECT_EQ(0, LLVMFuzzerTestOneInput(0, 0)); + BOOST_CHECK_EQUAL(0, FuzzerTestOneInput(MSGPACK_NULLPTR, 0)); } diff --git a/test/iterator_cpp11.cpp b/test/iterator_cpp11.cpp index 967cede2..ae2b06e3 100644 --- a/test/iterator_cpp11.cpp +++ b/test/iterator_cpp11.cpp @@ -1,22 +1,12 @@ #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) - -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE iterator +#include #ifdef HAVE_CONFIG_H #include "config.h" #endif -using namespace std; - #if !defined(MSGPACK_USE_CPP03) #include @@ -25,13 +15,13 @@ using namespace std; constexpr unsigned int VECTOR_SIZE = 100; constexpr unsigned int MAP_SIZE = 100; -TEST(iterator, vector) +BOOST_AUTO_TEST_CASE(vector) { - using vec_type = vector; + using vec_type = std::vector; vec_type vec; vec.reserve(VECTOR_SIZE); for (unsigned int i = 0; i < VECTOR_SIZE; i++) { - vec.push_back(static_cast(rand())); + vec.push_back(static_cast(rand())); } msgpack::sbuffer sbuf; msgpack::pack(sbuf, vec); @@ -42,22 +32,22 @@ TEST(iterator, vector) auto const& msgarr = oh.get().via.array; auto dist = std::distance(begin(msgarr), end(msgarr)); auto vecSize = vec.size(); - EXPECT_EQ(static_cast(dist), vecSize); + BOOST_CHECK_EQUAL(static_cast(dist), vecSize); vec_type::const_iterator correct = std::begin(vec); for (auto const& obj : msgarr) { auto u64 = *correct; - EXPECT_EQ(obj.as(), u64); + BOOST_CHECK_EQUAL(obj.as(), u64); ++correct; } } -TEST(iterator, map) +BOOST_AUTO_TEST_CASE(map) { - using map_type = map; + using map_type = std::map; map_type map; - for (unsigned int i = 0; i < MAP_SIZE; i++) { - map[static_cast(rand())] = static_cast(rand()); + for (unsigned i = 0; i < MAP_SIZE; i++) { + map[static_cast(rand())] = static_cast(rand()); } msgpack::sbuffer sbuf; msgpack::pack(sbuf, map); @@ -68,13 +58,13 @@ TEST(iterator, map) auto const& msgmap = oh.get().via.map; auto dist = std::distance(begin(msgmap), end(msgmap)); auto mapSize = map.size(); - EXPECT_EQ(static_cast(dist), mapSize); + BOOST_CHECK_EQUAL(static_cast(dist), mapSize); for (auto const& kv : msgmap) { - auto key = kv.key.as(); - auto val = kv.val.as(); + auto key = kv.key.as(); + auto val = kv.val.as(); auto correct = map[key]; - EXPECT_EQ(val, correct); + BOOST_CHECK_EQUAL(val, correct); } } diff --git a/test/json.cpp b/test/json.cpp index 328cc82f..cff3fcca 100644 --- a/test/json.cpp +++ b/test/json.cpp @@ -2,18 +2,10 @@ #include #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE json +#include -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) - -TEST(json, basic_elements) +BOOST_AUTO_TEST_CASE(basic_elements) { typedef std::map map_s_i; map_s_i msi; @@ -27,10 +19,10 @@ TEST(json, basic_elements) msgpack::object o(t1, z); std::stringstream ss; ss << o; - EXPECT_EQ(ss.str(), "[12,-34,1.23,-4.56,true,false,\"ABC\",{\"Hello\":789,\"World\":-789}]"); + BOOST_CHECK_EQUAL(ss.str(), "[12,-34,1.23,-4.56,true,false,\"ABC\",{\"Hello\":789,\"World\":-789}]"); } -TEST(json, escape) +BOOST_AUTO_TEST_CASE(escape) { std::string s = "\"\\/\b\f\n\r\tabc"; @@ -38,10 +30,10 @@ TEST(json, escape) msgpack::object o(s, z); std::stringstream ss; ss << o; - EXPECT_EQ(ss.str(), "\"\\\"\\\\\\/\\b\\f\\n\\r\\tabc\""); + BOOST_CHECK_EQUAL(ss.str(), "\"\\\"\\\\\\/\\b\\f\\n\\r\\tabc\""); } -TEST(json, escape_cc) +BOOST_AUTO_TEST_CASE(escape_cc) { std::string s; for (int i = 0; i < 0x20; ++i) @@ -52,5 +44,5 @@ TEST(json, escape_cc) msgpack::object o(s, z); std::stringstream ss; ss << o; - EXPECT_EQ(ss.str(), "\"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f\\u007f \""); + BOOST_CHECK_EQUAL(ss.str(), "\"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f\\u007f \""); } diff --git a/test/limit.cpp b/test/limit.cpp index f4b204a3..de4af2f7 100644 --- a/test/limit.cpp +++ b/test/limit.cpp @@ -1,19 +1,11 @@ #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) - -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE limit +#include #include -TEST(limit, unpack_array_no_over) +BOOST_AUTO_TEST_CASE(unpack_array_no_over) { std::stringstream ss; std::vector v; @@ -25,17 +17,17 @@ TEST(limit, unpack_array_no_over) msgpack::object_handle oh = msgpack::unpack(ss.str().c_str(), ss.str().size(), MSGPACK_NULLPTR, MSGPACK_NULLPTR, msgpack::unpack_limit(3, 0, 0, 0, 0)); - EXPECT_TRUE(true); + BOOST_CHECK(true); } catch(msgpack::array_size_overflow const&) { - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch(...) { - EXPECT_TRUE(false); + BOOST_CHECK(false); } } -TEST(limit, unpack_array_over) +BOOST_AUTO_TEST_CASE(unpack_array_over) { std::stringstream ss; std::vector v; @@ -47,17 +39,17 @@ TEST(limit, unpack_array_over) msgpack::object_handle oh = msgpack::unpack(ss.str().c_str(), ss.str().size(), MSGPACK_NULLPTR, MSGPACK_NULLPTR, msgpack::unpack_limit(2, 0, 0, 0, 0)); - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch(msgpack::array_size_overflow const&) { - EXPECT_TRUE(true); + BOOST_CHECK(true); } catch(...) { - EXPECT_TRUE(false); + BOOST_CHECK(false); } } -TEST(limit, unpack_map_no_over) +BOOST_AUTO_TEST_CASE(unpack_map_no_over) { std::stringstream ss; std::map m; @@ -69,17 +61,17 @@ TEST(limit, unpack_map_no_over) msgpack::object_handle oh = msgpack::unpack(ss.str().c_str(), ss.str().size(), MSGPACK_NULLPTR, MSGPACK_NULLPTR, msgpack::unpack_limit(0, 3, 0, 0, 0)); - EXPECT_TRUE(true); + BOOST_CHECK(true); } catch(msgpack::map_size_overflow const&) { - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch(...) { - EXPECT_TRUE(false); + BOOST_CHECK(false); } } -TEST(limit, unpack_map_over) +BOOST_AUTO_TEST_CASE(unpack_map_over) { std::stringstream ss; std::map m; @@ -91,17 +83,17 @@ TEST(limit, unpack_map_over) msgpack::object_handle oh = msgpack::unpack(ss.str().c_str(), ss.str().size(), MSGPACK_NULLPTR, MSGPACK_NULLPTR, msgpack::unpack_limit(0, 2, 0, 0, 0)); - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch(msgpack::map_size_overflow const&) { - EXPECT_TRUE(true); + BOOST_CHECK(true); } catch(...) { - EXPECT_TRUE(false); + BOOST_CHECK(false); } } -TEST(limit, unpack_str_no_over) +BOOST_AUTO_TEST_CASE(unpack_str_no_over) { std::stringstream ss; std::string s("123"); @@ -110,17 +102,17 @@ TEST(limit, unpack_str_no_over) msgpack::object_handle oh = msgpack::unpack(ss.str().c_str(), ss.str().size(), MSGPACK_NULLPTR, MSGPACK_NULLPTR, msgpack::unpack_limit(0, 0, 3, 0, 0)); - EXPECT_TRUE(true); + BOOST_CHECK(true); } catch(msgpack::str_size_overflow const&) { - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch(...) { - EXPECT_TRUE(false); + BOOST_CHECK(false); } } -TEST(limit, unpack_str_over) +BOOST_AUTO_TEST_CASE(unpack_str_over) { std::stringstream ss; std::string s("123"); @@ -129,17 +121,17 @@ TEST(limit, unpack_str_over) msgpack::object_handle oh = msgpack::unpack(ss.str().c_str(), ss.str().size(), MSGPACK_NULLPTR, MSGPACK_NULLPTR, msgpack::unpack_limit(0, 0, 2, 0, 0)); - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch(msgpack::str_size_overflow const&) { - EXPECT_TRUE(true); + BOOST_CHECK(true); } catch(...) { - EXPECT_TRUE(false); + BOOST_CHECK(false); } } -TEST(limit, unpack_bin_no_over) +BOOST_AUTO_TEST_CASE(unpack_bin_no_over) { std::stringstream ss; std::vector v; @@ -151,17 +143,17 @@ TEST(limit, unpack_bin_no_over) msgpack::object_handle oh = msgpack::unpack(ss.str().c_str(), ss.str().size(), MSGPACK_NULLPTR, MSGPACK_NULLPTR, msgpack::unpack_limit(0, 0, 0, 3, 0)); - EXPECT_TRUE(true); + BOOST_CHECK(true); } catch(msgpack::bin_size_overflow const&) { - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch(...) { - EXPECT_TRUE(false); + BOOST_CHECK(false); } } -TEST(limit, unpack_bin_over) +BOOST_AUTO_TEST_CASE(unpack_bin_over) { std::stringstream ss; std::vector v; @@ -173,17 +165,17 @@ TEST(limit, unpack_bin_over) msgpack::object_handle oh = msgpack::unpack(ss.str().c_str(), ss.str().size(), MSGPACK_NULLPTR, MSGPACK_NULLPTR, msgpack::unpack_limit(0, 0, 0, 2, 0)); - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch(msgpack::bin_size_overflow const&) { - EXPECT_TRUE(true); + BOOST_CHECK(true); } catch(...) { - EXPECT_TRUE(false); + BOOST_CHECK(false); } } -TEST(limit, unpack_ext_no_over) +BOOST_AUTO_TEST_CASE(unpack_ext_no_over) { std::stringstream ss; msgpack::packer packer(ss); @@ -194,17 +186,17 @@ TEST(limit, unpack_ext_no_over) msgpack::object_handle oh = msgpack::unpack(ss.str().c_str(), ss.str().size(), MSGPACK_NULLPTR, MSGPACK_NULLPTR, msgpack::unpack_limit(0, 0, 0, 0, 3+1)); - EXPECT_TRUE(true); + BOOST_CHECK(true); } catch(msgpack::ext_size_overflow const&) { - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch(...) { - EXPECT_TRUE(false); + BOOST_CHECK(false); } } -TEST(limit, unpack_ext_over) +BOOST_AUTO_TEST_CASE(unpack_ext_over) { std::stringstream ss; msgpack::packer packer(ss); @@ -215,17 +207,17 @@ TEST(limit, unpack_ext_over) msgpack::object_handle oh = msgpack::unpack(ss.str().c_str(), ss.str().size(), MSGPACK_NULLPTR, MSGPACK_NULLPTR, msgpack::unpack_limit(0, 0, 0, 0, 2+1)); - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch(msgpack::ext_size_overflow const&) { - EXPECT_TRUE(true); + BOOST_CHECK(true); } catch(...) { - EXPECT_TRUE(false); + BOOST_CHECK(false); } } -TEST(limit, unpack_ext_over_32_bit) +BOOST_AUTO_TEST_CASE(unpack_ext_over_32_bit) { if (sizeof(std::size_t) == 4) { char const buf [] = { @@ -240,18 +232,18 @@ TEST(limit, unpack_ext_over_32_bit) msgpack::object_handle unp; msgpack::unpack(unp, buf, sizeof(buf), MSGPACK_NULLPTR, MSGPACK_NULLPTR, msgpack::unpack_limit(0, 0, 0, 0, 0xffffffff)); - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch(msgpack::ext_size_overflow const&) { - EXPECT_TRUE(true); + BOOST_CHECK(true); } catch(...) { - EXPECT_TRUE(false); + BOOST_CHECK(false); } } } -TEST(limit, unpack_ext_no_over_64_bit) +BOOST_AUTO_TEST_CASE(unpack_ext_no_over_64_bit) { if (sizeof(std::size_t) == 8) { char const buf [] = { @@ -266,21 +258,21 @@ TEST(limit, unpack_ext_no_over_64_bit) msgpack::object_handle unp; msgpack::unpack(unp, buf, sizeof(buf), MSGPACK_NULLPTR, MSGPACK_NULLPTR, msgpack::unpack_limit(0, 0, 0, 0, 0xffffffff)); - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch(msgpack::ext_size_overflow const&) { - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch(msgpack::insufficient_bytes const&) { - EXPECT_TRUE(true); + BOOST_CHECK(true); } catch(...) { - EXPECT_TRUE(false); + BOOST_CHECK(false); } } } -TEST(limit, unpack_depth_no_over) +BOOST_AUTO_TEST_CASE(unpack_depth_no_over) { std::stringstream ss; std::vector inner; @@ -292,17 +284,17 @@ TEST(limit, unpack_depth_no_over) msgpack::object_handle unp; msgpack::unpack(unp, ss.str().c_str(), ss.str().size(), MSGPACK_NULLPTR, MSGPACK_NULLPTR, msgpack::unpack_limit(1, 0, 0, 0, 0, 2)); - EXPECT_TRUE(true); + BOOST_CHECK(true); } catch(msgpack::depth_size_overflow const&) { - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch(...) { - EXPECT_TRUE(false); + BOOST_CHECK(false); } } -TEST(limit, unpack_depth_over) +BOOST_AUTO_TEST_CASE(unpack_depth_over) { std::stringstream ss; std::vector inner; @@ -314,13 +306,13 @@ TEST(limit, unpack_depth_over) msgpack::object_handle unp; msgpack::unpack(unp, ss.str().c_str(), ss.str().size(), MSGPACK_NULLPTR, MSGPACK_NULLPTR, msgpack::unpack_limit(1, 0, 0, 0, 0, 1)); - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch(msgpack::depth_size_overflow const&) { - EXPECT_TRUE(true); + BOOST_CHECK(true); } catch(...) { - EXPECT_TRUE(false); + BOOST_CHECK(false); } } @@ -328,7 +320,7 @@ TEST(limit, unpack_depth_over) #if !defined(MSGPACK_USE_CPP03) -TEST(limit, unpack_array_over_cpp11_no_off_no_ref) +BOOST_AUTO_TEST_CASE(unpack_array_over_cpp11_no_off_no_ref) { std::stringstream ss; std::vector v; @@ -340,17 +332,17 @@ TEST(limit, unpack_array_over_cpp11_no_off_no_ref) msgpack::object_handle unp = msgpack::unpack(ss.str().c_str(), ss.str().size(), MSGPACK_NULLPTR, MSGPACK_NULLPTR, msgpack::unpack_limit(2, 0, 0, 0, 0)); - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch(msgpack::array_size_overflow const&) { - EXPECT_TRUE(true); + BOOST_CHECK(true); } catch(...) { - EXPECT_TRUE(false); + BOOST_CHECK(false); } } -TEST(limit, unpack_array_over_cpp11_no_off_ref) +BOOST_AUTO_TEST_CASE(unpack_array_over_cpp11_no_off_ref) { std::stringstream ss; std::vector v; @@ -363,17 +355,17 @@ TEST(limit, unpack_array_over_cpp11_no_off_ref) msgpack::object_handle unp = msgpack::unpack(ss.str().c_str(), ss.str().size(), ref, MSGPACK_NULLPTR, MSGPACK_NULLPTR, msgpack::unpack_limit(2, 0, 0, 0, 0)); - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch(msgpack::array_size_overflow const&) { - EXPECT_TRUE(true); + BOOST_CHECK(true); } catch(...) { - EXPECT_TRUE(false); + BOOST_CHECK(false); } } -TEST(limit, unpack_array_over_cpp11_off_no_ref) +BOOST_AUTO_TEST_CASE(unpack_array_over_cpp11_off_no_ref) { std::stringstream ss; std::vector v; @@ -386,17 +378,17 @@ TEST(limit, unpack_array_over_cpp11_off_no_ref) msgpack::object_handle unp = msgpack::unpack(ss.str().c_str(), ss.str().size(), off, MSGPACK_NULLPTR, MSGPACK_NULLPTR, msgpack::unpack_limit(2, 0, 0, 0, 0)); - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch(msgpack::array_size_overflow const&) { - EXPECT_TRUE(true); + BOOST_CHECK(true); } catch(...) { - EXPECT_TRUE(false); + BOOST_CHECK(false); } } -TEST(limit, unpack_array_over_cpp11_off_ref) +BOOST_AUTO_TEST_CASE(unpack_array_over_cpp11_off_ref) { std::stringstream ss; std::vector v; @@ -410,19 +402,19 @@ TEST(limit, unpack_array_over_cpp11_off_ref) msgpack::object_handle unp = msgpack::unpack(ss.str().c_str(), ss.str().size(), off, ref, MSGPACK_NULLPTR, MSGPACK_NULLPTR, msgpack::unpack_limit(2, 0, 0, 0, 0)); - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch(msgpack::array_size_overflow const&) { - EXPECT_TRUE(true); + BOOST_CHECK(true); } catch(...) { - EXPECT_TRUE(false); + BOOST_CHECK(false); } } #endif // !defined(MSGPACK_USE_CPP03) -TEST(limit, unpack_array_over_no_off_no_ref) +BOOST_AUTO_TEST_CASE(unpack_array_over_no_off_no_ref) { std::stringstream ss; std::vector v; @@ -434,17 +426,17 @@ TEST(limit, unpack_array_over_no_off_no_ref) msgpack::object_handle unp; msgpack::unpack(unp, ss.str().c_str(), ss.str().size(), MSGPACK_NULLPTR, MSGPACK_NULLPTR, msgpack::unpack_limit(2, 0, 0, 0, 0)); - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch(msgpack::array_size_overflow const&) { - EXPECT_TRUE(true); + BOOST_CHECK(true); } catch(...) { - EXPECT_TRUE(false); + BOOST_CHECK(false); } } -TEST(limit, unpack_array_over_no_off_ref) +BOOST_AUTO_TEST_CASE(unpack_array_over_no_off_ref) { std::stringstream ss; std::vector v; @@ -457,17 +449,17 @@ TEST(limit, unpack_array_over_no_off_ref) msgpack::object_handle unp; msgpack::unpack(unp, ss.str().c_str(), ss.str().size(), ref, MSGPACK_NULLPTR, MSGPACK_NULLPTR, msgpack::unpack_limit(2, 0, 0, 0, 0)); - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch(msgpack::array_size_overflow const&) { - EXPECT_TRUE(true); + BOOST_CHECK(true); } catch(...) { - EXPECT_TRUE(false); + BOOST_CHECK(false); } } -TEST(limit, unpack_array_over_off_no_ref) +BOOST_AUTO_TEST_CASE(unpack_array_over_off_no_ref) { std::stringstream ss; std::vector v; @@ -480,17 +472,17 @@ TEST(limit, unpack_array_over_off_no_ref) msgpack::object_handle unp; msgpack::unpack(unp, ss.str().c_str(), ss.str().size(), off, MSGPACK_NULLPTR, MSGPACK_NULLPTR, msgpack::unpack_limit(2, 0, 0, 0, 0)); - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch(msgpack::array_size_overflow const&) { - EXPECT_TRUE(true); + BOOST_CHECK(true); } catch(...) { - EXPECT_TRUE(false); + BOOST_CHECK(false); } } -TEST(limit, unpack_array_over_off_ref) +BOOST_AUTO_TEST_CASE(unpack_array_over_off_ref) { std::stringstream ss; std::vector v; @@ -504,20 +496,20 @@ TEST(limit, unpack_array_over_off_ref) msgpack::object_handle unp; msgpack::unpack(unp, ss.str().c_str(), ss.str().size(), off, ref, MSGPACK_NULLPTR, MSGPACK_NULLPTR, msgpack::unpack_limit(2, 0, 0, 0, 0)); - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch(msgpack::array_size_overflow const&) { - EXPECT_TRUE(true); + BOOST_CHECK(true); } catch(...) { - EXPECT_TRUE(false); + BOOST_CHECK(false); } } // obsolete #if MSGPACK_DEFAULT_API_VERSION == 1 -TEST(limit, unpack_array_over_off_ref_pointer) +BOOST_AUTO_TEST_CASE(unpack_array_over_off_ref_pointer) { std::stringstream ss; std::vector v; @@ -538,19 +530,19 @@ TEST(limit, unpack_array_over_off_ref_pointer) #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)) #pragma GCC diagnostic pop #endif // defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)) - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch(msgpack::array_size_overflow const&) { - EXPECT_TRUE(true); + BOOST_CHECK(true); } catch(...) { - EXPECT_TRUE(false); + BOOST_CHECK(false); } } #endif // MSGPACK_DEFAULT_API_VERSION == 1 -TEST(limit, unpacker_array_over) +BOOST_AUTO_TEST_CASE(unpacker_array_over) { std::stringstream ss; std::vector v; @@ -566,30 +558,30 @@ TEST(limit, unpacker_array_over) u.buffer_consumed(ss.str().size()); msgpack::object_handle unp; u.next(unp); - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch(msgpack::array_size_overflow const&) { - EXPECT_TRUE(true); + BOOST_CHECK(true); } catch(...) { - EXPECT_TRUE(false); + BOOST_CHECK(false); } } -TEST(limit, unpacker_reserve) +BOOST_AUTO_TEST_CASE(unpacker_reserve) { msgpack::unpacker u(MSGPACK_NULLPTR, MSGPACK_NULLPTR, MSGPACK_UNPACKER_INIT_BUFFER_SIZE, msgpack::unpack_limit()); std::size_t original_capacity = u.buffer_capacity(); u.reserve_buffer(original_capacity + 1u); - EXPECT_EQ((original_capacity + COUNTER_SIZE) * 2 - COUNTER_SIZE, u.buffer_capacity()); + BOOST_CHECK_EQUAL((original_capacity + COUNTER_SIZE) * 2 - COUNTER_SIZE, u.buffer_capacity()); } -TEST(limit, unpacker_reserve_more_than_twice) +BOOST_AUTO_TEST_CASE(unpacker_reserve_more_than_twice) { msgpack::unpacker u(MSGPACK_NULLPTR, MSGPACK_NULLPTR, MSGPACK_UNPACKER_INIT_BUFFER_SIZE, msgpack::unpack_limit()); std::size_t original_capacity = u.buffer_capacity(); u.reserve_buffer(original_capacity * 3); - EXPECT_EQ((original_capacity + COUNTER_SIZE) * 4 - COUNTER_SIZE, u.buffer_capacity()); + BOOST_CHECK_EQUAL((original_capacity + COUNTER_SIZE) * 4 - COUNTER_SIZE, u.buffer_capacity()); } diff --git a/test/msgpack_basic.cpp b/test/msgpack_basic.cpp index 32e9c493..1009a30e 100644 --- a/test/msgpack_basic.cpp +++ b/test/msgpack_basic.cpp @@ -9,16 +9,9 @@ #include #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) - -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE MSGPACK +#include +#include #if defined(_MSC_VER) || defined(__MINGW32__) #define msgpack_rand() ((double)rand() / RAND_MAX) @@ -52,109 +45,109 @@ const double kEPS = 1e-10; msgpack::pack(sbuf, val1); \ msgpack::object_handle oh = \ msgpack::unpack(sbuf.data(), sbuf.size()); \ - EXPECT_EQ(val1, oh.get().as()); \ + BOOST_CHECK_EQUAL(val1, oh.get().as()); \ } \ } while(0) -TEST(MSGPACK, simple_buffer_char) +BOOST_AUTO_TEST_CASE(simple_buffer_char) { GEN_TEST(char); } -TEST(MSGPACK, simple_buffer_signed_char) +BOOST_AUTO_TEST_CASE(simple_buffer_signed_char) { GEN_TEST(signed char); } -TEST(MSGPACK, simple_buffer_unsigned_char) +BOOST_AUTO_TEST_CASE(simple_buffer_unsigned_char) { GEN_TEST(unsigned char); } -TEST(MSGPACK, simple_buffer_short) +BOOST_AUTO_TEST_CASE(simple_buffer_short) { GEN_TEST(short); } -TEST(MSGPACK, simple_buffer_int) +BOOST_AUTO_TEST_CASE(simple_buffer_int) { GEN_TEST(int); } -TEST(MSGPACK, simple_buffer_long) +BOOST_AUTO_TEST_CASE(simple_buffer_long) { GEN_TEST(long); } -TEST(MSGPACK, simple_buffer_long_long) +BOOST_AUTO_TEST_CASE(simple_buffer_long_long) { GEN_TEST(long long); } -TEST(MSGPACK, simple_buffer_unsigned_short) +BOOST_AUTO_TEST_CASE(simple_buffer_unsigned_short) { GEN_TEST(unsigned short); } -TEST(MSGPACK, simple_buffer_unsigned_int) +BOOST_AUTO_TEST_CASE(simple_buffer_unsigned_int) { GEN_TEST(unsigned int); } -TEST(MSGPACK, simple_buffer_unsigned_long) +BOOST_AUTO_TEST_CASE(simple_buffer_unsigned_long) { GEN_TEST(unsigned long); } -TEST(MSGPACK, simple_buffer_unsigned_long_long) +BOOST_AUTO_TEST_CASE(simple_buffer_unsigned_long_long) { GEN_TEST(unsigned long long); } -TEST(MSGPACK, simple_buffer_uint8) +BOOST_AUTO_TEST_CASE(simple_buffer_uint8) { GEN_TEST(uint8_t); } -TEST(MSGPACK, simple_buffer_uint16) +BOOST_AUTO_TEST_CASE(simple_buffer_uint16) { GEN_TEST(uint16_t); } -TEST(MSGPACK, simple_buffer_uint32) +BOOST_AUTO_TEST_CASE(simple_buffer_uint32) { GEN_TEST(uint32_t); } -TEST(MSGPACK, simple_buffer_uint64) +BOOST_AUTO_TEST_CASE(simple_buffer_uint64) { GEN_TEST(uint64_t); } -TEST(MSGPACK, simple_buffer_int8) +BOOST_AUTO_TEST_CASE(simple_buffer_int8) { GEN_TEST(int8_t); } -TEST(MSGPACK, simple_buffer_int16) +BOOST_AUTO_TEST_CASE(simple_buffer_int16) { GEN_TEST(int16_t); } -TEST(MSGPACK, simple_buffer_int32) +BOOST_AUTO_TEST_CASE(simple_buffer_int32) { GEN_TEST(int32_t); } -TEST(MSGPACK, simple_buffer_int64) +BOOST_AUTO_TEST_CASE(simple_buffer_int64) { GEN_TEST(int64_t); } #if !defined(_MSC_VER) || _MSC_VER >=1800 -TEST(MSGPACK, simple_buffer_float) +BOOST_AUTO_TEST_CASE(simple_buffer_float) { vector v; v.push_back(0.0); @@ -188,11 +181,11 @@ TEST(MSGPACK, simple_buffer_float) float val2 = oh.get().as(); if (std::isnan(val1)) - EXPECT_TRUE(std::isnan(val2)); + BOOST_CHECK(std::isnan(val2)); else if (std::isinf(val1)) - EXPECT_TRUE(std::isinf(val2)); + BOOST_CHECK(std::isinf(val2)); else - EXPECT_TRUE(fabs(val2 - val1) <= kEPS); + BOOST_CHECK(fabs(val2 - val1) <= kEPS); } } @@ -206,12 +199,12 @@ struct TypePair { }; } // namespace -template -class IntegerToFloatingPointTest : public testing::Test { -}; -TYPED_TEST_CASE_P(IntegerToFloatingPointTest); +typedef boost::mpl::list, + TypePair, + TypePair, + TypePair > IntegerToFloatingPointTestTypes; -TYPED_TEST_P(IntegerToFloatingPointTest, simple_buffer) +BOOST_AUTO_TEST_CASE_TEMPLATE(simple_buffer, TypeParam, IntegerToFloatingPointTestTypes) { typedef typename TypeParam::float_type float_type; typedef typename TypeParam::integer_type integer_type; @@ -230,24 +223,13 @@ TYPED_TEST_P(IntegerToFloatingPointTest, simple_buffer) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); float_type val2 = oh.get().as(); - EXPECT_TRUE(fabs(val2 - static_cast(val1)) <= kEPS); + BOOST_CHECK(fabs(val2 - static_cast(val1)) <= kEPS); } } -REGISTER_TYPED_TEST_CASE_P(IntegerToFloatingPointTest, - simple_buffer); - -typedef testing::Types, - TypePair, - TypePair, - TypePair > IntegerToFloatingPointTestTypes; -INSTANTIATE_TYPED_TEST_CASE_P(IntegerToFloatingPointTestInstance, - IntegerToFloatingPointTest, - IntegerToFloatingPointTestTypes); - #if !defined(_MSC_VER) || _MSC_VER >=1800 -TEST(MSGPACK, simple_buffer_double) +BOOST_AUTO_TEST_CASE(simple_buffer_double) { vector v; v.push_back(0.0); @@ -285,27 +267,27 @@ TEST(MSGPACK, simple_buffer_double) double val2 = oh.get().as(); if (std::isnan(val1)) - EXPECT_TRUE(std::isnan(val2)); + BOOST_CHECK(std::isnan(val2)); else if (std::isinf(val1)) - EXPECT_TRUE(std::isinf(val2)); + BOOST_CHECK(std::isinf(val2)); else - EXPECT_TRUE(fabs(val2 - val1) <= kEPS); + BOOST_CHECK(fabs(val2 - val1) <= kEPS); } } #endif // !defined(_MSC_VER) || _MSC_VER >=1800 -TEST(MSGPACK, simple_buffer_nil) +BOOST_AUTO_TEST_CASE(simple_buffer_nil) { msgpack::sbuffer sbuf; msgpack::packer packer(sbuf); packer.pack_nil(); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(oh.get().type, msgpack::type::NIL); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::NIL); } -TEST(MSGPACK, simple_buffer_true) +BOOST_AUTO_TEST_CASE(simple_buffer_true) { msgpack::sbuffer sbuf; bool val1 = true; @@ -313,10 +295,10 @@ TEST(MSGPACK, simple_buffer_true) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); bool val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK_EQUAL(val1, val2); } -TEST(MSGPACK, simple_buffer_false) +BOOST_AUTO_TEST_CASE(simple_buffer_false) { msgpack::sbuffer sbuf; bool val1 = false; @@ -324,10 +306,10 @@ TEST(MSGPACK, simple_buffer_false) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); bool val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK_EQUAL(val1, val2); } -TEST(MSGPACK, simple_buffer_fixext1) +BOOST_AUTO_TEST_CASE(simple_buffer_fixext1) { msgpack::sbuffer sbuf; msgpack::packer packer(sbuf); @@ -337,22 +319,22 @@ TEST(MSGPACK, simple_buffer_fixext1) packer.pack_ext_body(buf, sizeof(buf)); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(1ul, oh.get().via.ext.size); - EXPECT_EQ(1, oh.get().via.ext.type()); - EXPECT_EQ(2, oh.get().via.ext.data()[0]); + BOOST_CHECK_EQUAL(1ul, oh.get().via.ext.size); + BOOST_CHECK_EQUAL(1, oh.get().via.ext.type()); + BOOST_CHECK_EQUAL(2, oh.get().via.ext.data()[0]); msgpack::sbuffer sbuf2; msgpack::pack(sbuf2, oh.get()); msgpack::object_handle oh2 = msgpack::unpack(sbuf2.data(), sbuf2.size()); - EXPECT_EQ(1ul, oh2.get().via.ext.size); - EXPECT_EQ(1, oh2.get().via.ext.type()); - EXPECT_EQ(2, oh2.get().via.ext.data()[0]); + BOOST_CHECK_EQUAL(1ul, oh2.get().via.ext.size); + BOOST_CHECK_EQUAL(1, oh2.get().via.ext.type()); + BOOST_CHECK_EQUAL(2, oh2.get().via.ext.data()[0]); - EXPECT_EQ(oh.get(), oh2.get()); + BOOST_CHECK_EQUAL(oh.get(), oh2.get()); } -TEST(MSGPACK, simple_buffer_fixext2) +BOOST_AUTO_TEST_CASE(simple_buffer_fixext2) { msgpack::sbuffer sbuf; msgpack::packer packer(sbuf); @@ -362,24 +344,24 @@ TEST(MSGPACK, simple_buffer_fixext2) packer.pack_ext_body(buf, sizeof(buf)); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(2ul, oh.get().via.ext.size); - EXPECT_EQ(0, oh.get().via.ext.type()); - EXPECT_TRUE( + BOOST_CHECK_EQUAL(2ul, oh.get().via.ext.size); + BOOST_CHECK_EQUAL(0, oh.get().via.ext.type()); + BOOST_CHECK( std::equal(buf, buf + sizeof(buf), oh.get().via.ext.data())); msgpack::sbuffer sbuf2; msgpack::pack(sbuf2, oh.get()); msgpack::object_handle oh2 = msgpack::unpack(sbuf2.data(), sbuf2.size()); - EXPECT_EQ(2ul, oh2.get().via.ext.size); - EXPECT_EQ(0, oh2.get().via.ext.type()); - EXPECT_TRUE( + BOOST_CHECK_EQUAL(2ul, oh2.get().via.ext.size); + BOOST_CHECK_EQUAL(0, oh2.get().via.ext.type()); + BOOST_CHECK( std::equal(buf, buf + sizeof(buf), oh2.get().via.ext.data())); - EXPECT_EQ(oh.get(), oh2.get()); + BOOST_CHECK_EQUAL(oh.get(), oh2.get()); } -TEST(MSGPACK, simple_buffer_fixext4) +BOOST_AUTO_TEST_CASE(simple_buffer_fixext4) { msgpack::sbuffer sbuf; msgpack::packer packer(sbuf); @@ -389,24 +371,24 @@ TEST(MSGPACK, simple_buffer_fixext4) packer.pack_ext_body(buf, sizeof(buf)); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(4ul, oh.get().via.ext.size); - EXPECT_EQ(1, oh.get().via.ext.type()); - EXPECT_TRUE( + BOOST_CHECK_EQUAL(4ul, oh.get().via.ext.size); + BOOST_CHECK_EQUAL(1, oh.get().via.ext.type()); + BOOST_CHECK( std::equal(buf, buf + sizeof(buf), oh.get().via.ext.data())); msgpack::sbuffer sbuf2; msgpack::pack(sbuf2, oh.get()); msgpack::object_handle oh2 = msgpack::unpack(sbuf2.data(), sbuf2.size()); - EXPECT_EQ(4ul, oh2.get().via.ext.size); - EXPECT_EQ(1, oh2.get().via.ext.type()); - EXPECT_TRUE( + BOOST_CHECK_EQUAL(4ul, oh2.get().via.ext.size); + BOOST_CHECK_EQUAL(1, oh2.get().via.ext.type()); + BOOST_CHECK( std::equal(buf, buf + sizeof(buf), oh2.get().via.ext.data())); - EXPECT_EQ(oh.get(), oh2.get()); + BOOST_CHECK_EQUAL(oh.get(), oh2.get()); } -TEST(MSGPACK, simple_buffer_fixext8) +BOOST_AUTO_TEST_CASE(simple_buffer_fixext8) { msgpack::sbuffer sbuf; msgpack::packer packer(sbuf); @@ -416,24 +398,24 @@ TEST(MSGPACK, simple_buffer_fixext8) packer.pack_ext_body(buf, sizeof(buf)); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(8ul, oh.get().via.ext.size); - EXPECT_EQ(1, oh.get().via.ext.type()); - EXPECT_TRUE( + BOOST_CHECK_EQUAL(8ul, oh.get().via.ext.size); + BOOST_CHECK_EQUAL(1, oh.get().via.ext.type()); + BOOST_CHECK( std::equal(buf, buf + sizeof(buf), oh.get().via.ext.data())); msgpack::sbuffer sbuf2; msgpack::pack(sbuf2, oh.get()); msgpack::object_handle oh2 = msgpack::unpack(sbuf2.data(), sbuf2.size()); - EXPECT_EQ(8ul, oh2.get().via.ext.size); - EXPECT_EQ(1, oh2.get().via.ext.type()); - EXPECT_TRUE( + BOOST_CHECK_EQUAL(8ul, oh2.get().via.ext.size); + BOOST_CHECK_EQUAL(1, oh2.get().via.ext.type()); + BOOST_CHECK( std::equal(buf, buf + sizeof(buf), oh2.get().via.ext.data())); - EXPECT_EQ(oh.get(), oh2.get()); + BOOST_CHECK_EQUAL(oh.get(), oh2.get()); } -TEST(MSGPACK, simple_buffer_fixext16) +BOOST_AUTO_TEST_CASE(simple_buffer_fixext16) { msgpack::sbuffer sbuf; msgpack::packer packer(sbuf); @@ -443,24 +425,24 @@ TEST(MSGPACK, simple_buffer_fixext16) packer.pack_ext_body(buf, sizeof(buf)); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(16ul, oh.get().via.ext.size); - EXPECT_EQ(1, oh.get().via.ext.type()); - EXPECT_TRUE( + BOOST_CHECK_EQUAL(16ul, oh.get().via.ext.size); + BOOST_CHECK_EQUAL(1, oh.get().via.ext.type()); + BOOST_CHECK( std::equal(buf, buf + sizeof(buf), oh.get().via.ext.data())); msgpack::sbuffer sbuf2; msgpack::pack(sbuf2, oh.get()); msgpack::object_handle oh2 = msgpack::unpack(sbuf2.data(), sbuf2.size()); - EXPECT_EQ(16ul, oh2.get().via.ext.size); - EXPECT_EQ(1, oh2.get().via.ext.type()); - EXPECT_TRUE( + BOOST_CHECK_EQUAL(16ul, oh2.get().via.ext.size); + BOOST_CHECK_EQUAL(1, oh2.get().via.ext.type()); + BOOST_CHECK( std::equal(buf, buf + sizeof(buf), oh2.get().via.ext.data())); - EXPECT_EQ(oh.get(), oh2.get()); + BOOST_CHECK_EQUAL(oh.get(), oh2.get()); } -TEST(MSGPACK, simple_buffer_fixext_1byte_0) +BOOST_AUTO_TEST_CASE(simple_buffer_fixext_1byte_0) { std::size_t const size = 0; msgpack::sbuffer sbuf; @@ -469,11 +451,11 @@ TEST(MSGPACK, simple_buffer_fixext_1byte_0) packer.pack_ext(size, 77); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(size, oh.get().via.ext.size); - EXPECT_EQ(77, oh.get().via.ext.type()); + BOOST_CHECK_EQUAL(size, oh.get().via.ext.size); + BOOST_CHECK_EQUAL(77, oh.get().via.ext.type()); } -TEST(MSGPACK, simple_buffer_fixext_1byte_255) +BOOST_AUTO_TEST_CASE(simple_buffer_fixext_1byte_255) { std::size_t const size = 255; msgpack::sbuffer sbuf; @@ -485,24 +467,24 @@ TEST(MSGPACK, simple_buffer_fixext_1byte_255) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(size, oh.get().via.ext.size); - EXPECT_EQ(77, oh.get().via.ext.type()); - EXPECT_TRUE( + BOOST_CHECK_EQUAL(size, oh.get().via.ext.size); + BOOST_CHECK_EQUAL(77, oh.get().via.ext.type()); + BOOST_CHECK( std::equal(buf, buf + sizeof(buf), oh.get().via.ext.data())); msgpack::sbuffer sbuf2; msgpack::pack(sbuf2, oh.get()); msgpack::object_handle oh2 = msgpack::unpack(sbuf2.data(), sbuf2.size()); - EXPECT_EQ(size, oh2.get().via.ext.size); - EXPECT_EQ(77, oh2.get().via.ext.type()); - EXPECT_TRUE( + BOOST_CHECK_EQUAL(size, oh2.get().via.ext.size); + BOOST_CHECK_EQUAL(77, oh2.get().via.ext.type()); + BOOST_CHECK( std::equal(buf, buf + sizeof(buf), oh2.get().via.ext.data())); - EXPECT_EQ(oh.get(), oh2.get()); + BOOST_CHECK_EQUAL(oh.get(), oh2.get()); } -TEST(MSGPACK, simple_buffer_fixext_2byte_256) +BOOST_AUTO_TEST_CASE(simple_buffer_fixext_2byte_256) { std::size_t const size = 256; msgpack::sbuffer sbuf; @@ -514,24 +496,24 @@ TEST(MSGPACK, simple_buffer_fixext_2byte_256) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(size, oh.get().via.ext.size); - EXPECT_EQ(77, oh.get().via.ext.type()); - EXPECT_TRUE( + BOOST_CHECK_EQUAL(size, oh.get().via.ext.size); + BOOST_CHECK_EQUAL(77, oh.get().via.ext.type()); + BOOST_CHECK( std::equal(buf, buf + sizeof(buf), oh.get().via.ext.data())); msgpack::sbuffer sbuf2; msgpack::pack(sbuf2, oh.get()); msgpack::object_handle oh2 = msgpack::unpack(sbuf2.data(), sbuf2.size()); - EXPECT_EQ(size, oh2.get().via.ext.size); - EXPECT_EQ(77, oh2.get().via.ext.type()); - EXPECT_TRUE( + BOOST_CHECK_EQUAL(size, oh2.get().via.ext.size); + BOOST_CHECK_EQUAL(77, oh2.get().via.ext.type()); + BOOST_CHECK( std::equal(buf, buf + sizeof(buf), oh2.get().via.ext.data())); - EXPECT_EQ(oh.get(), oh2.get()); + BOOST_CHECK_EQUAL(oh.get(), oh2.get()); } -TEST(MSGPACK, simple_buffer_fixext_2byte_65535) +BOOST_AUTO_TEST_CASE(simple_buffer_fixext_2byte_65535) { std::size_t const size = 65535; msgpack::sbuffer sbuf; @@ -543,24 +525,24 @@ TEST(MSGPACK, simple_buffer_fixext_2byte_65535) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(size, oh.get().via.ext.size); - EXPECT_EQ(77, oh.get().via.ext.type()); - EXPECT_TRUE( + BOOST_CHECK_EQUAL(size, oh.get().via.ext.size); + BOOST_CHECK_EQUAL(77, oh.get().via.ext.type()); + BOOST_CHECK( std::equal(buf, buf + sizeof(buf), oh.get().via.ext.data())); msgpack::sbuffer sbuf2; msgpack::pack(sbuf2, oh.get()); msgpack::object_handle oh2 = msgpack::unpack(sbuf2.data(), sbuf2.size()); - EXPECT_EQ(size, oh2.get().via.ext.size); - EXPECT_EQ(77, oh2.get().via.ext.type()); - EXPECT_TRUE( + BOOST_CHECK_EQUAL(size, oh2.get().via.ext.size); + BOOST_CHECK_EQUAL(77, oh2.get().via.ext.type()); + BOOST_CHECK( std::equal(buf, buf + sizeof(buf), oh2.get().via.ext.data())); - EXPECT_EQ(oh.get(), oh2.get()); + BOOST_CHECK_EQUAL(oh.get(), oh2.get()); } -TEST(MSGPACK, simple_buffer_fixext_4byte_65536) +BOOST_AUTO_TEST_CASE(simple_buffer_fixext_4byte_65536) { std::size_t const size = 65536; msgpack::sbuffer sbuf; @@ -572,24 +554,24 @@ TEST(MSGPACK, simple_buffer_fixext_4byte_65536) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(size, oh.get().via.ext.size); - EXPECT_EQ(77, oh.get().via.ext.type()); - EXPECT_TRUE( + BOOST_CHECK_EQUAL(size, oh.get().via.ext.size); + BOOST_CHECK_EQUAL(77, oh.get().via.ext.type()); + BOOST_CHECK( std::equal(buf, buf + sizeof(buf), oh.get().via.ext.data())); msgpack::sbuffer sbuf2; msgpack::pack(sbuf2, oh.get()); msgpack::object_handle oh2 = msgpack::unpack(sbuf2.data(), sbuf2.size()); - EXPECT_EQ(size, oh2.get().via.ext.size); - EXPECT_EQ(77, oh2.get().via.ext.type()); - EXPECT_TRUE( + BOOST_CHECK_EQUAL(size, oh2.get().via.ext.size); + BOOST_CHECK_EQUAL(77, oh2.get().via.ext.type()); + BOOST_CHECK( std::equal(buf, buf + sizeof(buf), oh2.get().via.ext.data())); - EXPECT_EQ(oh.get(), oh2.get()); + BOOST_CHECK_EQUAL(oh.get(), oh2.get()); } -TEST(MSGPACK, simple_buffer_ext_convert) +BOOST_AUTO_TEST_CASE(simple_buffer_ext_convert) { std::size_t const size = 65536; msgpack::sbuffer sbuf; @@ -603,13 +585,13 @@ TEST(MSGPACK, simple_buffer_ext_convert) msgpack::unpack(sbuf.data(), sbuf.size()); msgpack::type::ext e; oh.get().convert(e); - EXPECT_EQ(size, e.size()); - EXPECT_EQ(77, e.type()); - EXPECT_TRUE( + BOOST_CHECK_EQUAL(size, e.size()); + BOOST_CHECK_EQUAL(77, e.type()); + BOOST_CHECK( std::equal(buf, buf + sizeof(buf), e.data())); } -TEST(MSGPACK, simple_buffer_ext_pack_convert) +BOOST_AUTO_TEST_CASE(simple_buffer_ext_pack_convert) { std::size_t const size = 65536; msgpack::sbuffer sbuf; @@ -622,13 +604,13 @@ TEST(MSGPACK, simple_buffer_ext_pack_convert) msgpack::unpack(sbuf.data(), sbuf.size()); msgpack::type::ext val2; oh.get().convert(val2); - EXPECT_EQ(size, val2.size()); - EXPECT_EQ(77, val2.type()); - EXPECT_TRUE( + BOOST_CHECK_EQUAL(size, val2.size()); + BOOST_CHECK_EQUAL(77, val2.type()); + BOOST_CHECK( std::equal(buf, buf + sizeof(buf), val2.data())); } -TEST(MSGPACK, simple_buffer_ext_ref_convert) +BOOST_AUTO_TEST_CASE(simple_buffer_ext_ref_convert) { std::size_t const size = 65536; msgpack::sbuffer sbuf; @@ -642,13 +624,13 @@ TEST(MSGPACK, simple_buffer_ext_ref_convert) msgpack::unpack(sbuf.data(), sbuf.size()); msgpack::type::ext_ref er; oh.get().convert(er); - EXPECT_EQ(size, er.size()); - EXPECT_EQ(77, er.type()); - EXPECT_TRUE( + BOOST_CHECK_EQUAL(size, er.size()); + BOOST_CHECK_EQUAL(77, er.type()); + BOOST_CHECK( std::equal(buf, buf + sizeof(buf), er.data())); } -TEST(MSGPACK, simple_buffer_ext_ref_pack_convert) +BOOST_AUTO_TEST_CASE(simple_buffer_ext_ref_pack_convert) { std::size_t const buf_size = 65536; std::size_t const data_size = buf_size - 1; @@ -662,13 +644,13 @@ TEST(MSGPACK, simple_buffer_ext_ref_pack_convert) msgpack::unpack(sbuf.data(), sbuf.size()); msgpack::type::ext_ref val2; oh.get().convert(val2); - EXPECT_EQ(data_size, val2.size()); - EXPECT_EQ(77, val2.type()); - EXPECT_TRUE( + BOOST_CHECK_EQUAL(data_size, val2.size()); + BOOST_CHECK_EQUAL(77, val2.type()); + BOOST_CHECK( std::equal(&buf[1], &buf[buf_size], val2.data())); } -TEST(MSGPACK_STL, simple_buffer_string) +BOOST_AUTO_TEST_CASE(simple_buffer_string) { for (unsigned int k = 0; k < kLoop; k++) { string val1; @@ -678,65 +660,9 @@ TEST(MSGPACK_STL, simple_buffer_string) msgpack::pack(sbuf, val1); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(oh.get().type, msgpack::type::STR); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::STR); string val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); - EXPECT_EQ(val1, val2); - } -} - -TEST(MSGPACK_STL, simple_buffer_cstring) -{ - for (unsigned int k = 0; k < kLoop; k++) { - string val1; - for (unsigned int i = 0; i < kElements; i++) - val1 += static_cast('a' + rand() % 26); - msgpack::sbuffer sbuf; - msgpack::pack(sbuf, val1.c_str()); - msgpack::object_handle oh = - msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(oh.get().type, msgpack::type::STR); - string val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); - EXPECT_EQ(val1, val2); - } -} - -TEST(MSGPACK_STL, simple_buffer_non_const_cstring) -{ - for (unsigned int k = 0; k < kLoop; k++) { - string val1; - for (unsigned int i = 0; i < kElements; i++) - val1 += static_cast('a' + rand() % 26); - msgpack::sbuffer sbuf; - char* s = new char[val1.size() + 1]; - std::memcpy(s, val1.c_str(), val1.size() + 1); - msgpack::pack(sbuf, s); - delete [] s; - msgpack::object_handle oh = - msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(oh.get().type, msgpack::type::STR); - string val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); - EXPECT_EQ(val1, val2); - } -} - -TEST(MSGPACK_STL, simple_buffer_wstring) -{ - for (unsigned int k = 0; k < kLoop; k++) { - wstring val1; - for (unsigned int i = 0; i < kElements; i++) - val1 += L'a' + rand() % 26; - msgpack::sbuffer sbuf; - msgpack::pack(sbuf, val1); - msgpack::object_handle oh = - msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(oh.get().type, msgpack::type::ARRAY); - wstring val2 = oh.get().as(); - EXPECT_EQ(val1, val2); - wstring val3; - oh.get().convert(val3); - EXPECT_EQ(val1, val3); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); + BOOST_CHECK_EQUAL(val1, val2); } } diff --git a/test/msgpack_container.cpp b/test/msgpack_container.cpp index b521c0ec..cca39b59 100644 --- a/test/msgpack_container.cpp +++ b/test/msgpack_container.cpp @@ -12,16 +12,8 @@ #include "test_allocator.hpp" -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) - -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE MSGPACK_STL +#include #ifdef HAVE_CONFIG_H #include "config.h" @@ -46,7 +38,63 @@ struct less : std::less { } // namespace test -TEST(MSGPACK_STL, simple_buffer_vector) +BOOST_AUTO_TEST_CASE(simple_buffer_cstring) +{ + for (unsigned int k = 0; k < kLoop; k++) { + string val1; + for (unsigned int i = 0; i < kElements; i++) + val1 += static_cast('a' + rand() % 26); + msgpack::sbuffer sbuf; + msgpack::pack(sbuf, val1.c_str()); + msgpack::object_handle oh = + msgpack::unpack(sbuf.data(), sbuf.size()); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::STR); + string val2 = oh.get().as(); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); + BOOST_CHECK_EQUAL(val1, val2); + } +} + +BOOST_AUTO_TEST_CASE(simple_buffer_non_const_cstring) +{ + for (unsigned int k = 0; k < kLoop; k++) { + string val1; + for (unsigned int i = 0; i < kElements; i++) + val1 += static_cast('a' + rand() % 26); + msgpack::sbuffer sbuf; + char* s = new char[val1.size() + 1]; + std::memcpy(s, val1.c_str(), val1.size() + 1); + msgpack::pack(sbuf, s); + delete [] s; + msgpack::object_handle oh = + msgpack::unpack(sbuf.data(), sbuf.size()); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::STR); + string val2 = oh.get().as(); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); + BOOST_CHECK_EQUAL(val1, val2); + } +} + +BOOST_AUTO_TEST_CASE(simple_buffer_wstring) +{ + for (unsigned int k = 0; k < kLoop; k++) { + wstring val1; + for (unsigned int i = 0; i < kElements; i++) + val1 += L'a' + rand() % 26; + msgpack::sbuffer sbuf; + msgpack::pack(sbuf, val1); + msgpack::object_handle oh = + msgpack::unpack(sbuf.data(), sbuf.size()); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::ARRAY); + wstring val2 = oh.get().as(); + BOOST_CHECK(val1 == val2); + wstring val3; + oh.get().convert(val3); + BOOST_CHECK(val1 == val3); + } +} + +BOOST_AUTO_TEST_CASE(simple_buffer_vector) { typedef vector > type; for (unsigned int k = 0; k < kLoop; k++) { @@ -57,14 +105,14 @@ TEST(MSGPACK_STL, simple_buffer_vector) msgpack::pack(sbuf, val1); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(oh.get().type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::ARRAY); type const& val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); - EXPECT_TRUE(equal(val1.begin(), val1.end(), val2.begin())); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); + BOOST_CHECK(equal(val1.begin(), val1.end(), val2.begin())); } } -TEST(MSGPACK_STL, simple_buffer_vector_empty) +BOOST_AUTO_TEST_CASE(simple_buffer_vector_empty) { typedef vector > type; type val1; @@ -72,13 +120,13 @@ TEST(MSGPACK_STL, simple_buffer_vector_empty) msgpack::pack(sbuf, val1); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(oh.get().type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::ARRAY); type const& val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); - EXPECT_TRUE(equal(val1.begin(), val1.end(), val2.begin())); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); + BOOST_CHECK(equal(val1.begin(), val1.end(), val2.begin())); } -TEST(MSGPACK_STL, simple_buffer_vector_char) +BOOST_AUTO_TEST_CASE(simple_buffer_vector_char) { typedef vector > type; for (unsigned int k = 0; k < kLoop; k++) { @@ -89,14 +137,14 @@ TEST(MSGPACK_STL, simple_buffer_vector_char) msgpack::pack(sbuf, val1); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(oh.get().type, msgpack::type::BIN); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::BIN); type const& val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); - EXPECT_TRUE(equal(val1.begin(), val1.end(), val2.begin())); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); + BOOST_CHECK(equal(val1.begin(), val1.end(), val2.begin())); } } -TEST(MSGPACK_STL, simple_buffer_vector_char_empty) +BOOST_AUTO_TEST_CASE(simple_buffer_vector_char_empty) { typedef vector > type; type val1; @@ -104,13 +152,13 @@ TEST(MSGPACK_STL, simple_buffer_vector_char_empty) msgpack::pack(sbuf, val1); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(oh.get().type, msgpack::type::BIN); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::BIN); type const& val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); - EXPECT_TRUE(equal(val1.begin(), val1.end(), val2.begin())); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); + BOOST_CHECK(equal(val1.begin(), val1.end(), val2.begin())); } -TEST(MSGPACK_STL, simple_buffer_vector_unsigned_char) +BOOST_AUTO_TEST_CASE(simple_buffer_vector_unsigned_char) { typedef vector > type; for (unsigned int k = 0; k < kLoop; k++) { @@ -121,14 +169,14 @@ TEST(MSGPACK_STL, simple_buffer_vector_unsigned_char) msgpack::pack(sbuf, val1); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(oh.get().type, msgpack::type::BIN); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::BIN); type const& val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); - EXPECT_TRUE(equal(val1.begin(), val1.end(), val2.begin())); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); + BOOST_CHECK(equal(val1.begin(), val1.end(), val2.begin())); } } -TEST(MSGPACK_STL, simple_buffer_vector_unsigned_char_empty) +BOOST_AUTO_TEST_CASE(simple_buffer_vector_unsigned_char_empty) { typedef vector > type; type val1; @@ -136,13 +184,13 @@ TEST(MSGPACK_STL, simple_buffer_vector_unsigned_char_empty) msgpack::pack(sbuf, val1); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(oh.get().type, msgpack::type::BIN); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::BIN); type const& val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); - EXPECT_TRUE(equal(val1.begin(), val1.end(), val2.begin())); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); + BOOST_CHECK(equal(val1.begin(), val1.end(), val2.begin())); } -TEST(MSGPACK_STL, simple_buffer_vector_uint8_t) +BOOST_AUTO_TEST_CASE(simple_buffer_vector_uint8_t) { if (!msgpack::is_same::value) return; typedef vector > type; @@ -154,14 +202,14 @@ TEST(MSGPACK_STL, simple_buffer_vector_uint8_t) msgpack::pack(sbuf, val1); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(oh.get().type, msgpack::type::BIN); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::BIN); type const& val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); - EXPECT_TRUE(equal(val1.begin(), val1.end(), val2.begin())); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); + BOOST_CHECK(equal(val1.begin(), val1.end(), val2.begin())); } } -TEST(MSGPACK_STL, simple_buffer_vector_uint8_t_empty) +BOOST_AUTO_TEST_CASE(simple_buffer_vector_uint8_t_empty) { if (!msgpack::is_same::value) return; typedef vector > type; @@ -170,13 +218,13 @@ TEST(MSGPACK_STL, simple_buffer_vector_uint8_t_empty) msgpack::pack(sbuf, val1); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(oh.get().type, msgpack::type::BIN); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::BIN); type const& val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); - EXPECT_TRUE(equal(val1.begin(), val1.end(), val2.begin())); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); + BOOST_CHECK(equal(val1.begin(), val1.end(), val2.begin())); } -TEST(MSGPACK_STL, simple_buffer_vector_bool) +BOOST_AUTO_TEST_CASE(simple_buffer_vector_bool) { typedef vector > type; type val1; @@ -186,13 +234,13 @@ TEST(MSGPACK_STL, simple_buffer_vector_bool) msgpack::pack(sbuf, val1); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(oh.get().type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::ARRAY); type const& val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); - EXPECT_TRUE(equal(val1.begin(), val1.end(), val2.begin())); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); + BOOST_CHECK(equal(val1.begin(), val1.end(), val2.begin())); } -TEST(MSGPACK_STL, simple_buffer_vector_bool_empty) +BOOST_AUTO_TEST_CASE(simple_buffer_vector_bool_empty) { typedef vector > type; type val1; @@ -200,14 +248,14 @@ TEST(MSGPACK_STL, simple_buffer_vector_bool_empty) msgpack::pack(sbuf, val1); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(oh.get().type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::ARRAY); type const& val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); - EXPECT_TRUE(equal(val1.begin(), val1.end(), val2.begin())); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); + BOOST_CHECK(equal(val1.begin(), val1.end(), val2.begin())); } -TEST(MSGPACK_STL, simple_buffer_assoc_vector) +BOOST_AUTO_TEST_CASE(simple_buffer_assoc_vector) { typedef msgpack::type::assoc_vector, test::allocator > >type; for (unsigned int k = 0; k < kLoop; k++) { @@ -220,12 +268,12 @@ TEST(MSGPACK_STL, simple_buffer_assoc_vector) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); type const& val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); - EXPECT_TRUE(equal(val1.begin(), val1.end(), val2.begin())); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); + BOOST_CHECK(equal(val1.begin(), val1.end(), val2.begin())); } } -TEST(MSGPACK_STL, simple_buffer_assoc_vector_empty) +BOOST_AUTO_TEST_CASE(simple_buffer_assoc_vector_empty) { typedef msgpack::type::assoc_vector, test::allocator > >type; type val1; @@ -234,11 +282,11 @@ TEST(MSGPACK_STL, simple_buffer_assoc_vector_empty) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); type const& val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); - EXPECT_TRUE(equal(val1.begin(), val1.end(), val2.begin())); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); + BOOST_CHECK(equal(val1.begin(), val1.end(), val2.begin())); } -TEST(MSGPACK_STL, simple_buffer_map) +BOOST_AUTO_TEST_CASE(simple_buffer_map) { typedef map, test::allocator > > type; for (unsigned int k = 0; k < kLoop; k++) { @@ -250,12 +298,12 @@ TEST(MSGPACK_STL, simple_buffer_map) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); type const& val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); - EXPECT_TRUE(equal(val1.begin(), val1.end(), val2.begin())); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); + BOOST_CHECK(equal(val1.begin(), val1.end(), val2.begin())); } } -TEST(MSGPACK_STL, simple_buffer_map_empty) +BOOST_AUTO_TEST_CASE(simple_buffer_map_empty) { typedef map, test::allocator > > type; type val1; @@ -264,11 +312,11 @@ TEST(MSGPACK_STL, simple_buffer_map_empty) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); type const& val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); - EXPECT_TRUE(equal(val1.begin(), val1.end(), val2.begin())); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); + BOOST_CHECK(equal(val1.begin(), val1.end(), val2.begin())); } -TEST(MSGPACK_STL, simple_buffer_deque) +BOOST_AUTO_TEST_CASE(simple_buffer_deque) { typedef deque > type; for (unsigned int k = 0; k < kLoop; k++) { @@ -280,12 +328,12 @@ TEST(MSGPACK_STL, simple_buffer_deque) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); type const& val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); - EXPECT_TRUE(equal(val1.begin(), val1.end(), val2.begin())); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); + BOOST_CHECK(equal(val1.begin(), val1.end(), val2.begin())); } } -TEST(MSGPACK_STL, simple_buffer_deque_empty) +BOOST_AUTO_TEST_CASE(simple_buffer_deque_empty) { typedef deque > type; type val1; @@ -294,11 +342,11 @@ TEST(MSGPACK_STL, simple_buffer_deque_empty) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); type const& val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); - EXPECT_TRUE(equal(val1.begin(), val1.end(), val2.begin())); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); + BOOST_CHECK(equal(val1.begin(), val1.end(), val2.begin())); } -TEST(MSGPACK_STL, simple_buffer_list) +BOOST_AUTO_TEST_CASE(simple_buffer_list) { typedef list > type; for (unsigned int k = 0; k < kLoop; k++) { @@ -310,12 +358,12 @@ TEST(MSGPACK_STL, simple_buffer_list) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); type const& val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); - EXPECT_TRUE(equal(val1.begin(), val1.end(), val2.begin())); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); + BOOST_CHECK(equal(val1.begin(), val1.end(), val2.begin())); } } -TEST(MSGPACK_STL, simple_buffer_list_empty) +BOOST_AUTO_TEST_CASE(simple_buffer_list_empty) { typedef list > type; type val1; @@ -324,11 +372,11 @@ TEST(MSGPACK_STL, simple_buffer_list_empty) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); type const& val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); - EXPECT_TRUE(equal(val1.begin(), val1.end(), val2.begin())); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); + BOOST_CHECK(equal(val1.begin(), val1.end(), val2.begin())); } -TEST(MSGPACK_STL, simple_buffer_set) +BOOST_AUTO_TEST_CASE(simple_buffer_set) { typedef set, test::allocator > type; for (unsigned int k = 0; k < kLoop; k++) { @@ -340,12 +388,12 @@ TEST(MSGPACK_STL, simple_buffer_set) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); type val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); - EXPECT_TRUE(equal(val1.begin(), val1.end(), val2.begin())); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); + BOOST_CHECK(equal(val1.begin(), val1.end(), val2.begin())); } } -TEST(MSGPACK_STL, simple_buffer_set_empty) +BOOST_AUTO_TEST_CASE(simple_buffer_set_empty) { typedef set, test::allocator > type; type val1; @@ -354,11 +402,11 @@ TEST(MSGPACK_STL, simple_buffer_set_empty) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); type val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); - EXPECT_TRUE(equal(val1.begin(), val1.end(), val2.begin())); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); + BOOST_CHECK(equal(val1.begin(), val1.end(), val2.begin())); } -TEST(MSGPACK_STL, simple_buffer_pair) +BOOST_AUTO_TEST_CASE(simple_buffer_pair) { for (unsigned int k = 0; k < kLoop; k++) { pair val1 = make_pair(rand(), rand()); @@ -367,12 +415,12 @@ TEST(MSGPACK_STL, simple_buffer_pair) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); pair val2 = oh.get().as >(); - EXPECT_EQ(val1.first, val2.first); - EXPECT_EQ(val1.second, val2.second); + BOOST_CHECK_EQUAL(val1.first, val2.first); + BOOST_CHECK_EQUAL(val1.second, val2.second); } } -TEST(MSGPACK_STL, simple_buffer_complex_float) +BOOST_AUTO_TEST_CASE(simple_buffer_complex_float) { complex val1 = complex(1.23F, 4.56F); msgpack::sbuffer sbuf; @@ -380,14 +428,14 @@ TEST(MSGPACK_STL, simple_buffer_complex_float) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); complex val2 = oh.get().as >(); - EXPECT_EQ(val1, val2); + BOOST_CHECK_EQUAL(val1, val2); complex val3; oh.get().convert(val3); - EXPECT_EQ(val1, val3); + BOOST_CHECK_EQUAL(val1, val3); } -TEST(MSGPACK_STL, simple_buffer_complex_double) +BOOST_AUTO_TEST_CASE(simple_buffer_complex_double) { complex val1 = complex(1.23, 4.56); msgpack::sbuffer sbuf; @@ -395,14 +443,14 @@ TEST(MSGPACK_STL, simple_buffer_complex_double) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); complex val2 = oh.get().as >(); - EXPECT_EQ(val1, val2); + BOOST_CHECK_EQUAL(val1, val2); complex val3; oh.get().convert(val3); - EXPECT_EQ(val1, val3); + BOOST_CHECK_EQUAL(val1, val3); } -TEST(MSGPACK_STL, simple_buffer_multimap) +BOOST_AUTO_TEST_CASE(simple_buffer_multimap) { typedef multimap, test::allocator > > type; for (unsigned int k = 0; k < kLoop; k++) { @@ -424,15 +472,15 @@ TEST(MSGPACK_STL, simple_buffer_multimap) v1.push_back(make_pair(it->first, it->second)); for (it = val2.begin(); it != val2.end(); ++it) v2.push_back(make_pair(it->first, it->second)); - EXPECT_EQ(val1.size(), val2.size()); - EXPECT_EQ(v1.size(), v2.size()); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); + BOOST_CHECK_EQUAL(v1.size(), v2.size()); sort(v1.begin(), v1.end()); sort(v2.begin(), v2.end()); - EXPECT_TRUE(v1 == v2); + BOOST_CHECK(v1 == v2); } } -TEST(MSGPACK_STL, simple_buffer_multimap_empty) +BOOST_AUTO_TEST_CASE(simple_buffer_multimap_empty) { typedef multimap, test::allocator > > type; type val1; @@ -441,10 +489,10 @@ TEST(MSGPACK_STL, simple_buffer_multimap_empty) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); type val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); } -TEST(MSGPACK_STL, simple_buffer_multiset) +BOOST_AUTO_TEST_CASE(simple_buffer_multiset) { typedef multiset, test::allocator > type; for (unsigned int k = 0; k < kLoop; k++) { @@ -463,15 +511,15 @@ TEST(MSGPACK_STL, simple_buffer_multiset) v1.push_back(*it); for (it = val2.begin(); it != val2.end(); ++it) v2.push_back(*it); - EXPECT_EQ(val1.size(), val2.size()); - EXPECT_EQ(v1.size(), v2.size()); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); + BOOST_CHECK_EQUAL(v1.size(), v2.size()); sort(v1.begin(), v1.end()); sort(v2.begin(), v2.end()); - EXPECT_TRUE(v1 == v2); + BOOST_CHECK(v1 == v2); } } -TEST(MSGPACK_STL, simple_buffer_multiset_empty) +BOOST_AUTO_TEST_CASE(simple_buffer_multiset_empty) { typedef multiset, test::allocator > type; type val1; @@ -480,10 +528,10 @@ TEST(MSGPACK_STL, simple_buffer_multiset_empty) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); type val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); } -TEST(MSGPACK_TUPLE, simple_tuple) +BOOST_AUTO_TEST_CASE(simple_tuple) { msgpack::sbuffer sbuf; msgpack::type::tuple val1(true, "kzk", 12.3); @@ -492,13 +540,13 @@ TEST(MSGPACK_TUPLE, simple_tuple) msgpack::unpack(sbuf.data(), sbuf.size()); msgpack::type::tuple val2 = oh.get().as >(); - EXPECT_EQ(oh.get().via.array.size, 3u); - EXPECT_EQ(val1.get<0>(), val2.get<0>()); - EXPECT_EQ(val1.get<1>(), val2.get<1>()); - EXPECT_EQ(val1.get<2>(), val2.get<2>()); + BOOST_CHECK_EQUAL(oh.get().via.array.size, 3u); + BOOST_CHECK_EQUAL(val1.get<0>(), val2.get<0>()); + BOOST_CHECK_EQUAL(val1.get<1>(), val2.get<1>()); + BOOST_CHECK_EQUAL(val1.get<2>(), val2.get<2>()); } -TEST(MSGPACK_TUPLE, simple_tuple_empty) +BOOST_AUTO_TEST_CASE(simple_tuple_empty) { msgpack::sbuffer sbuf; msgpack::type::tuple<> val1; @@ -506,10 +554,10 @@ TEST(MSGPACK_TUPLE, simple_tuple_empty) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); oh.get().as >(); - EXPECT_EQ(oh.get().via.array.size, 0u); + BOOST_CHECK_EQUAL(oh.get().via.array.size, 0u); } -TEST(MSGPACK_TUPLE, simple_tuple_grater_than_as) +BOOST_AUTO_TEST_CASE(simple_tuple_grater_than_as) { msgpack::sbuffer sbuf; msgpack::type::tuple val1(true, "kzk", 42); @@ -518,13 +566,13 @@ TEST(MSGPACK_TUPLE, simple_tuple_grater_than_as) msgpack::unpack(sbuf.data(), sbuf.size()); msgpack::type::tuple val2 = oh.get().as >(); - EXPECT_EQ(oh.get().via.array.size, 3u); - EXPECT_EQ(val1.get<0>(), val2.get<0>()); - EXPECT_EQ(val1.get<1>(), val2.get<1>()); - EXPECT_EQ(val1.get<2>(), val2.get<2>()); + BOOST_CHECK_EQUAL(oh.get().via.array.size, 3u); + BOOST_CHECK_EQUAL(val1.get<0>(), val2.get<0>()); + BOOST_CHECK_EQUAL(val1.get<1>(), val2.get<1>()); + BOOST_CHECK_EQUAL(val1.get<2>(), val2.get<2>()); } -TEST(MSGPACK_TUPLE, simple_tuple_grater_than_convert) +BOOST_AUTO_TEST_CASE(simple_tuple_grater_than_convert) { msgpack::sbuffer sbuf; msgpack::type::tuple val1(true, "kzk", 42); @@ -533,13 +581,13 @@ TEST(MSGPACK_TUPLE, simple_tuple_grater_than_convert) msgpack::unpack(sbuf.data(), sbuf.size()); msgpack::type::tuple val2; oh.get().convert(val2); - EXPECT_EQ(oh.get().via.array.size, 3u); - EXPECT_EQ(val1.get<0>(), val2.get<0>()); - EXPECT_EQ(val1.get<1>(), val2.get<1>()); - EXPECT_EQ(val1.get<2>(), val2.get<2>()); + BOOST_CHECK_EQUAL(oh.get().via.array.size, 3u); + BOOST_CHECK_EQUAL(val1.get<0>(), val2.get<0>()); + BOOST_CHECK_EQUAL(val1.get<1>(), val2.get<1>()); + BOOST_CHECK_EQUAL(val1.get<2>(), val2.get<2>()); } -TEST(MSGPACK_TUPLE, simple_tuple_less_than_as) +BOOST_AUTO_TEST_CASE(simple_tuple_less_than_as) { msgpack::sbuffer sbuf; msgpack::type::tuple val1(true, "kzk", 42); @@ -548,12 +596,12 @@ TEST(MSGPACK_TUPLE, simple_tuple_less_than_as) msgpack::unpack(sbuf.data(), sbuf.size()); msgpack::type::tuple val2 = oh.get().as >(); - EXPECT_EQ(oh.get().via.array.size, 3u); - EXPECT_EQ(val1.get<0>(), val2.get<0>()); - EXPECT_EQ(val1.get<1>(), val2.get<1>()); + BOOST_CHECK_EQUAL(oh.get().via.array.size, 3u); + BOOST_CHECK_EQUAL(val1.get<0>(), val2.get<0>()); + BOOST_CHECK_EQUAL(val1.get<1>(), val2.get<1>()); } -TEST(MSGPACK_TUPLE, simple_tuple_less_than_convert) +BOOST_AUTO_TEST_CASE(simple_tuple_less_than_convert) { msgpack::sbuffer sbuf; msgpack::type::tuple val1(true, "kzk", 42); @@ -562,12 +610,12 @@ TEST(MSGPACK_TUPLE, simple_tuple_less_than_convert) msgpack::unpack(sbuf.data(), sbuf.size()); msgpack::type::tuple val2; oh.get().convert(val2); - EXPECT_EQ(oh.get().via.array.size, 3u); - EXPECT_EQ(val1.get<0>(), val2.get<0>()); - EXPECT_EQ(val1.get<1>(), val2.get<1>()); + BOOST_CHECK_EQUAL(oh.get().via.array.size, 3u); + BOOST_CHECK_EQUAL(val1.get<0>(), val2.get<0>()); + BOOST_CHECK_EQUAL(val1.get<1>(), val2.get<1>()); } -TEST(MSGPACK_TUPLE, simple_tuple_nest) +BOOST_AUTO_TEST_CASE(simple_tuple_nest) { msgpack::sbuffer sbuf; msgpack::type::tuple > val1; @@ -576,7 +624,7 @@ TEST(MSGPACK_TUPLE, simple_tuple_nest) msgpack::unpack(sbuf.data(), sbuf.size()); msgpack::type::tuple > val2; oh.get().convert(val2); - EXPECT_EQ(oh.get().via.array.size, 1u); + BOOST_CHECK_EQUAL(oh.get().via.array.size, 1u); } // TR1 @@ -598,7 +646,7 @@ struct tr1_hash : std::tr1::hash { #ifdef MSGPACK_HAS_STD_TR1_UNORDERED_MAP #include #include "msgpack/adaptor/tr1/unordered_map.hpp" -TEST(MSGPACK_TR1, simple_buffer_tr1_unordered_map) +BOOST_AUTO_TEST_CASE(simple_buffer_tr1_unordered_map) { typedef tr1::unordered_map, test::equal_to, test::allocator > > type; for (unsigned int k = 0; k < kLoop; k++) { @@ -610,16 +658,16 @@ TEST(MSGPACK_TR1, simple_buffer_tr1_unordered_map) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); type val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); type::const_iterator it; for (it = val1.begin(); it != val1.end(); ++it) { - EXPECT_TRUE(val2.find(it->first) != val2.end()); - EXPECT_EQ(it->second, val2.find(it->first)->second); + BOOST_CHECK(val2.find(it->first) != val2.end()); + BOOST_CHECK_EQUAL(it->second, val2.find(it->first)->second); } } } -TEST(MSGPACK_TR1, simple_buffer_tr1_unordered_map_empty) +BOOST_AUTO_TEST_CASE(simple_buffer_tr1_unordered_map_empty) { typedef tr1::unordered_map, test::equal_to, test::allocator > > type; type val1; @@ -628,10 +676,10 @@ TEST(MSGPACK_TR1, simple_buffer_tr1_unordered_map_empty) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); type val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); } -TEST(MSGPACK_TR1, simple_buffer_tr1_unordered_multimap) +BOOST_AUTO_TEST_CASE(simple_buffer_tr1_unordered_multimap) { typedef tr1::unordered_multimap, test::equal_to, test::allocator > > type; for (unsigned int k = 0; k < kLoop; k++) { @@ -653,15 +701,15 @@ TEST(MSGPACK_TR1, simple_buffer_tr1_unordered_multimap) v1.push_back(make_pair(it->first, it->second)); for (it = val2.begin(); it != val2.end(); ++it) v2.push_back(make_pair(it->first, it->second)); - EXPECT_EQ(val1.size(), val2.size()); - EXPECT_EQ(v1.size(), v2.size()); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); + BOOST_CHECK_EQUAL(v1.size(), v2.size()); sort(v1.begin(), v1.end()); sort(v2.begin(), v2.end()); - EXPECT_TRUE(v1 == v2); + BOOST_CHECK(v1 == v2); } } -TEST(MSGPACK_TR1, simple_buffer_tr1_unordered_multimap_empty) +BOOST_AUTO_TEST_CASE(simple_buffer_tr1_unordered_multimap_empty) { typedef tr1::unordered_multimap, test::equal_to, test::allocator > > type; type val1; @@ -670,7 +718,7 @@ TEST(MSGPACK_TR1, simple_buffer_tr1_unordered_multimap_empty) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); type val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); } #endif @@ -678,7 +726,7 @@ TEST(MSGPACK_TR1, simple_buffer_tr1_unordered_multimap_empty) #ifdef MSGPACK_HAS_STD_TR1_UNORDERED_SET #include #include "msgpack/adaptor/tr1/unordered_set.hpp" -TEST(MSGPACK_TR1, simple_buffer_tr1_unordered_set) +BOOST_AUTO_TEST_CASE(simple_buffer_tr1_unordered_set) { typedef tr1::unordered_set, test::equal_to, test::allocator > type; for (unsigned int k = 0; k < kLoop; k++) { @@ -690,14 +738,14 @@ TEST(MSGPACK_TR1, simple_buffer_tr1_unordered_set) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); type val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); type::const_iterator it; for (it = val1.begin(); it != val1.end(); ++it) - EXPECT_TRUE(val2.find(*it) != val2.end()); + BOOST_CHECK(val2.find(*it) != val2.end()); } } -TEST(MSGPACK_TR1, simple_buffer_tr1_unordered_set_empty) +BOOST_AUTO_TEST_CASE(simple_buffer_tr1_unordered_set_empty) { typedef tr1::unordered_set, test::equal_to, test::allocator > type; type val1; @@ -706,10 +754,10 @@ TEST(MSGPACK_TR1, simple_buffer_tr1_unordered_set_empty) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); type val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); } -TEST(MSGPACK_TR1, simple_buffer_tr1_unordered_multiset) +BOOST_AUTO_TEST_CASE(simple_buffer_tr1_unordered_multiset) { typedef tr1::unordered_multiset, test::equal_to, test::allocator > type; for (unsigned int k = 0; k < kLoop; k++) { @@ -728,15 +776,15 @@ TEST(MSGPACK_TR1, simple_buffer_tr1_unordered_multiset) v1.push_back(*it); for (it = val2.begin(); it != val2.end(); ++it) v2.push_back(*it); - EXPECT_EQ(val1.size(), val2.size()); - EXPECT_EQ(v1.size(), v2.size()); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); + BOOST_CHECK_EQUAL(v1.size(), v2.size()); sort(v1.begin(), v1.end()); sort(v2.begin(), v2.end()); - EXPECT_TRUE(v1 == v2); + BOOST_CHECK(v1 == v2); } } -TEST(MSGPACK_TR1, simple_buffer_tr1_unordered_multiset_empty) +BOOST_AUTO_TEST_CASE(simple_buffer_tr1_unordered_multiset_empty) { typedef tr1::unordered_multiset, test::equal_to, test::allocator > type; type val1; @@ -745,7 +793,7 @@ TEST(MSGPACK_TR1, simple_buffer_tr1_unordered_multiset_empty) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); type val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); } #endif @@ -767,7 +815,7 @@ struct hash : std::hash { #ifdef MSGPACK_HAS_STD_UNORDERED_MAP #include #include "msgpack/adaptor/tr1/unordered_map.hpp" -TEST(MSGPACK_TR1, simple_buffer_unordered_map) +BOOST_AUTO_TEST_CASE(simple_buffer_unordered_map) { typedef unordered_map, test::equal_to, test::allocator > > type; for (unsigned int k = 0; k < kLoop; k++) { @@ -779,16 +827,16 @@ TEST(MSGPACK_TR1, simple_buffer_unordered_map) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); type val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); type::const_iterator it; for (it = val1.begin(); it != val1.end(); ++it) { - EXPECT_TRUE(val2.find(it->first) != val2.end()); - EXPECT_EQ(it->second, val2.find(it->first)->second); + BOOST_CHECK(val2.find(it->first) != val2.end()); + BOOST_CHECK_EQUAL(it->second, val2.find(it->first)->second); } } } -TEST(MSGPACK_TR1, simple_buffer_unordered_map_empty) +BOOST_AUTO_TEST_CASE(simple_buffer_unordered_map_empty) { typedef unordered_map, test::equal_to, test::allocator > > type; type val1; @@ -797,10 +845,10 @@ TEST(MSGPACK_TR1, simple_buffer_unordered_map_empty) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); type val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); } -TEST(MSGPACK_TR1, simple_buffer_unordered_multimap) +BOOST_AUTO_TEST_CASE(simple_buffer_unordered_multimap) { typedef unordered_multimap, test::equal_to, test::allocator > > type; for (unsigned int k = 0; k < kLoop; k++) { @@ -822,15 +870,15 @@ TEST(MSGPACK_TR1, simple_buffer_unordered_multimap) v1.push_back(make_pair(it->first, it->second)); for (it = val2.begin(); it != val2.end(); ++it) v2.push_back(make_pair(it->first, it->second)); - EXPECT_EQ(val1.size(), val2.size()); - EXPECT_EQ(v1.size(), v2.size()); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); + BOOST_CHECK_EQUAL(v1.size(), v2.size()); sort(v1.begin(), v1.end()); sort(v2.begin(), v2.end()); - EXPECT_TRUE(v1 == v2); + BOOST_CHECK(v1 == v2); } } -TEST(MSGPACK_TR1, simple_buffer_unordered_multimap_empty) +BOOST_AUTO_TEST_CASE(simple_buffer_unordered_multimap_empty) { typedef unordered_multimap, test::equal_to, test::allocator > > type; type val1; @@ -839,7 +887,7 @@ TEST(MSGPACK_TR1, simple_buffer_unordered_multimap_empty) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); type val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); } #endif @@ -848,7 +896,7 @@ TEST(MSGPACK_TR1, simple_buffer_unordered_multimap_empty) #include #include "msgpack/adaptor/tr1/unordered_set.hpp" -TEST(MSGPACK_TR1, simple_buffer_unordered_set) +BOOST_AUTO_TEST_CASE(simple_buffer_unordered_set) { typedef unordered_set, test::equal_to, test::allocator > type; for (unsigned int k = 0; k < kLoop; k++) { @@ -860,14 +908,14 @@ TEST(MSGPACK_TR1, simple_buffer_unordered_set) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); type val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); type::const_iterator it; for (it = val1.begin(); it != val1.end(); ++it) - EXPECT_TRUE(val2.find(*it) != val2.end()); + BOOST_CHECK(val2.find(*it) != val2.end()); } } -TEST(MSGPACK_TR1, simple_buffer_unordered_set_empty) +BOOST_AUTO_TEST_CASE(simple_buffer_unordered_set_empty) { typedef unordered_set, test::equal_to, test::allocator > type; type val1; @@ -876,10 +924,10 @@ TEST(MSGPACK_TR1, simple_buffer_unordered_set_empty) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); type val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); } -TEST(MSGPACK_TR1, simple_buffer_unordered_multiset) +BOOST_AUTO_TEST_CASE(simple_buffer_unordered_multiset) { typedef unordered_multiset, test::equal_to, test::allocator > type; for (unsigned int k = 0; k < kLoop; k++) { @@ -898,15 +946,15 @@ TEST(MSGPACK_TR1, simple_buffer_unordered_multiset) v1.push_back(*it); for (it = val2.begin(); it != val2.end(); ++it) v2.push_back(*it); - EXPECT_EQ(val1.size(), val2.size()); - EXPECT_EQ(v1.size(), v2.size()); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); + BOOST_CHECK_EQUAL(v1.size(), v2.size()); sort(v1.begin(), v1.end()); sort(v2.begin(), v2.end()); - EXPECT_TRUE(v1 == v2); + BOOST_CHECK(v1 == v2); } } -TEST(MSGPACK_TR1, simple_buffer_unordered_multiset_empty) +BOOST_AUTO_TEST_CASE(simple_buffer_unordered_multiset_empty) { typedef unordered_multiset, test::equal_to, test::allocator > type; type val1; @@ -915,7 +963,7 @@ TEST(MSGPACK_TR1, simple_buffer_unordered_multiset_empty) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); type val2 = oh.get().as(); - EXPECT_EQ(val1.size(), val2.size()); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); } #endif diff --git a/test/msgpack_cpp11.cpp b/test/msgpack_cpp11.cpp index f3569293..318da598 100644 --- a/test/msgpack_cpp11.cpp +++ b/test/msgpack_cpp11.cpp @@ -1,15 +1,7 @@ #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) - -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE MSGPACK_CPP11 +#include #ifdef HAVE_CONFIG_H #include "config.h" @@ -46,7 +38,7 @@ const unsigned int kElements = 100; // C++11 -TEST(MSGPACK_CPP11, simple_tuple) +BOOST_AUTO_TEST_CASE(simple_tuple) { msgpack::sbuffer sbuf; std::tuple val1(true, "kzk", 12.3); @@ -54,10 +46,10 @@ TEST(MSGPACK_CPP11, simple_tuple) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::tuple val2 = oh.get().as >(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_CPP11, simple_tuple_empty) +BOOST_AUTO_TEST_CASE(simple_tuple_empty) { msgpack::sbuffer sbuf; std::tuple<> val1; @@ -65,10 +57,10 @@ TEST(MSGPACK_CPP11, simple_tuple_empty) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::tuple<> val2 = oh.get().as >(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_CPP11, simple_tuple_size_greater_than_as) +BOOST_AUTO_TEST_CASE(simple_tuple_size_greater_than_as) { msgpack::sbuffer sbuf; std::tuple val1(true, "kzk", 42); @@ -76,12 +68,12 @@ TEST(MSGPACK_CPP11, simple_tuple_size_greater_than_as) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::tuple val2 = oh.get().as >(); - EXPECT_EQ(std::get<0>(val1), std::get<0>(val2)); - EXPECT_EQ(std::get<1>(val1), std::get<1>(val2)); - EXPECT_EQ(std::get<2>(val1), std::get<2>(val2)); + BOOST_CHECK_EQUAL(std::get<0>(val1), std::get<0>(val2)); + BOOST_CHECK_EQUAL(std::get<1>(val1), std::get<1>(val2)); + BOOST_CHECK_EQUAL(std::get<2>(val1), std::get<2>(val2)); } -TEST(MSGPACK_CPP11, simple_tuple_size_greater_than_convert) +BOOST_AUTO_TEST_CASE(simple_tuple_size_greater_than_convert) { msgpack::sbuffer sbuf; std::tuple val1(true, "kzk", 42); @@ -90,12 +82,12 @@ TEST(MSGPACK_CPP11, simple_tuple_size_greater_than_convert) msgpack::unpack(sbuf.data(), sbuf.size()); std::tuple val2; oh.get().convert(val2); - EXPECT_EQ(std::get<0>(val1), std::get<0>(val2)); - EXPECT_EQ(std::get<1>(val1), std::get<1>(val2)); - EXPECT_EQ(std::get<2>(val1), std::get<2>(val2)); + BOOST_CHECK_EQUAL(std::get<0>(val1), std::get<0>(val2)); + BOOST_CHECK_EQUAL(std::get<1>(val1), std::get<1>(val2)); + BOOST_CHECK_EQUAL(std::get<2>(val1), std::get<2>(val2)); } -TEST(MSGPACK_CPP11, simple_tuple_size_less_than_as) +BOOST_AUTO_TEST_CASE(simple_tuple_size_less_than_as) { msgpack::sbuffer sbuf; std::tuple val1(true, "kzk", 42); @@ -103,11 +95,11 @@ TEST(MSGPACK_CPP11, simple_tuple_size_less_than_as) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::tuple val2 = oh.get().as >(); - EXPECT_EQ(std::get<0>(val1), std::get<0>(val2)); - EXPECT_EQ(std::get<1>(val1), std::get<1>(val2)); + BOOST_CHECK_EQUAL(std::get<0>(val1), std::get<0>(val2)); + BOOST_CHECK_EQUAL(std::get<1>(val1), std::get<1>(val2)); } -TEST(MSGPACK_CPP11, simple_tuple_size_less_than_convert) +BOOST_AUTO_TEST_CASE(simple_tuple_size_less_than_convert) { msgpack::sbuffer sbuf; std::tuple val1(true, "kzk", 42); @@ -116,11 +108,11 @@ TEST(MSGPACK_CPP11, simple_tuple_size_less_than_convert) msgpack::unpack(sbuf.data(), sbuf.size()); std::tuple val2; oh.get().convert(val2); - EXPECT_EQ(std::get<0>(val1), std::get<0>(val2)); - EXPECT_EQ(std::get<1>(val1), std::get<1>(val2)); + BOOST_CHECK_EQUAL(std::get<0>(val1), std::get<0>(val2)); + BOOST_CHECK_EQUAL(std::get<1>(val1), std::get<1>(val2)); } -TEST(MSGPACK_CPP11, simple_array) +BOOST_AUTO_TEST_CASE(simple_array) { for (unsigned int k = 0; k < kLoop; k++) { array val1; @@ -130,59 +122,59 @@ TEST(MSGPACK_CPP11, simple_array) msgpack::pack(sbuf, val1); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(oh.get().type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::ARRAY); array val2 = oh.get().as >(); - EXPECT_EQ(val1.size(), val2.size()); - EXPECT_TRUE(equal(val1.begin(), val1.end(), val2.begin())); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); + BOOST_CHECK(equal(val1.begin(), val1.end(), val2.begin())); } } -TEST(MSGPACK_CPP11, simple_array_empty) +BOOST_AUTO_TEST_CASE(simple_array_empty) { array val1; msgpack::sbuffer sbuf; msgpack::pack(sbuf, val1); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(oh.get().type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::ARRAY); array val2 = oh.get().as >(); - EXPECT_EQ(val1.size(), val2.size()); - EXPECT_TRUE(equal(val1.begin(), val1.end(), val2.begin())); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); + BOOST_CHECK(equal(val1.begin(), val1.end(), val2.begin())); } -TEST(MSGPACK_CPP11, simple_array_size_less_than) +BOOST_AUTO_TEST_CASE(simple_array_size_less_than) { array val1 { {1 , 2} }; msgpack::sbuffer sbuf; msgpack::pack(sbuf, val1); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(oh.get().type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::ARRAY); array val2; try { oh.get().convert(val2); - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch (msgpack::type_error const&) { - EXPECT_TRUE(true); + BOOST_CHECK(true); } } -TEST(MSGPACK_CPP11, simple_array_size_greater_than) +BOOST_AUTO_TEST_CASE(simple_array_size_greater_than) { array val1 { {1 , 2} }; msgpack::sbuffer sbuf; msgpack::pack(sbuf, val1); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(oh.get().type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::ARRAY); array val2; oh.get().convert(val2); - EXPECT_EQ(val1[0], val2[0]); - EXPECT_EQ(val1[1], val2[1]); + BOOST_CHECK_EQUAL(val1[0], val2[0]); + BOOST_CHECK_EQUAL(val1[1], val2[1]); } -TEST(MSGPACK_CPP11, simple_buffer_array_char) +BOOST_AUTO_TEST_CASE(simple_buffer_array_char) { for (unsigned int k = 0; k < kLoop; k++) { array val1; @@ -192,27 +184,27 @@ TEST(MSGPACK_CPP11, simple_buffer_array_char) msgpack::pack(sbuf, val1); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(oh.get().type, msgpack::type::BIN); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::BIN); array val2 = oh.get().as >(); - EXPECT_EQ(val1.size(), val2.size()); - EXPECT_TRUE(equal(val1.begin(), val1.end(), val2.begin())); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); + BOOST_CHECK(equal(val1.begin(), val1.end(), val2.begin())); } } -TEST(MSGPACK_CPP11, simple_buffer_array_char_empty) +BOOST_AUTO_TEST_CASE(simple_buffer_array_char_empty) { array val1; msgpack::sbuffer sbuf; msgpack::pack(sbuf, val1); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(oh.get().type, msgpack::type::BIN); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::BIN); array val2 = oh.get().as >(); - EXPECT_EQ(val1.size(), val2.size()); - EXPECT_TRUE(equal(val1.begin(), val1.end(), val2.begin())); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); + BOOST_CHECK(equal(val1.begin(), val1.end(), val2.begin())); } -TEST(MSGPACK_CPP11, simple_buffer_array_unsigned_char) +BOOST_AUTO_TEST_CASE(simple_buffer_array_unsigned_char) { if (!msgpack::is_same::value) return; for (unsigned int k = 0; k < kLoop; k++) { @@ -223,14 +215,14 @@ TEST(MSGPACK_CPP11, simple_buffer_array_unsigned_char) msgpack::pack(sbuf, val1); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(oh.get().type, msgpack::type::BIN); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::BIN); array val2 = oh.get().as >(); - EXPECT_EQ(val1.size(), val2.size()); - EXPECT_TRUE(equal(val1.begin(), val1.end(), val2.begin())); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); + BOOST_CHECK(equal(val1.begin(), val1.end(), val2.begin())); } } -TEST(MSGPACK_CPP11, simple_buffer_array_unsigned_char_empty) +BOOST_AUTO_TEST_CASE(simple_buffer_array_unsigned_char_empty) { if (!msgpack::is_same::value) return; array val1; @@ -238,10 +230,10 @@ TEST(MSGPACK_CPP11, simple_buffer_array_unsigned_char_empty) msgpack::pack(sbuf, val1); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(oh.get().type, msgpack::type::BIN); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::BIN); array val2 = oh.get().as >(); - EXPECT_EQ(val1.size(), val2.size()); - EXPECT_TRUE(equal(val1.begin(), val1.end(), val2.begin())); + BOOST_CHECK_EQUAL(val1.size(), val2.size()); + BOOST_CHECK(equal(val1.begin(), val1.end(), val2.begin())); } // strong typedefs @@ -262,11 +254,19 @@ struct set_allocator : std::allocator { using std::allocator::allocator; }; -template -struct map_allocator : std::allocator> { - using std::allocator>::allocator; +// C++ named requirement Allocator implies that the first template type +// parameter matches the value type of the allocator. There might be additional +// parameters, but the first one must match the type. +// That's why this helper with exactly one template parameter representing +// a whole key-value pair is required +template +struct map_allocator_impl : std::allocator { + using std::allocator::allocator; }; +template +using map_allocator = map_allocator_impl>; + template struct allocator : std::allocator { using std::allocator::allocator; @@ -274,8 +274,7 @@ struct allocator : std::allocator { } // namespace test - -TEST(MSGPACK_STL, simple_buffer_forward_list) +BOOST_AUTO_TEST_CASE(simple_buffer_forward_list) { using type = forward_list>; for (unsigned int k = 0; k < kLoop; k++) { @@ -287,11 +286,11 @@ TEST(MSGPACK_STL, simple_buffer_forward_list) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); type val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } } -TEST(MSGPACK_STL, simple_buffer_forward_list_empty) +BOOST_AUTO_TEST_CASE(simple_buffer_forward_list_empty) { using type = forward_list>; type val1; @@ -300,10 +299,10 @@ TEST(MSGPACK_STL, simple_buffer_forward_list_empty) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); type val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_STL, simple_buffer_unordered_map) +BOOST_AUTO_TEST_CASE(simple_buffer_unordered_map) { using type = unordered_map, test::equal_to, test::map_allocator>; for (unsigned int k = 0; k < kLoop; k++) { @@ -315,11 +314,11 @@ TEST(MSGPACK_STL, simple_buffer_unordered_map) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); type val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } } -TEST(MSGPACK_STL, simple_buffer_unordered_map_empty) +BOOST_AUTO_TEST_CASE(simple_buffer_unordered_map_empty) { using type = unordered_map, test::equal_to, test::map_allocator>; type val1; @@ -328,10 +327,10 @@ TEST(MSGPACK_STL, simple_buffer_unordered_map_empty) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); type val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_STL, simple_buffer_unordered_multimap) +BOOST_AUTO_TEST_CASE(simple_buffer_unordered_multimap) { using type = unordered_multimap, test::equal_to, test::map_allocator>; for (unsigned int k = 0; k < kLoop; k++) { @@ -347,11 +346,11 @@ TEST(MSGPACK_STL, simple_buffer_unordered_multimap) msgpack::unpack(sbuf.data(), sbuf.size()); type val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } } -TEST(MSGPACK_STL, simple_buffer_unordered_multimap_empty) +BOOST_AUTO_TEST_CASE(simple_buffer_unordered_multimap_empty) { using type = unordered_multimap, test::equal_to, test::map_allocator>; type val1; @@ -361,10 +360,10 @@ TEST(MSGPACK_STL, simple_buffer_unordered_multimap_empty) msgpack::unpack(sbuf.data(), sbuf.size()); type val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_STL, simple_buffer_unordered_set) +BOOST_AUTO_TEST_CASE(simple_buffer_unordered_set) { using type = unordered_set, test::equal_to, test::set_allocator>; for (unsigned int k = 0; k < kLoop; k++) { @@ -376,11 +375,11 @@ TEST(MSGPACK_STL, simple_buffer_unordered_set) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); type val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } } -TEST(MSGPACK_STL, simple_buffer_unordered_set_empty) +BOOST_AUTO_TEST_CASE(simple_buffer_unordered_set_empty) { using type = unordered_set, test::equal_to, test::set_allocator>; type val1; @@ -389,10 +388,10 @@ TEST(MSGPACK_STL, simple_buffer_unordered_set_empty) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); type val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_STL, simple_buffer_unordered_multiset) +BOOST_AUTO_TEST_CASE(simple_buffer_unordered_multiset) { using type = unordered_multiset, test::equal_to, test::set_allocator>; for (unsigned int k = 0; k < kLoop; k++) { @@ -404,11 +403,11 @@ TEST(MSGPACK_STL, simple_buffer_unordered_multiset) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); type val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } } -TEST(MSGPACK_STL, simple_buffer_unordered_multiset_empty) +BOOST_AUTO_TEST_CASE(simple_buffer_unordered_multiset_empty) { using type = unordered_multiset, test::equal_to, test::set_allocator>; type val1; @@ -417,10 +416,10 @@ TEST(MSGPACK_STL, simple_buffer_unordered_multiset_empty) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); type val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_USER_DEFINED, simple_buffer_enum_class_member) +BOOST_AUTO_TEST_CASE(simple_buffer_enum_class_member) { TestEnumClassMemberClass val1; msgpack::sbuffer sbuf; @@ -428,9 +427,9 @@ TEST(MSGPACK_USER_DEFINED, simple_buffer_enum_class_member) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); TestEnumClassMemberClass val2 = oh.get().as(); - EXPECT_EQ(val1.t1, val2.t1); - EXPECT_EQ(val1.t2, val2.t2); - EXPECT_EQ(val1.t3, val2.t3); + BOOST_CHECK(val1.t1 == val2.t1); + BOOST_CHECK(val1.t2 == val2.t2); + BOOST_CHECK(val1.t3 == val2.t3); } struct no_def_con { @@ -475,7 +474,7 @@ template <> struct hash { }; } // std -TEST(MSGPACK_NO_DEF_CON, simple_buffer) +BOOST_AUTO_TEST_CASE(no_def_con_simple_buffer) { no_def_con val1(42); msgpack::sbuffer sbuf; @@ -484,7 +483,7 @@ TEST(MSGPACK_NO_DEF_CON, simple_buffer) msgpack::unpack(sbuf.data(), sbuf.size()); no_def_con val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } struct no_def_con_composite { @@ -522,7 +521,7 @@ MSGPACK_API_VERSION_NAMESPACE(MSGPACK_DEFAULT_API_NS) { } // MSGPACK_API_VERSION_NAMESPACE(MSGPACK_DEFAULT_API_NS) } // msgpack -TEST(MSGPACK_NO_DEF_CON_COMPOSITE, simple_buffer) +BOOST_AUTO_TEST_CASE(no_def_con_composite_simple_buffer) { no_def_con_composite val1(42); msgpack::sbuffer sbuf; @@ -530,7 +529,7 @@ TEST(MSGPACK_NO_DEF_CON_COMPOSITE, simple_buffer) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); no_def_con_composite val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } struct no_def_con_inherit : no_def_con { @@ -554,7 +553,7 @@ MSGPACK_API_VERSION_NAMESPACE(MSGPACK_DEFAULT_API_NS) { } // MSGPACK_API_VERSION_NAMESPACE(MSGPACK_DEFAULT_API_NS) } // msgpack -TEST(MSGPACK_NO_DEF_CON_INHERIT, simple_buffer) +BOOST_AUTO_TEST_CASE(no_def_con_inherit_simple_buffer) { no_def_con_inherit val1(42); msgpack::sbuffer sbuf; @@ -562,10 +561,10 @@ TEST(MSGPACK_NO_DEF_CON_INHERIT, simple_buffer) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); no_def_con_inherit val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_NO_DEF_CON_VECTOR, simple_buffer) +BOOST_AUTO_TEST_CASE(no_def_con_vector_simple_buffer) { std::vector val1 { 1, 2, 3 }; msgpack::sbuffer sbuf; @@ -573,10 +572,10 @@ TEST(MSGPACK_NO_DEF_CON_VECTOR, simple_buffer) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::vector val2 = oh.get().as>(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_NO_DEF_CON_LIST, simple_buffer) +BOOST_AUTO_TEST_CASE(no_def_con_list_simple_buffer) { std::list val1 { 1, 2, 3 }; msgpack::sbuffer sbuf; @@ -584,10 +583,10 @@ TEST(MSGPACK_NO_DEF_CON_LIST, simple_buffer) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::list val2 = oh.get().as>(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_NO_DEF_CON_SET, simple_buffer) +BOOST_AUTO_TEST_CASE(no_def_con_set_simple_buffer) { std::set val1 { 1, 2, 3 }; msgpack::sbuffer sbuf; @@ -595,10 +594,10 @@ TEST(MSGPACK_NO_DEF_CON_SET, simple_buffer) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::set val2 = oh.get().as>(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_NO_DEF_CON_MULTISET, simple_buffer) +BOOST_AUTO_TEST_CASE(no_def_con_multiset_simple_buffer) { std::multiset val1 { 1, 2, 3 }; msgpack::sbuffer sbuf; @@ -606,10 +605,10 @@ TEST(MSGPACK_NO_DEF_CON_MULTISET, simple_buffer) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::multiset val2 = oh.get().as>(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_NO_DEF_CON_ASSOC_VECTOR, simple_buffer) +BOOST_AUTO_TEST_CASE(no_def_con_assoc_vector_simple_buffer) { msgpack::type::assoc_vector val1 { {1, 2}, {3, 4}, {5, 6}}; msgpack::sbuffer sbuf; @@ -618,10 +617,10 @@ TEST(MSGPACK_NO_DEF_CON_ASSOC_VECTOR, simple_buffer) msgpack::unpack(sbuf.data(), sbuf.size()); msgpack::type::assoc_vector val2 = oh.get().as>(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_NO_DEF_CON_DEF_CON_ASSOC_VECTOR, simple_buffer) +BOOST_AUTO_TEST_CASE(no_def_con_def_con_assoc_vector_simple_buffer) { msgpack::type::assoc_vector val1 { {1, 2}, {3, 4}, {5, 6}}; msgpack::sbuffer sbuf; @@ -630,10 +629,10 @@ TEST(MSGPACK_NO_DEF_CON_DEF_CON_ASSOC_VECTOR, simple_buffer) msgpack::unpack(sbuf.data(), sbuf.size()); msgpack::type::assoc_vector val2 = oh.get().as>(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_NO_DEF_CON_MAP, simple_buffer) +BOOST_AUTO_TEST_CASE(no_def_con_map_simple_buffer) { std::map val1 { {1, 2}, {3, 4}, {5, 6}}; msgpack::sbuffer sbuf; @@ -642,10 +641,10 @@ TEST(MSGPACK_NO_DEF_CON_MAP, simple_buffer) msgpack::unpack(sbuf.data(), sbuf.size()); std::map val2 = oh.get().as>(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_NO_DEF_CON_DEF_CON_MAP, simple_buffer) +BOOST_AUTO_TEST_CASE(no_def_con_def_con_map_simple_buffer) { std::map val1 { {1, 2}, {3, 4}, {5, 6}}; msgpack::sbuffer sbuf; @@ -654,10 +653,10 @@ TEST(MSGPACK_NO_DEF_CON_DEF_CON_MAP, simple_buffer) msgpack::unpack(sbuf.data(), sbuf.size()); std::map val2 = oh.get().as>(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_NO_DEF_CON_MULTIMAP, simple_buffer) +BOOST_AUTO_TEST_CASE(no_def_con_multimap_simple_buffer) { std::multimap val1 { {1, 2}, {3, 4}, {5, 6}}; msgpack::sbuffer sbuf; @@ -666,10 +665,10 @@ TEST(MSGPACK_NO_DEF_CON_MULTIMAP, simple_buffer) msgpack::unpack(sbuf.data(), sbuf.size()); std::multimap val2 = oh.get().as>(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_NO_DEF_CON_DEF_CON_MULTIMAP, simple_buffer) +BOOST_AUTO_TEST_CASE(no_def_con_def_con_multimap_simple_buffer) { std::multimap val1 { {1, 2}, {3, 4}, {5, 6}}; msgpack::sbuffer sbuf; @@ -678,10 +677,10 @@ TEST(MSGPACK_NO_DEF_CON_DEF_CON_MULTIMAP, simple_buffer) msgpack::unpack(sbuf.data(), sbuf.size()); std::multimap val2 = oh.get().as>(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_NO_DEF_CON_DEQUE, simple_buffer) +BOOST_AUTO_TEST_CASE(no_def_con_deque_simple_buffer) { std::deque val1 { 1, 2, 3 }; msgpack::sbuffer sbuf; @@ -689,10 +688,10 @@ TEST(MSGPACK_NO_DEF_CON_DEQUE, simple_buffer) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::deque val2 = oh.get().as>(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_NO_DEF_CON_PAIR, simple_buffer) +BOOST_AUTO_TEST_CASE(no_def_con_pair_simple_buffer) { std::pair val1 {1, 2}; msgpack::sbuffer sbuf; @@ -701,10 +700,10 @@ TEST(MSGPACK_NO_DEF_CON_PAIR, simple_buffer) msgpack::unpack(sbuf.data(), sbuf.size()); std::pair val2 = oh.get().as>(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_NO_DEF_CON_DEF_CON_PAIR, simple_buffer) +BOOST_AUTO_TEST_CASE(no_def_con_def_con_pair_simple_buffer) { std::pair val1 {1, 2}; msgpack::sbuffer sbuf; @@ -713,17 +712,14 @@ TEST(MSGPACK_NO_DEF_CON_DEF_CON_PAIR, simple_buffer) msgpack::unpack(sbuf.data(), sbuf.size()); std::pair val2 = oh.get().as>(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } - - // MSVC2015's std::tuple requires default constructor during 'as' process. -// It doesn't support Expression SFINAE yet, then 'as' is fallbacked to 'convert'. -// After MSVC would support Expression SFINAE, remove this guard. -#if !defined(_MSC_VER) +// It doesn't support Expression SFINAE, then 'as' is fallbacked to 'convert'. +#if !defined(_MSC_VER) || (_MSC_VER > 1900) -TEST(MSGPACK_NO_DEF_CON_TUPLE, simple_buffer) +BOOST_AUTO_TEST_CASE(no_def_con_tuple_simple_buffer) { std::tuple val1 {1, 2, 3}; msgpack::sbuffer sbuf; @@ -732,10 +728,10 @@ TEST(MSGPACK_NO_DEF_CON_TUPLE, simple_buffer) msgpack::unpack(sbuf.data(), sbuf.size()); std::tuple val2 = oh.get().as>(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_NO_DEF_CON_DEF_CON_TUPLE, simple_buffer) +BOOST_AUTO_TEST_CASE(no_def_con_def_con_tuple_simple_buffer) { std::tuple val1 {1, 2, 3}; msgpack::sbuffer sbuf; @@ -744,10 +740,10 @@ TEST(MSGPACK_NO_DEF_CON_DEF_CON_TUPLE, simple_buffer) msgpack::unpack(sbuf.data(), sbuf.size()); std::tuple val2 = oh.get().as>(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_NO_DEF_CON_MSGPACK_TUPLE, simple_buffer) +BOOST_AUTO_TEST_CASE(no_def_con_msgpack_tuple_simple_buffer) { msgpack::type::tuple val1 {1, 2, 3}; msgpack::sbuffer sbuf; @@ -756,10 +752,10 @@ TEST(MSGPACK_NO_DEF_CON_MSGPACK_TUPLE, simple_buffer) msgpack::unpack(sbuf.data(), sbuf.size()); msgpack::type::tuple val2 = oh.get().as>(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_NO_DEF_CON_DEF_CON_MSGPACK_TUPLE, simple_buffer) +BOOST_AUTO_TEST_CASE(no_def_con_def_con_msgpack_tuple_simple_buffer) { msgpack::type::tuple val1 {1, 2, 3}; msgpack::sbuffer sbuf; @@ -768,12 +764,12 @@ TEST(MSGPACK_NO_DEF_CON_DEF_CON_MSGPACK_TUPLE, simple_buffer) msgpack::unpack(sbuf.data(), sbuf.size()); msgpack::type::tuple val2 = oh.get().as>(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -#endif // !define(_MSC_VER) +#endif // !defined(_MSC_VER) || (_MSC_VER > 1900) -TEST(MSGPACK_NO_DEF_FORWARD_LIST, simple_buffer) +BOOST_AUTO_TEST_CASE(no_def_forward_list_simple_buffer) { std::forward_list val1 { 1, 2, 3 }; msgpack::sbuffer sbuf; @@ -781,10 +777,10 @@ TEST(MSGPACK_NO_DEF_FORWARD_LIST, simple_buffer) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::forward_list val2 = oh.get().as>(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_NO_DEF_CON_UNORDERED_SET, simple_buffer) +BOOST_AUTO_TEST_CASE(no_def_con_unordered_set_simple_buffer) { std::unordered_set val1 { 1, 2, 3 }; msgpack::sbuffer sbuf; @@ -792,10 +788,10 @@ TEST(MSGPACK_NO_DEF_CON_UNORDERED_SET, simple_buffer) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::unordered_set val2 = oh.get().as>(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_NO_DEF_CON_UNORDERED_MULTISET, simple_buffer) +BOOST_AUTO_TEST_CASE(no_def_con_unordered_multiset_simple_buffer) { std::unordered_multiset val1 { 1, 2, 3 }; msgpack::sbuffer sbuf; @@ -803,10 +799,10 @@ TEST(MSGPACK_NO_DEF_CON_UNORDERED_MULTISET, simple_buffer) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::unordered_multiset val2 = oh.get().as>(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_NO_DEF_CON_UNORDERED_MAP, simple_buffer) +BOOST_AUTO_TEST_CASE(no_def_con_unordered_map_simple_buffer) { std::unordered_map val1 { {1, 2}, {3, 4}, {5, 6}}; msgpack::sbuffer sbuf; @@ -815,10 +811,10 @@ TEST(MSGPACK_NO_DEF_CON_UNORDERED_MAP, simple_buffer) msgpack::unpack(sbuf.data(), sbuf.size()); std::unordered_map val2 = oh.get().as>(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_NO_DEF_CON_DEF_CON_UNORDERED_MAP, simple_buffer) +BOOST_AUTO_TEST_CASE(no_def_con_def_con_unordered_map_simple_buffer) { std::unordered_map val1 { {1, 2}, {3, 4}, {5, 6}}; msgpack::sbuffer sbuf; @@ -827,10 +823,10 @@ TEST(MSGPACK_NO_DEF_CON_DEF_CON_UNORDERED_MAP, simple_buffer) msgpack::unpack(sbuf.data(), sbuf.size()); std::unordered_map val2 = oh.get().as>(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_NO_DEF_CON_UNORDERED_MULTIMAP, simple_buffer) +BOOST_AUTO_TEST_CASE(no_def_con_unordered_multimap_simple_buffer) { std::unordered_multimap val1 { {1, 2}, {3, 4}, {5, 6}}; msgpack::sbuffer sbuf; @@ -839,10 +835,10 @@ TEST(MSGPACK_NO_DEF_CON_UNORDERED_MULTIMAP, simple_buffer) msgpack::unpack(sbuf.data(), sbuf.size()); std::unordered_multimap val2 = oh.get().as>(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_NO_DEF_CON_DEF_CON_UNORDERED_MULTIMAP, simple_buffer) +BOOST_AUTO_TEST_CASE(no_def_con_def_con_unordered_multimap_simple_buffer) { std::unordered_multimap val1 { {1, 2}, {3, 4}, {5, 6}}; msgpack::sbuffer sbuf; @@ -851,10 +847,10 @@ TEST(MSGPACK_NO_DEF_CON_DEF_CON_UNORDERED_MULTIMAP, simple_buffer) msgpack::unpack(sbuf.data(), sbuf.size()); std::unordered_multimap val2 = oh.get().as>(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_NO_DEF_CON_ARRAY, simple_buffer) +BOOST_AUTO_TEST_CASE(no_def_con_array_simple_buffer) { std::array val1 { { 1, 2, 3 } }; msgpack::sbuffer sbuf; @@ -862,10 +858,10 @@ TEST(MSGPACK_NO_DEF_CON_ARRAY, simple_buffer) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::array val2 = oh.get().as>(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_CHRONO, system_clock) +BOOST_AUTO_TEST_CASE(system_clock) { std::chrono::system_clock::time_point val1; msgpack::sbuffer sbuf; @@ -874,14 +870,14 @@ TEST(MSGPACK_CHRONO, system_clock) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::chrono::system_clock::time_point val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); std::chrono::system_clock::time_point val3; oh.get().convert(val3); - EXPECT_EQ(val1, val3); + BOOST_CHECK(val1 == val3); } -TEST(MSGPACK_CHRONO, system_clock_32) +BOOST_AUTO_TEST_CASE(system_clock_32) { std::chrono::system_clock::time_point val1(std::chrono::seconds(0x12345678L)); msgpack::sbuffer sbuf; @@ -894,19 +890,19 @@ TEST(MSGPACK_CHRONO, system_clock_32) static_cast(0x56), static_cast(0x78) }; - EXPECT_EQ(memcmp(sbuf.data(), packed, sizeof(packed)), 0); + BOOST_CHECK_EQUAL(memcmp(sbuf.data(), packed, sizeof(packed)), 0); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::chrono::system_clock::time_point val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); std::chrono::system_clock::time_point val3; oh.get().convert(val3); - EXPECT_EQ(val1, val3); + BOOST_CHECK(val1 == val3); } -TEST(MSGPACK_CHRONO, system_clock_32_max) +BOOST_AUTO_TEST_CASE(system_clock_32_max) { std::chrono::system_clock::time_point val1(std::chrono::seconds(0xffffffffL)); msgpack::sbuffer sbuf; @@ -919,20 +915,20 @@ TEST(MSGPACK_CHRONO, system_clock_32_max) static_cast(0xffu), static_cast(0xffu) }; - EXPECT_EQ(memcmp(sbuf.data(), packed, sizeof(packed)), 0); + BOOST_CHECK_EQUAL(memcmp(sbuf.data(), packed, sizeof(packed)), 0); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::chrono::system_clock::time_point val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); std::chrono::system_clock::time_point val3; oh.get().convert(val3); - EXPECT_EQ(val1, val3); + BOOST_CHECK(val1 == val3); } -TEST(MSGPACK_CHRONO, system_clock_64) +BOOST_AUTO_TEST_CASE(system_clock_64) { std::chrono::system_clock::time_point val1(std::chrono::seconds(0x31234567L)); val1 += @@ -945,14 +941,14 @@ TEST(MSGPACK_CHRONO, system_clock_64) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::chrono::system_clock::time_point val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); std::chrono::system_clock::time_point val3; oh.get().convert(val3); - EXPECT_EQ(val1, val3); + BOOST_CHECK(val1 == val3); } -TEST(MSGPACK_CHRONO, system_clock_64_max) +BOOST_AUTO_TEST_CASE(system_clock_64_max) { std::chrono::system_clock::time_point val1(std::chrono::seconds(0xffffffffL)); @@ -987,23 +983,23 @@ TEST(MSGPACK_CHRONO, system_clock_64_max) static_cast(0xffu) }; if (std::chrono::system_clock::duration::period::ratio::den == 1000000000) { - EXPECT_EQ(memcmp(sbuf.data(), packed_nano, sizeof(packed_nano)), 0); + BOOST_CHECK_EQUAL(memcmp(sbuf.data(), packed_nano, sizeof(packed_nano)), 0); } else if (std::chrono::system_clock::duration::period::ratio::den == 1000000) { - EXPECT_EQ(memcmp(sbuf.data(), packed_micro, sizeof(packed_micro)), 0); + BOOST_CHECK_EQUAL(memcmp(sbuf.data(), packed_micro, sizeof(packed_micro)), 0); } msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::chrono::system_clock::time_point val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); std::chrono::system_clock::time_point val3; oh.get().convert(val3); - EXPECT_EQ(val1, val3); + BOOST_CHECK(val1 == val3); } -TEST(MSGPACK_CHRONO, system_clock_impl_min) +BOOST_AUTO_TEST_CASE(system_clock_impl_min) { std::chrono::system_clock::time_point val1(std::chrono::system_clock::time_point::min()); msgpack::sbuffer sbuf; @@ -1012,14 +1008,14 @@ TEST(MSGPACK_CHRONO, system_clock_impl_min) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::chrono::system_clock::time_point val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); std::chrono::system_clock::time_point val3; oh.get().convert(val3); - EXPECT_EQ(val1, val3); + BOOST_CHECK(val1 == val3); } -TEST(MSGPACK_CHRONO, system_clock_impl_max) +BOOST_AUTO_TEST_CASE(system_clock_impl_max) { std::chrono::system_clock::time_point val1(std::chrono::system_clock::time_point::max()); @@ -1029,14 +1025,14 @@ TEST(MSGPACK_CHRONO, system_clock_impl_max) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::chrono::system_clock::time_point val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); std::chrono::system_clock::time_point val3; oh.get().convert(val3); - EXPECT_EQ(val1, val3); + BOOST_CHECK(val1 == val3); } -TEST(MSGPACK_CHRONO, system_clock_impl_now) +BOOST_AUTO_TEST_CASE(system_clock_impl_now) { std::chrono::system_clock::time_point val1(std::chrono::system_clock::now()); @@ -1046,15 +1042,14 @@ TEST(MSGPACK_CHRONO, system_clock_impl_now) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::chrono::system_clock::time_point val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); std::chrono::system_clock::time_point val3; oh.get().convert(val3); - EXPECT_EQ(val1, val3); + BOOST_CHECK(val1 == val3); } - -TEST(MSGPACK_CHRONO, steady_clock) +BOOST_AUTO_TEST_CASE(steady_clock) { std::chrono::steady_clock::time_point val1; msgpack::sbuffer sbuf; @@ -1063,14 +1058,14 @@ TEST(MSGPACK_CHRONO, steady_clock) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::chrono::steady_clock::time_point val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); std::chrono::steady_clock::time_point val3; oh.get().convert(val3); - EXPECT_EQ(val1, val3); + BOOST_CHECK(val1 == val3); } -TEST(MSGPACK_CHRONO, steady_clock_32) +BOOST_AUTO_TEST_CASE(steady_clock_32) { std::chrono::steady_clock::time_point val1(std::chrono::seconds(0x12345678L)); msgpack::sbuffer sbuf; @@ -1083,19 +1078,19 @@ TEST(MSGPACK_CHRONO, steady_clock_32) static_cast(0x56), static_cast(0x78) }; - EXPECT_EQ(memcmp(sbuf.data(), packed, sizeof(packed)), 0); + BOOST_CHECK_EQUAL(memcmp(sbuf.data(), packed, sizeof(packed)), 0); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::chrono::steady_clock::time_point val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); std::chrono::steady_clock::time_point val3; oh.get().convert(val3); - EXPECT_EQ(val1, val3); + BOOST_CHECK(val1 == val3); } -TEST(MSGPACK_CHRONO, steady_clock_32_max) +BOOST_AUTO_TEST_CASE(steady_clock_32_max) { std::chrono::steady_clock::time_point val1(std::chrono::seconds(0xffffffffL)); msgpack::sbuffer sbuf; @@ -1108,20 +1103,20 @@ TEST(MSGPACK_CHRONO, steady_clock_32_max) static_cast(0xffu), static_cast(0xffu) }; - EXPECT_EQ(memcmp(sbuf.data(), packed, sizeof(packed)), 0); + BOOST_CHECK_EQUAL(memcmp(sbuf.data(), packed, sizeof(packed)), 0); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::chrono::steady_clock::time_point val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); std::chrono::steady_clock::time_point val3; oh.get().convert(val3); - EXPECT_EQ(val1, val3); + BOOST_CHECK(val1 == val3); } -TEST(MSGPACK_CHRONO, steady_clock_64) +BOOST_AUTO_TEST_CASE(steady_clock_64) { std::chrono::steady_clock::time_point val1(std::chrono::seconds(0x31234567L)); val1 += @@ -1134,14 +1129,14 @@ TEST(MSGPACK_CHRONO, steady_clock_64) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::chrono::steady_clock::time_point val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); std::chrono::steady_clock::time_point val3; oh.get().convert(val3); - EXPECT_EQ(val1, val3); + BOOST_CHECK(val1 == val3); } -TEST(MSGPACK_CHRONO, steady_clock_64_max) +BOOST_AUTO_TEST_CASE(steady_clock_64_max) { std::chrono::steady_clock::time_point val1(std::chrono::seconds(0xffffffffL)); @@ -1176,23 +1171,23 @@ TEST(MSGPACK_CHRONO, steady_clock_64_max) static_cast(0xffu) }; if (std::chrono::steady_clock::duration::period::ratio::den == 1000000000) { - EXPECT_EQ(memcmp(sbuf.data(), packed_nano, sizeof(packed_nano)), 0); + BOOST_CHECK_EQUAL(memcmp(sbuf.data(), packed_nano, sizeof(packed_nano)), 0); } else if (std::chrono::steady_clock::duration::period::ratio::den == 1000000) { - EXPECT_EQ(memcmp(sbuf.data(), packed_micro, sizeof(packed_micro)), 0); + BOOST_CHECK_EQUAL(memcmp(sbuf.data(), packed_micro, sizeof(packed_micro)), 0); } msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::chrono::steady_clock::time_point val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); std::chrono::steady_clock::time_point val3; oh.get().convert(val3); - EXPECT_EQ(val1, val3); + BOOST_CHECK(val1 == val3); } -TEST(MSGPACK_CHRONO, steady_clock_impl_min) +BOOST_AUTO_TEST_CASE(steady_clock_impl_min) { std::chrono::steady_clock::time_point val1(std::chrono::steady_clock::time_point::min()); msgpack::sbuffer sbuf; @@ -1201,14 +1196,14 @@ TEST(MSGPACK_CHRONO, steady_clock_impl_min) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::chrono::steady_clock::time_point val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); std::chrono::steady_clock::time_point val3; oh.get().convert(val3); - EXPECT_EQ(val1, val3); + BOOST_CHECK(val1 == val3); } -TEST(MSGPACK_CHRONO, steady_clock_impl_max) +BOOST_AUTO_TEST_CASE(steady_clock_impl_max) { std::chrono::steady_clock::time_point val1(std::chrono::steady_clock::time_point::max()); @@ -1218,14 +1213,14 @@ TEST(MSGPACK_CHRONO, steady_clock_impl_max) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::chrono::steady_clock::time_point val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); std::chrono::steady_clock::time_point val3; oh.get().convert(val3); - EXPECT_EQ(val1, val3); + BOOST_CHECK(val1 == val3); } -TEST(MSGPACK_CHRONO, steady_clock_impl_now) +BOOST_AUTO_TEST_CASE(steady_clock_impl_now) { std::chrono::steady_clock::time_point val1(std::chrono::steady_clock::now()); @@ -1235,15 +1230,15 @@ TEST(MSGPACK_CHRONO, steady_clock_impl_now) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::chrono::steady_clock::time_point val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); std::chrono::steady_clock::time_point val3; oh.get().convert(val3); - EXPECT_EQ(val1, val3); + BOOST_CHECK(val1 == val3); } -TEST(MSGPACK_CHRONO, high_resolution_clock) +BOOST_AUTO_TEST_CASE(high_resolution_clock) { std::chrono::high_resolution_clock::time_point val1; msgpack::sbuffer sbuf; @@ -1252,14 +1247,14 @@ TEST(MSGPACK_CHRONO, high_resolution_clock) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::chrono::high_resolution_clock::time_point val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); std::chrono::high_resolution_clock::time_point val3; oh.get().convert(val3); - EXPECT_EQ(val1, val3); + BOOST_CHECK(val1 == val3); } -TEST(MSGPACK_CHRONO, high_resolution_clock_32) +BOOST_AUTO_TEST_CASE(high_resolution_clock_32) { std::chrono::high_resolution_clock::time_point val1(std::chrono::seconds(0x12345678L)); msgpack::sbuffer sbuf; @@ -1272,19 +1267,19 @@ TEST(MSGPACK_CHRONO, high_resolution_clock_32) static_cast(0x56), static_cast(0x78) }; - EXPECT_EQ(memcmp(sbuf.data(), packed, sizeof(packed)), 0); + BOOST_CHECK_EQUAL(memcmp(sbuf.data(), packed, sizeof(packed)), 0); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::chrono::high_resolution_clock::time_point val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); std::chrono::high_resolution_clock::time_point val3; oh.get().convert(val3); - EXPECT_EQ(val1, val3); + BOOST_CHECK(val1 == val3); } -TEST(MSGPACK_CHRONO, high_resolution_clock_32_max) +BOOST_AUTO_TEST_CASE(high_resolution_clock_32_max) { std::chrono::high_resolution_clock::time_point val1(std::chrono::seconds(0xffffffffL)); msgpack::sbuffer sbuf; @@ -1297,20 +1292,20 @@ TEST(MSGPACK_CHRONO, high_resolution_clock_32_max) static_cast(0xffu), static_cast(0xffu) }; - EXPECT_EQ(memcmp(sbuf.data(), packed, sizeof(packed)), 0); + BOOST_CHECK_EQUAL(memcmp(sbuf.data(), packed, sizeof(packed)), 0); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::chrono::high_resolution_clock::time_point val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); std::chrono::high_resolution_clock::time_point val3; oh.get().convert(val3); - EXPECT_EQ(val1, val3); + BOOST_CHECK(val1 == val3); } -TEST(MSGPACK_CHRONO, high_resolution_clock_64) +BOOST_AUTO_TEST_CASE(high_resolution_clock_64) { std::chrono::high_resolution_clock::time_point val1(std::chrono::seconds(0x31234567L)); val1 += @@ -1323,14 +1318,14 @@ TEST(MSGPACK_CHRONO, high_resolution_clock_64) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::chrono::high_resolution_clock::time_point val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); std::chrono::high_resolution_clock::time_point val3; oh.get().convert(val3); - EXPECT_EQ(val1, val3); + BOOST_CHECK(val1 == val3); } -TEST(MSGPACK_CHRONO, high_resolution_clock_64_max) +BOOST_AUTO_TEST_CASE(high_resolution_clock_64_max) { std::chrono::high_resolution_clock::time_point val1(std::chrono::seconds(0xffffffffL)); @@ -1365,23 +1360,23 @@ TEST(MSGPACK_CHRONO, high_resolution_clock_64_max) static_cast(0xffu) }; if (std::chrono::high_resolution_clock::duration::period::ratio::den == 1000000000) { - EXPECT_EQ(memcmp(sbuf.data(), packed_nano, sizeof(packed_nano)), 0); + BOOST_CHECK_EQUAL(memcmp(sbuf.data(), packed_nano, sizeof(packed_nano)), 0); } else if (std::chrono::high_resolution_clock::duration::period::ratio::den == 1000000) { - EXPECT_EQ(memcmp(sbuf.data(), packed_micro, sizeof(packed_micro)), 0); + BOOST_CHECK_EQUAL(memcmp(sbuf.data(), packed_micro, sizeof(packed_micro)), 0); } msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::chrono::high_resolution_clock::time_point val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); std::chrono::high_resolution_clock::time_point val3; oh.get().convert(val3); - EXPECT_EQ(val1, val3); + BOOST_CHECK(val1 == val3); } -TEST(MSGPACK_CHRONO, high_resolution_clock_impl_min) +BOOST_AUTO_TEST_CASE(high_resolution_clock_impl_min) { std::chrono::high_resolution_clock::time_point val1(std::chrono::high_resolution_clock::time_point::min()); msgpack::sbuffer sbuf; @@ -1390,14 +1385,14 @@ TEST(MSGPACK_CHRONO, high_resolution_clock_impl_min) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::chrono::high_resolution_clock::time_point val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); std::chrono::high_resolution_clock::time_point val3; oh.get().convert(val3); - EXPECT_EQ(val1, val3); + BOOST_CHECK(val1 == val3); } -TEST(MSGPACK_CHRONO, high_resolution_clock_impl_max) +BOOST_AUTO_TEST_CASE(high_resolution_clock_impl_max) { std::chrono::high_resolution_clock::time_point val1(std::chrono::high_resolution_clock::time_point::max()); @@ -1407,14 +1402,14 @@ TEST(MSGPACK_CHRONO, high_resolution_clock_impl_max) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::chrono::high_resolution_clock::time_point val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); std::chrono::high_resolution_clock::time_point val3; oh.get().convert(val3); - EXPECT_EQ(val1, val3); + BOOST_CHECK(val1 == val3); } -TEST(MSGPACK_CHRONO, high_resolution_clock_impl_now) +BOOST_AUTO_TEST_CASE(high_resolution_clock_impl_now) { std::chrono::high_resolution_clock::time_point val1(std::chrono::high_resolution_clock::now()); @@ -1424,92 +1419,92 @@ TEST(MSGPACK_CHRONO, high_resolution_clock_impl_now) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); std::chrono::high_resolution_clock::time_point val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); std::chrono::high_resolution_clock::time_point val3; oh.get().convert(val3); - EXPECT_EQ(val1, val3); + BOOST_CHECK(val1 == val3); } -TEST(MSGPACK_TIMESPEC, timespec_pack_convert_zero) +BOOST_AUTO_TEST_CASE(timespec_pack_convert_zero) { std::stringstream ss; timespec val1{ 0, 0 }; msgpack::pack(ss, val1); std::string const& str = ss.str(); - EXPECT_EQ(str.data()[0], static_cast(0xd6u)); + BOOST_CHECK_EQUAL(str.data()[0], static_cast(0xd6u)); msgpack::object_handle oh; msgpack::unpack(oh, str.data(), str.size()); timespec val2 = oh.get().as(); - EXPECT_EQ(val1.tv_sec, val2.tv_sec); - EXPECT_EQ(val1.tv_nsec, val2.tv_nsec); + BOOST_CHECK_EQUAL(val1.tv_sec, val2.tv_sec); + BOOST_CHECK_EQUAL(val1.tv_nsec, val2.tv_nsec); } -TEST(MSGPACK_TIMESPEC, timespec_object_with_zone_zero) +BOOST_AUTO_TEST_CASE(timespec_object_with_zone_zero) { msgpack::zone z; timespec val1{ 0, 0 }; msgpack::object obj(val1, z); timespec val2 = obj.as(); - EXPECT_EQ(val1.tv_sec, val2.tv_sec); - EXPECT_EQ(val1.tv_nsec, val2.tv_nsec); + BOOST_CHECK_EQUAL(val1.tv_sec, val2.tv_sec); + BOOST_CHECK_EQUAL(val1.tv_nsec, val2.tv_nsec); } -TEST(MSGPACK_TIMESPEC, timespec_pack_convert_32bit_sec) +BOOST_AUTO_TEST_CASE(timespec_pack_convert_32bit_sec) { std::stringstream ss; timespec val1{ std::numeric_limits().tv_sec)>::is_signed ? time_t(INT32_MAX) : time_t(UINT32_MAX), 0 }; msgpack::pack(ss, val1); std::string const& str = ss.str(); - EXPECT_EQ(str.data()[0], static_cast(0xd6u)); + BOOST_CHECK_EQUAL(str.data()[0], static_cast(0xd6u)); msgpack::object_handle oh; msgpack::unpack(oh, str.data(), str.size()); timespec val2 = oh.get().as(); - EXPECT_EQ(val1.tv_sec, val2.tv_sec); - EXPECT_EQ(val1.tv_nsec, val2.tv_nsec); + BOOST_CHECK_EQUAL(val1.tv_sec, val2.tv_sec); + BOOST_CHECK_EQUAL(val1.tv_nsec, val2.tv_nsec); } -TEST(MSGPACK_TIMESPEC, timespec_object_with_zone_32bit_sec) +BOOST_AUTO_TEST_CASE(timespec_object_with_zone_32bit_sec) { msgpack::zone z; timespec val1{ std::numeric_limits().tv_sec)>::is_signed ? time_t(INT32_MAX) : time_t(UINT32_MAX), 0 }; msgpack::object obj(val1, z); timespec val2 = obj.as(); - EXPECT_EQ(val1.tv_sec, val2.tv_sec); - EXPECT_EQ(val1.tv_nsec, val2.tv_nsec); + BOOST_CHECK_EQUAL(val1.tv_sec, val2.tv_sec); + BOOST_CHECK_EQUAL(val1.tv_nsec, val2.tv_nsec); } -TEST(MSGPACK_TIMESPEC, timespec_pack_convert_max_nano) +BOOST_AUTO_TEST_CASE(timespec_pack_convert_max_nano) { std::stringstream ss; timespec val1{ 0, 999999999 }; msgpack::pack(ss, val1); std::string const& str = ss.str(); - EXPECT_EQ(str.data()[0], static_cast(0xd7u)); + BOOST_CHECK_EQUAL(str.data()[0], static_cast(0xd7u)); msgpack::object_handle oh; msgpack::unpack(oh, str.data(), str.size()); timespec val2 = oh.get().as(); - EXPECT_EQ(val1.tv_sec, val2.tv_sec); - EXPECT_EQ(val1.tv_nsec, val2.tv_nsec); + BOOST_CHECK_EQUAL(val1.tv_sec, val2.tv_sec); + BOOST_CHECK_EQUAL(val1.tv_nsec, val2.tv_nsec); } -TEST(MSGPACK_TIMESPEC, timespec_object_with_zone_max_nano) +BOOST_AUTO_TEST_CASE(timespec_object_with_zone_max_nano) { msgpack::zone z; timespec val1{ 0, 999999999 }; msgpack::object obj(val1, z); timespec val2 = obj.as(); - EXPECT_EQ(val1.tv_sec, val2.tv_sec); - EXPECT_EQ(val1.tv_nsec, val2.tv_nsec); + BOOST_CHECK_EQUAL(val1.tv_sec, val2.tv_sec); + BOOST_CHECK_EQUAL(val1.tv_nsec, val2.tv_nsec); } -TEST(MSGPACK_TIMESPEC, timespec_pack_convert_34bit_sec_max_nano) +BOOST_AUTO_TEST_CASE(timespec_pack_convert_34bit_sec_max_nano) { if (sizeof(decltype(std::declval().tv_sec)) <= 4) return; std::stringstream ss; @@ -1517,27 +1512,27 @@ TEST(MSGPACK_TIMESPEC, timespec_pack_convert_34bit_sec_max_nano) msgpack::pack(ss, val1); std::string const& str = ss.str(); - EXPECT_EQ(str.data()[0], static_cast(0xd7u)); + BOOST_CHECK_EQUAL(str.data()[0], static_cast(0xd7u)); msgpack::object_handle oh; msgpack::unpack(oh, str.data(), str.size()); timespec val2 = oh.get().as(); - EXPECT_EQ(val1.tv_sec, val2.tv_sec); - EXPECT_EQ(val1.tv_nsec, val2.tv_nsec); + BOOST_CHECK_EQUAL(val1.tv_sec, val2.tv_sec); + BOOST_CHECK_EQUAL(val1.tv_nsec, val2.tv_nsec); } -TEST(MSGPACK_TIMESPEC, timespec_object_with_zone_34bit_sec_max_nano) +BOOST_AUTO_TEST_CASE(timespec_object_with_zone_34bit_sec_max_nano) { if (sizeof(decltype(std::declval().tv_sec)) <= 4) return; msgpack::zone z; timespec val1{ static_cast().tv_sec)>(0x3ffffffffULL), 999999999 }; msgpack::object obj(val1, z); timespec val2 = obj.as(); - EXPECT_EQ(val1.tv_sec, val2.tv_sec); - EXPECT_EQ(val1.tv_nsec, val2.tv_nsec); + BOOST_CHECK_EQUAL(val1.tv_sec, val2.tv_sec); + BOOST_CHECK_EQUAL(val1.tv_nsec, val2.tv_nsec); } -TEST(MSGPACK_TIMESPEC, timespec_pack_convert_35bit_sec_max_nano) +BOOST_AUTO_TEST_CASE(timespec_pack_convert_35bit_sec_max_nano) { if (sizeof(decltype(std::declval().tv_sec)) <= 4) return; std::stringstream ss; @@ -1545,27 +1540,27 @@ TEST(MSGPACK_TIMESPEC, timespec_pack_convert_35bit_sec_max_nano) msgpack::pack(ss, val1); std::string const& str = ss.str(); - EXPECT_EQ(str.data()[0], static_cast(0xc7u)); + BOOST_CHECK_EQUAL(str.data()[0], static_cast(0xc7u)); msgpack::object_handle oh; msgpack::unpack(oh, str.data(), str.size()); timespec val2 = oh.get().as(); - EXPECT_EQ(val1.tv_sec, val2.tv_sec); - EXPECT_EQ(val1.tv_nsec, val2.tv_nsec); + BOOST_CHECK_EQUAL(val1.tv_sec, val2.tv_sec); + BOOST_CHECK_EQUAL(val1.tv_nsec, val2.tv_nsec); } -TEST(MSGPACK_TIMESPEC, timespec_object_with_zone_35bit_sec_max_nano) +BOOST_AUTO_TEST_CASE(timespec_object_with_zone_35bit_sec_max_nano) { if (sizeof(decltype(std::declval().tv_sec)) <= 4) return; msgpack::zone z; timespec val1{ static_cast().tv_sec)>(0x7ffffffffULL), 999999999 }; msgpack::object obj(val1, z); timespec val2 = obj.as(); - EXPECT_EQ(val1.tv_sec, val2.tv_sec); - EXPECT_EQ(val1.tv_nsec, val2.tv_nsec); + BOOST_CHECK_EQUAL(val1.tv_sec, val2.tv_sec); + BOOST_CHECK_EQUAL(val1.tv_nsec, val2.tv_nsec); } -TEST(MSGPACK_TIMESPEC, timespec_pack_convert_64bit_sec_max_nano) +BOOST_AUTO_TEST_CASE(timespec_pack_convert_64bit_sec_max_nano) { if (sizeof(decltype(std::declval().tv_sec)) <= 4) return; std::stringstream ss; @@ -1573,23 +1568,23 @@ TEST(MSGPACK_TIMESPEC, timespec_pack_convert_64bit_sec_max_nano) msgpack::pack(ss, val1); std::string const& str = ss.str(); - EXPECT_EQ(str.data()[0], static_cast(0xc7u)); + BOOST_CHECK_EQUAL(str.data()[0], static_cast(0xc7u)); msgpack::object_handle oh; msgpack::unpack(oh, str.data(), str.size()); timespec val2 = oh.get().as(); - EXPECT_EQ(val1.tv_sec, val2.tv_sec); - EXPECT_EQ(val1.tv_nsec, val2.tv_nsec); + BOOST_CHECK_EQUAL(val1.tv_sec, val2.tv_sec); + BOOST_CHECK_EQUAL(val1.tv_nsec, val2.tv_nsec); } -TEST(MSGPACK_TIMESPEC, timespec_object_with_zone_64bit_sec_max_nano) +BOOST_AUTO_TEST_CASE(timespec_object_with_zone_64bit_sec_max_nano) { msgpack::zone z; timespec val1{ std::numeric_limits().tv_sec)>::max(), 999999999 }; msgpack::object obj(val1, z); timespec val2 = obj.as(); - EXPECT_EQ(val1.tv_sec, val2.tv_sec); - EXPECT_EQ(val1.tv_nsec, val2.tv_nsec); + BOOST_CHECK_EQUAL(val1.tv_sec, val2.tv_sec); + BOOST_CHECK_EQUAL(val1.tv_nsec, val2.tv_nsec); } diff --git a/test/msgpack_cpp17.cpp b/test/msgpack_cpp17.cpp index b0c29e5e..c90a55ad 100644 --- a/test/msgpack_cpp17.cpp +++ b/test/msgpack_cpp17.cpp @@ -1,32 +1,24 @@ #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) - -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE MSGPACK_CPP17 +#include #ifdef HAVE_CONFIG_H #include "config.h" #endif -// To avoid link error -TEST(MSGPACK_CPP17, dummy) +// For C++ standards lower than C++17 +BOOST_AUTO_TEST_CASE(dummy) { } -#if !defined(MSGPACK_USE_CPP03) && __cplusplus >= 201703 +#if MSGPACK_CPP_VERSION >= 201703 // C++17 #if MSGPACK_HAS_INCLUDE() -TEST(MSGPACK_CPP17, optional_pack_convert_nil) +BOOST_AUTO_TEST_CASE(optional_pack_convert_nil) { std::stringstream ss; std::optional val1; @@ -35,10 +27,10 @@ TEST(MSGPACK_CPP17, optional_pack_convert_nil) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); std::optional val2 = oh.get().as >(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_CPP17, optional_pack_convert_int) +BOOST_AUTO_TEST_CASE(optional_pack_convert_int) { std::stringstream ss; std::optional val1 = 1; @@ -47,10 +39,10 @@ TEST(MSGPACK_CPP17, optional_pack_convert_int) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); std::optional val2 = oh.get().as >(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_CPP17, optional_pack_convert_vector) +BOOST_AUTO_TEST_CASE(optional_pack_convert_vector) { typedef std::optional > ovi_t; std::stringstream ss; @@ -65,10 +57,10 @@ TEST(MSGPACK_CPP17, optional_pack_convert_vector) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); ovi_t val2 = oh.get().as(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_CPP17, optional_pack_convert_vector_optional) +BOOST_AUTO_TEST_CASE(optional_pack_convert_vector_optional) { typedef std::vector > voi_t; std::stringstream ss; @@ -81,28 +73,28 @@ TEST(MSGPACK_CPP17, optional_pack_convert_vector_optional) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); voi_t val2 = oh.get().as(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_CPP17, optional_object_nil) +BOOST_AUTO_TEST_CASE(optional_object_nil) { std::optional val1; msgpack::object obj(val1); std::optional val2 = obj.as >(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_CPP17, optional_object_int) +BOOST_AUTO_TEST_CASE(optional_object_int) { std::optional val1 = 1; msgpack::object obj(val1); std::optional val2 = obj.as >(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } // Compile error as expected /* - TEST(MSGPACK_CPP17, optional_object_vector) + BOOST_AUTO_TEST_CASE(optional_object_vector) { typedef std::optional > ovi_t; ovi_t val1; @@ -113,29 +105,29 @@ TEST(MSGPACK_CPP17, optional_object_int) val1 = v; msgpack::object obj(val1); ovi_t val2 = obj.as(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } */ -TEST(MSGPACK_CPP17, optional_object_with_zone_nil) +BOOST_AUTO_TEST_CASE(optional_object_with_zone_nil) { msgpack::zone z; std::optional val1; msgpack::object obj(val1, z); std::optional val2 = obj.as >(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_CPP17, optional_object_with_zone_int) +BOOST_AUTO_TEST_CASE(optional_object_with_zone_int) { msgpack::zone z; std::optional val1 = 1; msgpack::object obj(val1, z); std::optional val2 = obj.as >(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_CPP17, optional_object_with_zone_vector_optional) +BOOST_AUTO_TEST_CASE(optional_object_with_zone_vector_optional) { typedef std::vector > voi_t; msgpack::zone z; @@ -145,7 +137,7 @@ TEST(MSGPACK_CPP17, optional_object_with_zone_vector_optional) val1[2] = 3; msgpack::object obj(val1, z); voi_t val2 = obj.as(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } struct no_def_con { @@ -180,7 +172,7 @@ struct as { } // MSGPACK_API_VERSION_NAMESPACE(MSGPACK_DEFAULT_API_NS) } // msgpack -TEST(MSGPACK_CPP17, optional_pack_convert_no_def_con) +BOOST_AUTO_TEST_CASE(optional_pack_convert_no_def_con) { std::stringstream ss; std::optional val1 = no_def_con(1); @@ -189,14 +181,14 @@ TEST(MSGPACK_CPP17, optional_pack_convert_no_def_con) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); std::optional val2 = oh.get().as>(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } #endif // MSGPACK_HAS_INCLUDE() #if MSGPACK_HAS_INCLUDE() -TEST(MSGPACK_CPP17, string_view_pack_convert) +BOOST_AUTO_TEST_CASE(string_view_pack_convert) { std::stringstream ss; std::string s = "ABC"; @@ -208,31 +200,31 @@ TEST(MSGPACK_CPP17, string_view_pack_convert) msgpack::object_handle oh; msgpack::unpack(oh, str.data(), str.size()); std::string_view val2 = oh.get().as(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_CPP17, string_view_object) +BOOST_AUTO_TEST_CASE(string_view_object) { std::string s = "ABC"; std::string_view val1(s); msgpack::object obj(val1); std::string_view val2 = obj.as(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_CPP17, string_view_object_with_zone) +BOOST_AUTO_TEST_CASE(string_view_object_with_zone) { msgpack::zone z; std::string s = "ABC"; std::string_view val1(s); msgpack::object obj(val1, z); std::string_view val2 = obj.as(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } #endif // MSGPACK_HAS_INCLUDE() -TEST(MSGPACK_CPP17, byte_pack_convert) +BOOST_AUTO_TEST_CASE(byte_pack_convert) { std::stringstream ss; std::byte val1{0xff}; @@ -243,27 +235,27 @@ TEST(MSGPACK_CPP17, byte_pack_convert) std::string const& str = ss.str(); msgpack::unpack(oh, str.data(), str.size()); std::byte val2 = oh.get().as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_CPP17, byte_object) +BOOST_AUTO_TEST_CASE(byte_object) { std::byte val1{0x00}; msgpack::object obj(val1); std::byte val2 = obj.as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_CPP17, byte_object_with_zone) +BOOST_AUTO_TEST_CASE(byte_object_with_zone) { msgpack::zone z; std::byte val1{80}; msgpack::object obj(val1, z); std::byte val2 = obj.as(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_CPP17, vector_byte_pack_convert) +BOOST_AUTO_TEST_CASE(vector_byte_pack_convert) { std::stringstream ss; std::vector val1{ @@ -271,21 +263,21 @@ TEST(MSGPACK_CPP17, vector_byte_pack_convert) }; msgpack::pack(ss, val1); + std::string const& str = ss.str(); char packed[] = { char(0xc4), char(0x05), char(0x01), char(0x02), char(0x7f), char(0x80), char(0xff) }; + BOOST_CHECK_EQUAL(str.size(), sizeof(packed)); for (size_t i = 0; i != sizeof(packed); ++i) { - std::string const& str = ss.str(); - EXPECT_EQ(str[i], packed[i]); + BOOST_CHECK_EQUAL(str[i], packed[i]); } msgpack::object_handle oh; - std::string const& str = ss.str(); msgpack::unpack(oh, str.data(), str.size()); std::vector val2 = oh.get().as>(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_CPP17, vector_byte_object) +BOOST_AUTO_TEST_CASE(vector_byte_object) { std::vector val1{ std::byte{0x01}, std::byte{0x02}, std::byte{0x7f}, std::byte{0x80}, std::byte{0xff} @@ -295,10 +287,10 @@ TEST(MSGPACK_CPP17, vector_byte_object) msgpack::object obj(val1); std::vector val2 = obj.as>(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_CPP17, vector_byte_object_with_zone) +BOOST_AUTO_TEST_CASE(vector_byte_object_with_zone) { msgpack::zone z; std::vector val1{ @@ -307,10 +299,129 @@ TEST(MSGPACK_CPP17, vector_byte_object_with_zone) msgpack::object obj(val1, z); std::vector val2 = obj.as>(); - EXPECT_EQ(val1, val2); + BOOST_CHECK(val1 == val2); } -TEST(MSGPACK_CPP17, carray_byte_pack_convert) +BOOST_AUTO_TEST_CASE(array_byte_pack_convert) +{ + std::stringstream ss; + std::array val1{ + std::byte{0x01}, std::byte{0x02}, std::byte{0x7f}, std::byte{0x80}, std::byte{0xff} + }; + + msgpack::pack(ss, val1); + std::string const& str = ss.str(); + + char packed[] = { char(0xc4), char(0x05), char(0x01), char(0x02), char(0x7f), char(0x80), char(0xff) }; + BOOST_CHECK_EQUAL(str.size(), sizeof(packed)); + for (size_t i = 0; i != sizeof(packed); ++i) { + BOOST_CHECK_EQUAL(str[i], packed[i]); + } + + { + msgpack::object_handle oh; + msgpack::unpack(oh, str.data(), str.size()); + auto val2 = oh.get().as>(); + BOOST_CHECK(val1 == val2); + } + { + msgpack::object_handle oh; + msgpack::unpack(oh, str.data(), str.size()); + BOOST_CHECK_THROW((oh.get().as>()), msgpack::type_error); + BOOST_CHECK_THROW((oh.get().as>()), msgpack::type_error); + BOOST_CHECK_THROW((oh.get().as>()), msgpack::type_error); + } +} + +BOOST_AUTO_TEST_CASE(array_byte_object) +{ + std::array val1{ + std::byte{0x01}, std::byte{0x02}, std::byte{0x7f}, std::byte{0x80}, std::byte{0xff} + }; + + // Caller need to manage val1's lifetime. The Data is not copied. + msgpack::object obj(val1); + + auto val2 = obj.as>(); + BOOST_CHECK(val1 == val2); + + BOOST_CHECK_THROW((obj.as>()), msgpack::type_error); + BOOST_CHECK_THROW((obj.as>()), msgpack::type_error); + BOOST_CHECK_THROW((obj.as>()), msgpack::type_error); +} + +BOOST_AUTO_TEST_CASE(array_byte_object_with_zone) +{ + msgpack::zone z; + std::array val1{ + std::byte{0x01}, std::byte{0x02}, std::byte{0x7f}, std::byte{0x80}, std::byte{0xff} + }; + msgpack::object obj(val1, z); + + auto val2 = obj.as>(); + BOOST_CHECK(val1 == val2); + + BOOST_CHECK_THROW((obj.as>()), msgpack::type_error); + BOOST_CHECK_THROW((obj.as>()), msgpack::type_error); + BOOST_CHECK_THROW((obj.as>()), msgpack::type_error); +} + +BOOST_AUTO_TEST_CASE(array_byte_empty_pack_convert) +{ + std::stringstream ss; + std::array val1{}; + + msgpack::pack(ss, val1); + std::string const& str = ss.str(); + + char packed[] = { char(0xc4), char(0x00) }; + BOOST_CHECK_EQUAL(str.size(), sizeof(packed)); + for (size_t i = 0; i != sizeof(packed); ++i) { + BOOST_CHECK_EQUAL(str[i], packed[i]); + } + + { + msgpack::object_handle oh; + msgpack::unpack(oh, str.data(), str.size()); + auto val2 = oh.get().as>(); + BOOST_CHECK(val1 == val2); + } + { + msgpack::object_handle oh; + msgpack::unpack(oh, str.data(), str.size()); + BOOST_CHECK_THROW((oh.get().as>()), msgpack::type_error); + BOOST_CHECK_THROW((oh.get().as>()), msgpack::type_error); + } +} + +BOOST_AUTO_TEST_CASE(array_byte_empty_object) +{ + std::array val1{}; + + // Caller need to manage val1's lifetime. The Data is not copied. + msgpack::object obj(val1); + + auto val2 = obj.as>(); + BOOST_CHECK(val1 == val2); + + BOOST_CHECK_THROW((obj.as>()), msgpack::type_error); + BOOST_CHECK_THROW((obj.as>()), msgpack::type_error); +} + +BOOST_AUTO_TEST_CASE(array_byte_empty_object_with_zone) +{ + msgpack::zone z; + std::array val1{}; + msgpack::object obj(val1, z); + + auto val2 = obj.as>(); + BOOST_CHECK(val1 == val2); + + BOOST_CHECK_THROW((obj.as>()), msgpack::type_error); + BOOST_CHECK_THROW((obj.as>()), msgpack::type_error); +} + +BOOST_AUTO_TEST_CASE(carray_byte_pack_convert) { std::stringstream ss; std::byte val1[] = { @@ -318,24 +429,24 @@ TEST(MSGPACK_CPP17, carray_byte_pack_convert) }; msgpack::pack(ss, val1); + std::string const& str = ss.str(); char packed[] = { char(0xc4), char(0x05), char(0x01), char(0x02), char(0x7f), char(0x80), char(0xff) }; + BOOST_CHECK_EQUAL(str.size(), sizeof(packed)); for (size_t i = 0; i != sizeof(packed); ++i) { - std::string const& str = ss.str(); - EXPECT_EQ(str[i], packed[i]); + BOOST_CHECK_EQUAL(str[i], packed[i]); } msgpack::object_handle oh; - std::string const& str = ss.str(); msgpack::unpack(oh, str.data(), str.size()); std::byte val2[sizeof(val1)]; oh.get().convert(val2); for (size_t i = 0; i != sizeof(val1); ++i) { - EXPECT_EQ(val1[i], val2[i]); + BOOST_CHECK(val1[i] == val2[i]); } } -TEST(MSGPACK_CPP17, carray_byte_object_with_zone) +BOOST_AUTO_TEST_CASE(carray_byte_object_with_zone) { msgpack::zone z; std::byte val1[] = { @@ -346,8 +457,8 @@ TEST(MSGPACK_CPP17, carray_byte_object_with_zone) std::byte val2[sizeof(val1)]; obj.convert(val2); for (size_t i = 0; i != sizeof(val1); ++i) { - EXPECT_EQ(val1[i], val2[i]); + BOOST_CHECK(val1[i] == val2[i]); } } -#endif // !defined(MSGPACK_USE_CPP03) && __cplusplus >= 201703 +#endif // MSGPACK_CPP_VERSION >= 201703 diff --git a/test/msgpack_cpp20.cpp b/test/msgpack_cpp20.cpp new file mode 100644 index 00000000..29400aa8 --- /dev/null +++ b/test/msgpack_cpp20.cpp @@ -0,0 +1,131 @@ +#include + +#define BOOST_TEST_MODULE MSGPACK_CPP20 +#include + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +// For C++ standards lower than C++20 +BOOST_AUTO_TEST_CASE(dummy) +{ +} + +// Some compilers still do not set the corresponding macro to 202002 +#if MSGPACK_CPP_VERSION > 201703 + +#if MSGPACK_HAS_INCLUDE() + +template +bool operator==(const std::span& lhs, const std::span& rhs) +{ + if (lhs.size() != rhs.size()) + return false; + for (std::size_t i = 0; i < lhs.size(); ++i) + if (lhs[i] != rhs[i]) + return false; + return true; +} + +template +bool operator==(const std::span& lhs, const std::vector& rhs) +{ + return lhs == std::span{rhs.data(), rhs.size()}; +} + +template +bool operator==(const std::vector& lhs, const std::span& rhs) +{ + return std::span{lhs.data(), lhs.size()} == rhs; +} + +#define MSGPACK_TEST_SPAN_BYTE_PACK_CONVERT(byte_t, display_name) \ + BOOST_AUTO_TEST_CASE(span_##display_name##_pack_convert) \ + { \ + std::stringstream ss; \ + byte_t raw_data[] = { \ + (byte_t)(0x01), (byte_t)(0x02), (byte_t)(0x7f), (byte_t)(0x80), (byte_t)(0xff) \ + }; \ + std::span val1{raw_data, sizeof(raw_data)}; \ + \ + msgpack::pack(ss, val1); \ + std::string const& str = ss.str(); \ + \ + char packed[] = { char(0xc4), char(0x05), char(0x01), char(0x02), char(0x7f), char(0x80), char(0xff) }; \ + BOOST_CHECK_EQUAL(str.size(), sizeof(packed)); \ + for (size_t i = 0; i != sizeof(packed); ++i) { \ + BOOST_CHECK_EQUAL(str[i], packed[i]); \ + } \ + \ + msgpack::object_handle oh; \ + msgpack::unpack(oh, str.data(), str.size()); \ + { \ + auto val2 = oh.get().as>(); \ + BOOST_CHECK(val1 == val2); \ + } \ + { \ + auto val2 = oh.get().as>(); \ + BOOST_CHECK(val1 == val2); \ + } \ + } \ + +#define MSGPACK_TEST_SPAN_BYTE_OBJECT(byte_t, display_name) \ + BOOST_AUTO_TEST_CASE(span_##display_name##_object) \ + { \ + byte_t raw_data[] = { \ + (byte_t)(0x01), (byte_t)(0x02), (byte_t)(0x7f), (byte_t)(0x80), (byte_t)(0xff) \ + }; \ + std::span val1{raw_data, sizeof(raw_data)}; \ + \ + /* Caller needs to manage val1's lifetime. The Data is not copied. */ \ + msgpack::object obj(val1); \ + \ + { \ + auto val2 = obj.as>(); \ + BOOST_CHECK(val1 == val2); \ + } \ + { \ + auto val2 = obj.as>(); \ + BOOST_CHECK(val1 == val2); \ + } \ + } \ + +#define MSGPACK_TEST_SPAN_BYTE_OBJECT_WITH_ZONE(byte_t, display_name) \ + BOOST_AUTO_TEST_CASE(span_##display_name##_object_with_zone) \ + { \ + msgpack::zone z; \ + byte_t raw_data[] = { \ + (byte_t)(0x01), (byte_t)(0x02), (byte_t)(0x7f), (byte_t)(0x80), (byte_t)(0xff) \ + }; \ + std::span val1(raw_data, sizeof(raw_data)); \ + \ + msgpack::object obj(val1, z); \ + \ + { \ + auto val2 = obj.as>(); \ + BOOST_CHECK(val1 == val2); \ + } \ + { \ + auto val2 = obj.as>(); \ + BOOST_CHECK(val1 == val2); \ + } \ + } \ + +#define MSGPACK_TEST_SPAN_BYTE(byte_t, display_name) \ + MSGPACK_TEST_SPAN_BYTE_PACK_CONVERT(byte_t, display_name) \ + MSGPACK_TEST_SPAN_BYTE_OBJECT(byte_t, display_name) \ + MSGPACK_TEST_SPAN_BYTE_OBJECT_WITH_ZONE(byte_t, display_name) \ + +MSGPACK_TEST_SPAN_BYTE(std::byte, byte) +MSGPACK_TEST_SPAN_BYTE(char, char) +MSGPACK_TEST_SPAN_BYTE(unsigned char, unsigned_char) + +#undef MSGPACK_TEST_SPAN_BYTE +#undef MSGPACK_TEST_SPAN_BYTE_OBJECT_WITH_ZONE +#undef MSGPACK_TEST_SPAN_BYTE_OBJECT +#undef MSGPACK_TEST_SPAN_BYTE_PACK_CONVERT + +#endif // MSGPACK_HAS_INCLUDE() + +#endif // MSGPACK_CPP_VERSION > 201703 diff --git a/test/msgpack_stream.cpp b/test/msgpack_stream.cpp index 2c67196b..7b280681 100644 --- a/test/msgpack_stream.cpp +++ b/test/msgpack_stream.cpp @@ -9,16 +9,8 @@ #include #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) - -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE MSGPACK +#include #ifdef HAVE_CONFIG_H #include "config.h" @@ -55,7 +47,7 @@ const unsigned int kLoop = 1000; msgpack::object obj = oh.get(); \ vec_type::value_type val; \ obj.convert(val); \ - EXPECT_EQ(*it, val); \ + BOOST_CHECK_EQUAL(*it, val); \ ++it; \ } \ p += sz; \ @@ -64,97 +56,97 @@ const unsigned int kLoop = 1000; ; \ } -TEST(MSGPACK, stream_char) +BOOST_AUTO_TEST_CASE(stream_char) { GEN_TEST_STREAM(char); } -TEST(MSGPACK, stream_signed_char) +BOOST_AUTO_TEST_CASE(stream_signed_char) { GEN_TEST_STREAM(signed char); } -TEST(MSGPACK, stream_unsigned_char) +BOOST_AUTO_TEST_CASE(stream_unsigned_char) { GEN_TEST_STREAM(unsigned char); } -TEST(MSGPACK, stream_short) +BOOST_AUTO_TEST_CASE(stream_short) { GEN_TEST_STREAM(short); } -TEST(MSGPACK, stream_int) +BOOST_AUTO_TEST_CASE(stream_int) { GEN_TEST_STREAM(int); } -TEST(MSGPACK, stream_long) +BOOST_AUTO_TEST_CASE(stream_long) { GEN_TEST_STREAM(long); } -TEST(MSGPACK, stream_long_long) +BOOST_AUTO_TEST_CASE(stream_long_long) { GEN_TEST_STREAM(long long); } -TEST(MSGPACK, stream_unsigned_short) +BOOST_AUTO_TEST_CASE(stream_unsigned_short) { GEN_TEST_STREAM(unsigned short); } -TEST(MSGPACK, stream_unsigned_int) +BOOST_AUTO_TEST_CASE(stream_unsigned_int) { GEN_TEST_STREAM(unsigned int); } -TEST(MSGPACK, stream_unsigned_long) +BOOST_AUTO_TEST_CASE(stream_unsigned_long) { GEN_TEST_STREAM(unsigned long); } -TEST(MSGPACK, stream_unsigned_long_long) +BOOST_AUTO_TEST_CASE(stream_unsigned_long_long) { GEN_TEST_STREAM(unsigned long long); } -TEST(MSGPACK, stream_uint8) +BOOST_AUTO_TEST_CASE(stream_uint8) { GEN_TEST_STREAM(uint8_t); } -TEST(MSGPACK, stream_uint16) +BOOST_AUTO_TEST_CASE(stream_uint16) { GEN_TEST_STREAM(uint16_t); } -TEST(MSGPACK, stream_uint32) +BOOST_AUTO_TEST_CASE(stream_uint32) { GEN_TEST_STREAM(uint32_t); } -TEST(MSGPACK, stream_uint64) +BOOST_AUTO_TEST_CASE(stream_uint64) { GEN_TEST_STREAM(uint64_t); } -TEST(MSGPACK, stream_int8) +BOOST_AUTO_TEST_CASE(stream_int8) { GEN_TEST_STREAM(int8_t); } -TEST(MSGPACK, stream_int16) +BOOST_AUTO_TEST_CASE(stream_int16) { GEN_TEST_STREAM(int16_t); } -TEST(MSGPACK, stream_int32) +BOOST_AUTO_TEST_CASE(stream_int32) { GEN_TEST_STREAM(int32_t); } -TEST(MSGPACK, stream_int64) +BOOST_AUTO_TEST_CASE(stream_int64) { GEN_TEST_STREAM(int64_t); } diff --git a/test/msgpack_tuple.cpp b/test/msgpack_tuple.cpp index ffb75d56..3afe5d1b 100644 --- a/test/msgpack_tuple.cpp +++ b/test/msgpack_tuple.cpp @@ -1,112 +1,106 @@ #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE msgpack_tuple +#include -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) - -TEST(msgpack_tuple, member_get) +BOOST_AUTO_TEST_CASE(member_get) { msgpack::type::tuple t1(42, true, "ABC"); - EXPECT_EQ(42, t1.get<0>()); - EXPECT_EQ(true, t1.get<1>()); - EXPECT_EQ("ABC", t1.get<2>()); + BOOST_CHECK_EQUAL(42, t1.get<0>()); + BOOST_CHECK_EQUAL(true, t1.get<1>()); + BOOST_CHECK_EQUAL("ABC", t1.get<2>()); t1.get<0>() = 40; t1.get<1>() = false; t1.get<2>() = "DEFG"; - EXPECT_EQ(40, t1.get<0>()); - EXPECT_FALSE(t1.get<1>()); - EXPECT_EQ("DEFG", t1.get<2>()); + BOOST_CHECK_EQUAL(40, t1.get<0>()); + BOOST_CHECK(!t1.get<1>()); + BOOST_CHECK_EQUAL("DEFG", t1.get<2>()); } -TEST(msgpack_tuple, non_member_get) +BOOST_AUTO_TEST_CASE(non_member_get) { msgpack::type::tuple t1(42, true, "ABC"); - EXPECT_EQ(42, msgpack::type::get<0>(t1)); - EXPECT_EQ(true, msgpack::type::get<1>(t1)); - EXPECT_EQ("ABC", msgpack::type::get<2>(t1)); + BOOST_CHECK_EQUAL(42, msgpack::type::get<0>(t1)); + BOOST_CHECK_EQUAL(true, msgpack::type::get<1>(t1)); + BOOST_CHECK_EQUAL("ABC", msgpack::type::get<2>(t1)); msgpack::type::get<0>(t1) = 40; msgpack::type::get<1>(t1) = false; msgpack::type::get<2>(t1) = "DEFG"; - EXPECT_EQ(40, msgpack::type::get<0>(t1)); - EXPECT_FALSE(msgpack::type::get<1>(t1)); - EXPECT_EQ("DEFG", msgpack::type::get<2>(t1)); + BOOST_CHECK_EQUAL(40, msgpack::type::get<0>(t1)); + BOOST_CHECK(!msgpack::type::get<1>(t1)); + BOOST_CHECK_EQUAL("DEFG", msgpack::type::get<2>(t1)); } -#if __cplusplus >= 201103L -TEST(msgpack_tuple, std_non_member_get) +#if MSGPACK_CPP_VERSION >= 201103L + +BOOST_AUTO_TEST_CASE(std_non_member_get) { msgpack::type::tuple t1(42, true, "ABC"); - EXPECT_EQ(42, std::get<0>(t1)); - EXPECT_EQ(true, std::get<1>(t1)); - EXPECT_EQ("ABC", std::get<2>(t1)); + BOOST_CHECK_EQUAL(42, std::get<0>(t1)); + BOOST_CHECK_EQUAL(true, std::get<1>(t1)); + BOOST_CHECK_EQUAL("ABC", std::get<2>(t1)); std::get<0>(t1) = 40; std::get<1>(t1) = false; std::get<2>(t1) = "DEFG"; - EXPECT_EQ(40, std::get<0>(t1)); - EXPECT_FALSE(std::get<1>(t1)); - EXPECT_EQ("DEFG", std::get<2>(t1)); + BOOST_CHECK_EQUAL(40, std::get<0>(t1)); + BOOST_CHECK(!std::get<1>(t1)); + BOOST_CHECK_EQUAL("DEFG", std::get<2>(t1)); } -TEST(msgpack_tuple, make_tuple) +BOOST_AUTO_TEST_CASE(make_tuple) { msgpack::type::tuple t1 = msgpack::type::make_tuple(42, true, "ABC"); - EXPECT_EQ(42, t1.get<0>()); - EXPECT_EQ(true, t1.get<1>()); - EXPECT_EQ("ABC", t1.get<2>()); + BOOST_CHECK_EQUAL(42, t1.get<0>()); + BOOST_CHECK_EQUAL(true, t1.get<1>()); + BOOST_CHECK_EQUAL("ABC", t1.get<2>()); t1.get<0>() = 40; t1.get<1>() = false; t1.get<2>() = "DEFG"; - EXPECT_EQ(40, t1.get<0>()); - EXPECT_FALSE(t1.get<1>()); - EXPECT_EQ("DEFG", t1.get<2>()); + BOOST_CHECK_EQUAL(40, t1.get<0>()); + BOOST_CHECK(!t1.get<1>()); + BOOST_CHECK_EQUAL("DEFG", t1.get<2>()); } -TEST(msgpack_tuple, std_make_tuple) +BOOST_AUTO_TEST_CASE(std_make_tuple) { msgpack::type::tuple t1 = std::make_tuple(42, true, "ABC"); - EXPECT_EQ(42, t1.get<0>()); - EXPECT_EQ(true, t1.get<1>()); - EXPECT_EQ("ABC", t1.get<2>()); + BOOST_CHECK_EQUAL(42, t1.get<0>()); + BOOST_CHECK_EQUAL(true, t1.get<1>()); + BOOST_CHECK_EQUAL("ABC", t1.get<2>()); } -TEST(msgpack_tuple, tie) +BOOST_AUTO_TEST_CASE(tie) { int i(43); bool b(false); std::string s("DEFG"); msgpack::type::tie(i, b, s) = msgpack::type::make_tuple(42, true, "ABC"); - EXPECT_EQ(42, i); - EXPECT_EQ(true, b); - EXPECT_EQ("ABC", s); + BOOST_CHECK_EQUAL(42, i); + BOOST_CHECK_EQUAL(true, b); + BOOST_CHECK_EQUAL("ABC", s); } -TEST(msgpack_tuple, tuple_cat) +BOOST_AUTO_TEST_CASE(tuple_cat) { msgpack::type::tuple t1 = msgpack::type::make_tuple(42); msgpack::type::tuple t2 = msgpack::type::make_tuple(true, "ABC"); msgpack::type::tuple t3 = msgpack::type::tuple_cat(t1, std::move(t2)); - EXPECT_EQ(42, t3.get<0>()); - EXPECT_EQ(true, t3.get<1>()); - EXPECT_EQ("ABC", t3.get<2>()); + BOOST_CHECK_EQUAL(42, t3.get<0>()); + BOOST_CHECK_EQUAL(true, t3.get<1>()); + BOOST_CHECK_EQUAL("ABC", t3.get<2>()); } -TEST(msgpack_tuple, swap) +BOOST_AUTO_TEST_CASE(swap) { msgpack::type::tuple t1 = msgpack::type::make_tuple(42, true, "ABC"); msgpack::type::tuple t2 = msgpack::type::make_tuple(40, false, "DEFG"); msgpack::type::swap(t1, t2); - EXPECT_EQ(42, t2.get<0>()); - EXPECT_EQ(true, t2.get<1>()); - EXPECT_EQ("ABC", t2.get<2>()); - EXPECT_EQ(40, t1.get<0>()); - EXPECT_FALSE(t1.get<1>()); - EXPECT_EQ("DEFG", t1.get<2>()); + BOOST_CHECK_EQUAL(42, t2.get<0>()); + BOOST_CHECK_EQUAL(true, t2.get<1>()); + BOOST_CHECK_EQUAL("ABC", t2.get<2>()); + BOOST_CHECK_EQUAL(40, t1.get<0>()); + BOOST_CHECK(!t1.get<1>()); + BOOST_CHECK_EQUAL("DEFG", t1.get<2>()); } -#endif + +#endif // MSGPACK_CPP_VERSION >= 201103L diff --git a/test/msgpack_vref.cpp b/test/msgpack_vref.cpp index 1b475338..afab2103 100644 --- a/test/msgpack_vref.cpp +++ b/test/msgpack_vref.cpp @@ -9,16 +9,8 @@ #include #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) - -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE MSGPACK +#include #ifdef HAVE_CONFIG_H #include "config.h" @@ -41,246 +33,246 @@ using namespace std; msgpack::object_handle oh; \ msgpack::unpack(oh, sbuf.data(), sbuf.size()); \ test_type val2 = oh.get().as(); \ - EXPECT_EQ(val1, val2); \ + BOOST_CHECK_EQUAL(val1, val2); \ } \ } while(0); -TEST(MSGPACK, vrefbuffer_char) +BOOST_AUTO_TEST_CASE(vrefbuffer_char) { msgpack::vrefbuffer vbuf; GEN_TEST_VREF(char, vbuf); } -TEST(MSGPACK, vrefbuffer_signed_char) +BOOST_AUTO_TEST_CASE(vrefbuffer_signed_char) { msgpack::vrefbuffer vbuf; GEN_TEST_VREF(signed char, vbuf); } -TEST(MSGPACK, vrefbuffer_unsigned_char) +BOOST_AUTO_TEST_CASE(vrefbuffer_unsigned_char) { msgpack::vrefbuffer vbuf; GEN_TEST_VREF(unsigned char, vbuf); } -TEST(MSGPACK, vrefbuffer_short) +BOOST_AUTO_TEST_CASE(vrefbuffer_short) { msgpack::vrefbuffer vbuf; GEN_TEST_VREF(short, vbuf); } -TEST(MSGPACK, vrefbuffer_int) +BOOST_AUTO_TEST_CASE(vrefbuffer_int) { msgpack::vrefbuffer vbuf; GEN_TEST_VREF(int, vbuf); } -TEST(MSGPACK, vrefbuffer_long) +BOOST_AUTO_TEST_CASE(vrefbuffer_long) { msgpack::vrefbuffer vbuf; GEN_TEST_VREF(long, vbuf); } -TEST(MSGPACK, vrefbuffer_long_long) +BOOST_AUTO_TEST_CASE(vrefbuffer_long_long) { msgpack::vrefbuffer vbuf; GEN_TEST_VREF(long long, vbuf); } -TEST(MSGPACK, vrefbuffer_unsigned_short) +BOOST_AUTO_TEST_CASE(vrefbuffer_unsigned_short) { msgpack::vrefbuffer vbuf; GEN_TEST_VREF(unsigned short, vbuf); } -TEST(MSGPACK, vrefbuffer_unsigned_int) +BOOST_AUTO_TEST_CASE(vrefbuffer_unsigned_int) { msgpack::vrefbuffer vbuf; GEN_TEST_VREF(unsigned int, vbuf); } -TEST(MSGPACK, vrefbuffer_unsigned_long) +BOOST_AUTO_TEST_CASE(vrefbuffer_unsigned_long) { msgpack::vrefbuffer vbuf; GEN_TEST_VREF(unsigned long, vbuf); } -TEST(MSGPACK, vrefbuffer_unsigned_long_long) +BOOST_AUTO_TEST_CASE(vrefbuffer_unsigned_long_long) { msgpack::vrefbuffer vbuf; GEN_TEST_VREF(unsigned long long, vbuf); } -TEST(MSGPACK, vrefbuffer_uint8) +BOOST_AUTO_TEST_CASE(vrefbuffer_uint8) { msgpack::vrefbuffer vbuf; GEN_TEST_VREF(uint8_t, vbuf); } -TEST(MSGPACK, vrefbuffer_uint16) +BOOST_AUTO_TEST_CASE(vrefbuffer_uint16) { msgpack::vrefbuffer vbuf; GEN_TEST_VREF(uint16_t, vbuf); } -TEST(MSGPACK, vrefbuffer_uint32) +BOOST_AUTO_TEST_CASE(vrefbuffer_uint32) { msgpack::vrefbuffer vbuf; GEN_TEST_VREF(uint32_t, vbuf); } -TEST(MSGPACK, vrefbuffer_uint64) +BOOST_AUTO_TEST_CASE(vrefbuffer_uint64) { msgpack::vrefbuffer vbuf; GEN_TEST_VREF(uint64_t, vbuf); } -TEST(MSGPACK, vrefbuffer_int8) +BOOST_AUTO_TEST_CASE(vrefbuffer_int8) { msgpack::vrefbuffer vbuf; GEN_TEST_VREF(int8_t, vbuf); } -TEST(MSGPACK, vrefbuffer_int16) +BOOST_AUTO_TEST_CASE(vrefbuffer_int16) { msgpack::vrefbuffer vbuf; GEN_TEST_VREF(int16_t, vbuf); } -TEST(MSGPACK, vrefbuffer_int32) +BOOST_AUTO_TEST_CASE(vrefbuffer_int32) { msgpack::vrefbuffer vbuf; GEN_TEST_VREF(int32_t, vbuf); } -TEST(MSGPACK, vrefbuffer_int64) +BOOST_AUTO_TEST_CASE(vrefbuffer_int64) { msgpack::vrefbuffer vbuf; GEN_TEST_VREF(int64_t, vbuf); } // small ref_size and chunk_size -TEST(MSGPACK, vrefbuffer_small_char) +BOOST_AUTO_TEST_CASE(vrefbuffer_small_char) { msgpack::vrefbuffer vbuf(0, 0); GEN_TEST_VREF(char, vbuf); } -TEST(MSGPACK, vrefbuffer_small_signed_char) +BOOST_AUTO_TEST_CASE(vrefbuffer_small_signed_char) { msgpack::vrefbuffer vbuf(0, 0); GEN_TEST_VREF(signed char, vbuf); } -TEST(MSGPACK, vrefbuffer_small_unsigned_char) +BOOST_AUTO_TEST_CASE(vrefbuffer_small_unsigned_char) { msgpack::vrefbuffer vbuf(0, 0); GEN_TEST_VREF(unsigned char, vbuf); } -TEST(MSGPACK, vrefbuffer_small_short) +BOOST_AUTO_TEST_CASE(vrefbuffer_small_short) { msgpack::vrefbuffer vbuf(0, 0); GEN_TEST_VREF(short, vbuf); } -TEST(MSGPACK, vrefbuffer_small_int) +BOOST_AUTO_TEST_CASE(vrefbuffer_small_int) { msgpack::vrefbuffer vbuf(0, 0); GEN_TEST_VREF(int, vbuf); } -TEST(MSGPACK, vrefbuffer_small_long) +BOOST_AUTO_TEST_CASE(vrefbuffer_small_long) { msgpack::vrefbuffer vbuf(0, 0); GEN_TEST_VREF(long, vbuf); } -TEST(MSGPACK, vrefbuffer_small_long_long) +BOOST_AUTO_TEST_CASE(vrefbuffer_small_long_long) { msgpack::vrefbuffer vbuf(0, 0); GEN_TEST_VREF(long long, vbuf); } -TEST(MSGPACK, vrefbuffer_small_unsigned_short) +BOOST_AUTO_TEST_CASE(vrefbuffer_small_unsigned_short) { msgpack::vrefbuffer vbuf(0, 0); GEN_TEST_VREF(unsigned short, vbuf); } -TEST(MSGPACK, vrefbuffer_small_unsigned_int) +BOOST_AUTO_TEST_CASE(vrefbuffer_small_unsigned_int) { msgpack::vrefbuffer vbuf(0, 0); GEN_TEST_VREF(unsigned int, vbuf); } -TEST(MSGPACK, vrefbuffer_small_unsigned_long) +BOOST_AUTO_TEST_CASE(vrefbuffer_small_unsigned_long) { msgpack::vrefbuffer vbuf(0, 0); GEN_TEST_VREF(unsigned long, vbuf); } -TEST(MSGPACK, vrefbuffer_small_unsigned_long_long) +BOOST_AUTO_TEST_CASE(vrefbuffer_small_unsigned_long_long) { msgpack::vrefbuffer vbuf(0, 0); GEN_TEST_VREF(unsigned long long, vbuf); } -TEST(MSGPACK, vrefbuffer_small_uint8) +BOOST_AUTO_TEST_CASE(vrefbuffer_small_uint8) { msgpack::vrefbuffer vbuf(0, 0); GEN_TEST_VREF(uint8_t, vbuf); } -TEST(MSGPACK, vrefbuffer_small_uint16) +BOOST_AUTO_TEST_CASE(vrefbuffer_small_uint16) { msgpack::vrefbuffer vbuf(0, 0); GEN_TEST_VREF(uint16_t, vbuf); } -TEST(MSGPACK, vrefbuffer_small_uint32) +BOOST_AUTO_TEST_CASE(vrefbuffer_small_uint32) { msgpack::vrefbuffer vbuf(0, 0); GEN_TEST_VREF(uint32_t, vbuf); } -TEST(MSGPACK, vrefbuffer_small_uint64) +BOOST_AUTO_TEST_CASE(vrefbuffer_small_uint64) { msgpack::vrefbuffer vbuf(0, 0); GEN_TEST_VREF(uint64_t, vbuf); } -TEST(MSGPACK, vrefbuffer_small_int8) +BOOST_AUTO_TEST_CASE(vrefbuffer_small_int8) { msgpack::vrefbuffer vbuf(0, 0); GEN_TEST_VREF(int8_t, vbuf); } -TEST(MSGPACK, vrefbuffer_small_int16) +BOOST_AUTO_TEST_CASE(vrefbuffer_small_int16) { msgpack::vrefbuffer vbuf(0, 0); GEN_TEST_VREF(int16_t, vbuf); } -TEST(MSGPACK, vrefbuffer_small_int32) +BOOST_AUTO_TEST_CASE(vrefbuffer_small_int32) { msgpack::vrefbuffer vbuf(0, 0); GEN_TEST_VREF(int32_t, vbuf); } -TEST(MSGPACK, vrefbuffer_small_int64) +BOOST_AUTO_TEST_CASE(vrefbuffer_small_int64) { msgpack::vrefbuffer vbuf(0, 0); GEN_TEST_VREF(int64_t, vbuf); } -TEST(MSGPACK, vref_buffer_overflow) +BOOST_AUTO_TEST_CASE(vref_buffer_overflow) { size_t ref_size = 0; size_t chunk_size = std::numeric_limits::max(); char *buf = (char *)malloc(0x1000); - ASSERT_THROW(msgpack::vrefbuffer vbuf(ref_size, chunk_size), std::bad_alloc); + BOOST_CHECK_THROW(msgpack::vrefbuffer vbuf(ref_size, chunk_size), std::bad_alloc); msgpack::vrefbuffer vbuf2(0, 0x1000); - ASSERT_THROW(vbuf2.append_copy(buf, chunk_size), std::bad_alloc); + BOOST_CHECK_THROW(vbuf2.append_copy(buf, chunk_size), std::bad_alloc); free(buf); } diff --git a/test/msgpack_x3_parse.cpp b/test/msgpack_x3_parse.cpp index 7fe6748f..216b098f 100644 --- a/test/msgpack_x3_parse.cpp +++ b/test/msgpack_x3_parse.cpp @@ -4,19 +4,11 @@ #include #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) - -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE MSGPACK_X3_PARSE +#include // To avoid link error -TEST(MSGPACK_X3_PARSE, dummy) +BOOST_AUTO_TEST_CASE(dummy) { } @@ -26,247 +18,247 @@ using namespace std; const double kEPS = 1e-10; -TEST(MSGPACK_X3_PARSE, nil_t) +BOOST_AUTO_TEST_CASE(nil_t) { msgpack::type::nil_t v; std::stringstream ss; msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_TRUE(oh.get().is_nil()); + BOOST_CHECK(oh.get().is_nil()); } -TEST(MSGPACK_X3_PARSE, bool_false) +BOOST_AUTO_TEST_CASE(bool_false) { bool v = false; std::stringstream ss; msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as()); + BOOST_CHECK_EQUAL(v, oh.get().as()); } -TEST(MSGPACK_X3_PARSE, bool_true) +BOOST_AUTO_TEST_CASE(bool_true) { bool v = true; std::stringstream ss; msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as()); + BOOST_CHECK_EQUAL(v, oh.get().as()); } -TEST(MSGPACK_X3_PARSE, positive_fixint_1) +BOOST_AUTO_TEST_CASE(positive_fixint_1) { uint8_t v = 0; std::stringstream ss; msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as()); + BOOST_CHECK_EQUAL(v, oh.get().as()); } -TEST(MSGPACK_X3_PARSE, positive_fixint_2) +BOOST_AUTO_TEST_CASE(positive_fixint_2) { uint8_t v = 127; std::stringstream ss; msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as()); + BOOST_CHECK_EQUAL(v, oh.get().as()); } -TEST(MSGPACK_X3_PARSE, negative_fixint_1) +BOOST_AUTO_TEST_CASE(negative_fixint_1) { int8_t v = -1; std::stringstream ss; msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as()); + BOOST_CHECK_EQUAL(v, oh.get().as()); } -TEST(MSGPACK_X3_PARSE, negative_fixint_2) +BOOST_AUTO_TEST_CASE(negative_fixint_2) { int8_t v = -32; std::stringstream ss; msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as()); + BOOST_CHECK_EQUAL(v, oh.get().as()); } -TEST(MSGPACK_X3_PARSE, uint8_1) +BOOST_AUTO_TEST_CASE(uint8_1) { uint8_t v = 128U; std::stringstream ss; msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as()); + BOOST_CHECK_EQUAL(v, oh.get().as()); } -TEST(MSGPACK_X3_PARSE, uint8_2) +BOOST_AUTO_TEST_CASE(uint8_2) { uint8_t v = 0xffU; std::stringstream ss; msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as()); + BOOST_CHECK_EQUAL(v, oh.get().as()); } -TEST(MSGPACK_X3_PARSE, uint16_1) +BOOST_AUTO_TEST_CASE(uint16_1) { uint16_t v = 0x100U; std::stringstream ss; msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as()); + BOOST_CHECK_EQUAL(v, oh.get().as()); } -TEST(MSGPACK_X3_PARSE, uint16_2) +BOOST_AUTO_TEST_CASE(uint16_2) { uint16_t v = 0xffffU; std::stringstream ss; msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as()); + BOOST_CHECK_EQUAL(v, oh.get().as()); } -TEST(MSGPACK_X3_PARSE, uint32_1) +BOOST_AUTO_TEST_CASE(uint32_1) { uint32_t v = 0x10000UL; std::stringstream ss; msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as()); + BOOST_CHECK_EQUAL(v, oh.get().as()); } -TEST(MSGPACK_X3_PARSE, uint32_2) +BOOST_AUTO_TEST_CASE(uint32_2) { uint32_t v = 0xffffffffUL; std::stringstream ss; msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as()); + BOOST_CHECK_EQUAL(v, oh.get().as()); } -TEST(MSGPACK_X3_PARSE, uint64_1) +BOOST_AUTO_TEST_CASE(uint64_1) { uint64_t v = 0x100000000ULL; std::stringstream ss; msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as()); + BOOST_CHECK_EQUAL(v, oh.get().as()); } -TEST(MSGPACK_X3_PARSE, uint64_2) +BOOST_AUTO_TEST_CASE(uint64_2) { uint64_t v = 0xffffffffffffffffULL; std::stringstream ss; msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as()); + BOOST_CHECK_EQUAL(v, oh.get().as()); } -TEST(MSGPACK_X3_PARSE, int8_1) +BOOST_AUTO_TEST_CASE(int8_1) { int8_t v = static_cast(0b11011111); std::stringstream ss; msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as()); + BOOST_CHECK_EQUAL(v, oh.get().as()); } -TEST(MSGPACK_X3_PARSE, int8_2) +BOOST_AUTO_TEST_CASE(int8_2) { int8_t v = static_cast(0b10000000); std::stringstream ss; msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as()); + BOOST_CHECK_EQUAL(v, oh.get().as()); } -TEST(MSGPACK_X3_PARSE, int16_1) +BOOST_AUTO_TEST_CASE(int16_1) { int16_t v = static_cast(0xff00); std::stringstream ss; msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as()); + BOOST_CHECK_EQUAL(v, oh.get().as()); } -TEST(MSGPACK_X3_PARSE, int16_2) +BOOST_AUTO_TEST_CASE(int16_2) { int16_t v = static_cast(0x8000); std::stringstream ss; msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as()); + BOOST_CHECK_EQUAL(v, oh.get().as()); } -TEST(MSGPACK_X3_PARSE, int32_1) +BOOST_AUTO_TEST_CASE(int32_1) { int32_t v = static_cast(0xff000000L); std::stringstream ss; msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as()); + BOOST_CHECK_EQUAL(v, oh.get().as()); } -TEST(MSGPACK_X3_PARSE, int32_2) +BOOST_AUTO_TEST_CASE(int32_2) { int32_t v = static_cast(0x80000000L); std::stringstream ss; msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as()); + BOOST_CHECK_EQUAL(v, oh.get().as()); } -TEST(MSGPACK_X3_PARSE, int64_1) +BOOST_AUTO_TEST_CASE(int64_1) { int64_t v = static_cast(0xff00000000000000LL); std::stringstream ss; msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as()); + BOOST_CHECK_EQUAL(v, oh.get().as()); } -TEST(MSGPACK_X3_PARSE, int64_2) +BOOST_AUTO_TEST_CASE(int64_2) { int64_t v = static_cast(0x8000000000000000LL); std::stringstream ss; msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as()); + BOOST_CHECK_EQUAL(v, oh.get().as()); } -TEST(MSGPACK_X3_PARSE, array_1) +BOOST_AUTO_TEST_CASE(array_1) { std::vector v; std::stringstream ss; msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as >()); + BOOST_CHECK(v == oh.get().as >()); } -TEST(MSGPACK_X3_PARSE, array_2) +BOOST_AUTO_TEST_CASE(array_2) { std::vector v; std::stringstream ss; @@ -274,10 +266,10 @@ TEST(MSGPACK_X3_PARSE, array_2) msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as >()); + BOOST_CHECK(v == oh.get().as >()); } -TEST(MSGPACK_X3_PARSE, array_3) +BOOST_AUTO_TEST_CASE(array_3) { std::vector v; std::stringstream ss; @@ -285,10 +277,10 @@ TEST(MSGPACK_X3_PARSE, array_3) msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as >()); + BOOST_CHECK(v == oh.get().as >()); } -TEST(MSGPACK_X3_PARSE, array_4) +BOOST_AUTO_TEST_CASE(array_4) { std::vector v; std::stringstream ss; @@ -296,10 +288,10 @@ TEST(MSGPACK_X3_PARSE, array_4) msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as >()); + BOOST_CHECK(v == oh.get().as >()); } -TEST(MSGPACK_X3_PARSE, array_5) +BOOST_AUTO_TEST_CASE(array_5) { std::vector v; std::stringstream ss; @@ -307,20 +299,20 @@ TEST(MSGPACK_X3_PARSE, array_5) msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as >()); + BOOST_CHECK(v == oh.get().as >()); } -TEST(MSGPACK_X3_PARSE, map_1) +BOOST_AUTO_TEST_CASE(map_1) { std::map v; std::stringstream ss; msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, (oh.get().as >())); + BOOST_CHECK(v == (oh.get().as >())); } -TEST(MSGPACK_X3_PARSE, map_2) +BOOST_AUTO_TEST_CASE(map_2) { std::map v; std::stringstream ss; @@ -328,10 +320,10 @@ TEST(MSGPACK_X3_PARSE, map_2) msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, (oh.get().as >())); + BOOST_CHECK(v == (oh.get().as >())); } -TEST(MSGPACK_X3_PARSE, map_3) +BOOST_AUTO_TEST_CASE(map_3) { std::map v; std::stringstream ss; @@ -339,10 +331,10 @@ TEST(MSGPACK_X3_PARSE, map_3) msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, (oh.get().as >())); + BOOST_CHECK(v == (oh.get().as >())); } -TEST(MSGPACK_X3_PARSE, map_4) +BOOST_AUTO_TEST_CASE(map_4) { std::map v; std::stringstream ss; @@ -350,10 +342,10 @@ TEST(MSGPACK_X3_PARSE, map_4) msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, (oh.get().as >())); + BOOST_CHECK(v == (oh.get().as >())); } -TEST(MSGPACK_X3_PARSE, map_5) +BOOST_AUTO_TEST_CASE(map_5) { std::map v; std::stringstream ss; @@ -361,10 +353,10 @@ TEST(MSGPACK_X3_PARSE, map_5) msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, (oh.get().as >())); + BOOST_CHECK(v == (oh.get().as >())); } -TEST(MSGPACK_X3_PARSE, float_1) +BOOST_AUTO_TEST_CASE(float_1) { std::vector v; v.push_back(0.0); @@ -394,15 +386,15 @@ TEST(MSGPACK_X3_PARSE, float_1) float val2 = oh.get().as(); if (std::isnan(val1)) - EXPECT_TRUE(std::isnan(val2)); + BOOST_CHECK(std::isnan(val2)); else if (std::isinf(val1)) - EXPECT_TRUE(std::isinf(val2)); + BOOST_CHECK(std::isinf(val2)); else - EXPECT_TRUE(fabs(val2 - val1) <= kEPS); + BOOST_CHECK(fabs(val2 - val1) <= kEPS); } } -TEST(MSGPACK_X3_PARSE, double_1) +BOOST_AUTO_TEST_CASE(double_1) { std::vector v; v.push_back(0.0); @@ -432,25 +424,25 @@ TEST(MSGPACK_X3_PARSE, double_1) double val2 = oh.get().as(); if (std::isnan(val1)) - EXPECT_TRUE(std::isnan(val2)); + BOOST_CHECK(std::isnan(val2)); else if (std::isinf(val1)) - EXPECT_TRUE(std::isinf(val2)); + BOOST_CHECK(std::isinf(val2)); else - EXPECT_TRUE(fabs(val2 - val1) <= kEPS); + BOOST_CHECK(fabs(val2 - val1) <= kEPS); } } -TEST(MSGPACK_X3_PARSE, string_1) +BOOST_AUTO_TEST_CASE(string_1) { std::string v; std::stringstream ss; msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as()); + BOOST_CHECK_EQUAL(v, oh.get().as()); } -TEST(MSGPACK_X3_PARSE, string_2) +BOOST_AUTO_TEST_CASE(string_2) { std::string v; @@ -460,10 +452,10 @@ TEST(MSGPACK_X3_PARSE, string_2) msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as()); + BOOST_CHECK_EQUAL(v, oh.get().as()); } -TEST(MSGPACK_X3_PARSE, string_3) +BOOST_AUTO_TEST_CASE(string_3) { std::string v; @@ -473,10 +465,10 @@ TEST(MSGPACK_X3_PARSE, string_3) msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as()); + BOOST_CHECK_EQUAL(v, oh.get().as()); } -TEST(MSGPACK_X3_PARSE, string_4) +BOOST_AUTO_TEST_CASE(string_4) { std::string v; @@ -486,10 +478,10 @@ TEST(MSGPACK_X3_PARSE, string_4) msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as()); + BOOST_CHECK_EQUAL(v, oh.get().as()); } -TEST(MSGPACK_X3_PARSE, string_5) +BOOST_AUTO_TEST_CASE(string_5) { std::string v; @@ -499,10 +491,10 @@ TEST(MSGPACK_X3_PARSE, string_5) msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as()); + BOOST_CHECK_EQUAL(v, oh.get().as()); } -TEST(MSGPACK_X3_PARSE, string_6) +BOOST_AUTO_TEST_CASE(string_6) { std::string v; @@ -512,20 +504,20 @@ TEST(MSGPACK_X3_PARSE, string_6) msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as()); + BOOST_CHECK_EQUAL(v, oh.get().as()); } -TEST(MSGPACK_X3_PARSE, bin_1) +BOOST_AUTO_TEST_CASE(bin_1) { std::vector v; std::stringstream ss; msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as>()); + BOOST_CHECK(v == oh.get().as>()); } -TEST(MSGPACK_X3_PARSE, bin_2) +BOOST_AUTO_TEST_CASE(bin_2) { std::vector v; @@ -535,10 +527,10 @@ TEST(MSGPACK_X3_PARSE, bin_2) msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as>()); + BOOST_CHECK(v == oh.get().as>()); } -TEST(MSGPACK_X3_PARSE, bin_3) +BOOST_AUTO_TEST_CASE(bin_3) { std::vector v; @@ -548,10 +540,10 @@ TEST(MSGPACK_X3_PARSE, bin_3) msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as>()); + BOOST_CHECK(v == oh.get().as>()); } -TEST(MSGPACK_X3_PARSE, bin_4) +BOOST_AUTO_TEST_CASE(bin_4) { std::vector v; @@ -561,10 +553,10 @@ TEST(MSGPACK_X3_PARSE, bin_4) msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as>()); + BOOST_CHECK(v == oh.get().as>()); } -TEST(MSGPACK_X3_PARSE, bin_5) +BOOST_AUTO_TEST_CASE(bin_5) { std::vector v; @@ -574,10 +566,10 @@ TEST(MSGPACK_X3_PARSE, bin_5) msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as>()); + BOOST_CHECK(v == oh.get().as>()); } -TEST(MSGPACK_X3_PARSE, bin_6) +BOOST_AUTO_TEST_CASE(bin_6) { std::vector v; @@ -587,10 +579,10 @@ TEST(MSGPACK_X3_PARSE, bin_6) msgpack::pack(ss, v); auto oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, oh.get().as>()); + BOOST_CHECK(v == oh.get().as>()); } -TEST(MSGPACK_X3_PARSE, fixext1) +BOOST_AUTO_TEST_CASE(fixext1) { std::stringstream ss; msgpack::packer packer(ss); @@ -600,12 +592,12 @@ TEST(MSGPACK_X3_PARSE, fixext1) packer.pack_ext_body(buf, sizeof(buf)); msgpack::object_handle oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(1ul, oh.get().via.ext.size); - EXPECT_EQ(1, oh.get().via.ext.type()); - EXPECT_EQ(2, oh.get().via.ext.data()[0]); + BOOST_CHECK_EQUAL(1ul, oh.get().via.ext.size); + BOOST_CHECK_EQUAL(1, oh.get().via.ext.type()); + BOOST_CHECK_EQUAL(2, oh.get().via.ext.data()[0]); } -TEST(MSGPACK_X3_PARSE, fixext2) +BOOST_AUTO_TEST_CASE(fixext2) { std::stringstream ss; msgpack::packer packer(ss); @@ -615,13 +607,13 @@ TEST(MSGPACK_X3_PARSE, fixext2) packer.pack_ext_body(buf, sizeof(buf)); msgpack::object_handle oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(2ul, oh.get().via.ext.size); - EXPECT_EQ(0, oh.get().via.ext.type()); - EXPECT_TRUE( + BOOST_CHECK_EQUAL(2ul, oh.get().via.ext.size); + BOOST_CHECK_EQUAL(0, oh.get().via.ext.type()); + BOOST_CHECK( std::equal(buf, buf + sizeof(buf), oh.get().via.ext.data())); } -TEST(MSGPACK_X3_PARSE, fixext4) +BOOST_AUTO_TEST_CASE(fixext4) { std::stringstream ss; msgpack::packer packer(ss); @@ -631,13 +623,13 @@ TEST(MSGPACK_X3_PARSE, fixext4) packer.pack_ext_body(buf, sizeof(buf)); msgpack::object_handle oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(4ul, oh.get().via.ext.size); - EXPECT_EQ(1, oh.get().via.ext.type()); - EXPECT_TRUE( + BOOST_CHECK_EQUAL(4ul, oh.get().via.ext.size); + BOOST_CHECK_EQUAL(1, oh.get().via.ext.type()); + BOOST_CHECK( std::equal(buf, buf + sizeof(buf), oh.get().via.ext.data())); } -TEST(MSGPACK_X3_PARSE, fixext8) +BOOST_AUTO_TEST_CASE(fixext8) { std::stringstream ss; msgpack::packer packer(ss); @@ -647,13 +639,13 @@ TEST(MSGPACK_X3_PARSE, fixext8) packer.pack_ext_body(buf, sizeof(buf)); msgpack::object_handle oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(8ul, oh.get().via.ext.size); - EXPECT_EQ(1, oh.get().via.ext.type()); - EXPECT_TRUE( + BOOST_CHECK_EQUAL(8ul, oh.get().via.ext.size); + BOOST_CHECK_EQUAL(1, oh.get().via.ext.type()); + BOOST_CHECK( std::equal(buf, buf + sizeof(buf), oh.get().via.ext.data())); } -TEST(MSGPACK_X3_PARSE, fixext16) +BOOST_AUTO_TEST_CASE(fixext16) { std::stringstream ss; msgpack::packer packer(ss); @@ -663,13 +655,13 @@ TEST(MSGPACK_X3_PARSE, fixext16) packer.pack_ext_body(buf, sizeof(buf)); msgpack::object_handle oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(16ul, oh.get().via.ext.size); - EXPECT_EQ(1, oh.get().via.ext.type()); - EXPECT_TRUE( + BOOST_CHECK_EQUAL(16ul, oh.get().via.ext.size); + BOOST_CHECK_EQUAL(1, oh.get().via.ext.type()); + BOOST_CHECK( std::equal(buf, buf + sizeof(buf), oh.get().via.ext.data())); } -TEST(MSGPACK_X3_PARSE, ext_0) +BOOST_AUTO_TEST_CASE(ext_0) { std::size_t const size = 0; std::stringstream ss; @@ -678,11 +670,11 @@ TEST(MSGPACK_X3_PARSE, ext_0) packer.pack_ext(size, 77); msgpack::object_handle oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(size, oh.get().via.ext.size); - EXPECT_EQ(77, oh.get().via.ext.type()); + BOOST_CHECK_EQUAL(size, oh.get().via.ext.size); + BOOST_CHECK_EQUAL(77, oh.get().via.ext.type()); } -TEST(MSGPACK_X3_PARSE, ext_255) +BOOST_AUTO_TEST_CASE(ext_255) { std::size_t const size = 255; std::stringstream ss; @@ -694,13 +686,13 @@ TEST(MSGPACK_X3_PARSE, ext_255) msgpack::object_handle oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(size, oh.get().via.ext.size); - EXPECT_EQ(77, oh.get().via.ext.type()); - EXPECT_TRUE( + BOOST_CHECK_EQUAL(size, oh.get().via.ext.size); + BOOST_CHECK_EQUAL(77, oh.get().via.ext.type()); + BOOST_CHECK( std::equal(buf, buf + sizeof(buf), oh.get().via.ext.data())); } -TEST(MSGPACK_X3_PARSE, ext_256) +BOOST_AUTO_TEST_CASE(ext_256) { std::size_t const size = 256; std::stringstream ss; @@ -712,13 +704,13 @@ TEST(MSGPACK_X3_PARSE, ext_256) msgpack::object_handle oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(size, oh.get().via.ext.size); - EXPECT_EQ(77, oh.get().via.ext.type()); - EXPECT_TRUE( + BOOST_CHECK_EQUAL(size, oh.get().via.ext.size); + BOOST_CHECK_EQUAL(77, oh.get().via.ext.type()); + BOOST_CHECK( std::equal(buf, buf + sizeof(buf), oh.get().via.ext.data())); } -TEST(MSGPACK_X3_PARSE, ext_65535) +BOOST_AUTO_TEST_CASE(ext_65535) { std::size_t const size = 65535; std::stringstream ss; @@ -730,13 +722,13 @@ TEST(MSGPACK_X3_PARSE, ext_65535) msgpack::object_handle oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(size, oh.get().via.ext.size); - EXPECT_EQ(77, oh.get().via.ext.type()); - EXPECT_TRUE( + BOOST_CHECK_EQUAL(size, oh.get().via.ext.size); + BOOST_CHECK_EQUAL(77, oh.get().via.ext.type()); + BOOST_CHECK( std::equal(buf, buf + sizeof(buf), oh.get().via.ext.data())); } -TEST(MSGPACK_X3_PARSE, ext_65536) +BOOST_AUTO_TEST_CASE(ext_65536) { std::size_t const size = 65536; std::stringstream ss; @@ -748,13 +740,13 @@ TEST(MSGPACK_X3_PARSE, ext_65536) msgpack::object_handle oh = msgpack::unpack(ss.str().begin(), ss.str().end()); - EXPECT_EQ(size, oh.get().via.ext.size); - EXPECT_EQ(77, oh.get().via.ext.type()); - EXPECT_TRUE( + BOOST_CHECK_EQUAL(size, oh.get().via.ext.size); + BOOST_CHECK_EQUAL(77, oh.get().via.ext.type()); + BOOST_CHECK( std::equal(buf, buf + sizeof(buf), oh.get().via.ext.data())); } -TEST(MSGPACK_X3_PARSE, unpack_referenced_1) +BOOST_AUTO_TEST_CASE(unpack_referenced_1) { std::string v = "ABC"; std::stringstream ss; @@ -763,11 +755,11 @@ TEST(MSGPACK_X3_PARSE, unpack_referenced_1) bool r; msgpack::object_handle oh = msgpack::unpack(ss.str().begin(), ss.str().end(), r); - EXPECT_FALSE(r); - EXPECT_EQ(v, oh.get().as()); + BOOST_CHECK(!r); + BOOST_CHECK_EQUAL(v, oh.get().as()); } -TEST(MSGPACK_X3_PARSE, unpack_referenced_2) +BOOST_AUTO_TEST_CASE(unpack_referenced_2) { std::string v = "ABC"; std::stringstream ss; @@ -785,11 +777,11 @@ TEST(MSGPACK_X3_PARSE, unpack_referenced_2) return true; } ); - EXPECT_TRUE(r); - EXPECT_EQ(v, oh.get().as()); + BOOST_CHECK(r); + BOOST_CHECK_EQUAL(v, oh.get().as()); } -TEST(MSGPACK_X3_PARSE, unpack_zone_1) +BOOST_AUTO_TEST_CASE(unpack_zone_1) { std::string v = "ABC"; std::stringstream ss; @@ -798,10 +790,10 @@ TEST(MSGPACK_X3_PARSE, unpack_zone_1) msgpack::zone z; msgpack::object obj = msgpack::unpack(z, ss.str().begin(), ss.str().end()); - EXPECT_EQ(v, obj.as()); + BOOST_CHECK_EQUAL(v, obj.as()); } -TEST(MSGPACK_X3_PARSE, unpack_zone_2) +BOOST_AUTO_TEST_CASE(unpack_zone_2) { std::string v = "ABC"; std::stringstream ss; @@ -811,13 +803,13 @@ TEST(MSGPACK_X3_PARSE, unpack_zone_2) bool r; msgpack::object obj = msgpack::unpack(z, ss.str().begin(), ss.str().end(), r); - EXPECT_EQ(v, obj.as()); + BOOST_CHECK_EQUAL(v, obj.as()); - EXPECT_FALSE(r); - EXPECT_EQ(v, obj.as()); + BOOST_CHECK(!r); + BOOST_CHECK_EQUAL(v, obj.as()); } -TEST(MSGPACK_X3_PARSE, unpack_zone_3) +BOOST_AUTO_TEST_CASE(unpack_zone_3) { std::string v = "ABC"; std::stringstream ss; @@ -837,8 +829,8 @@ TEST(MSGPACK_X3_PARSE, unpack_zone_3) return true; } ); - EXPECT_TRUE(r); - EXPECT_EQ(v, obj.as()); + BOOST_CHECK(r); + BOOST_CHECK_EQUAL(v, obj.as()); } #endif // defined(MSGPACK_USE_X3_PARSE) && MSGPACK_DEFAULT_API_VERSION >= 2 diff --git a/test/object.cpp b/test/object.cpp index 6cc68b4b..1f6d7bbd 100644 --- a/test/object.cpp +++ b/test/object.cpp @@ -1,15 +1,7 @@ #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) - -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE object +#include enum enum_test { elem @@ -70,7 +62,7 @@ std::ostream& operator<<(std::ostream& o, const myclass& m) } -TEST(object, convert) +BOOST_AUTO_TEST_CASE(convert) { myclass m1(1, "custom"); @@ -83,11 +75,11 @@ TEST(object, convert) myclass m2; oh.get().convert(m2); - EXPECT_EQ(m1, m2); + BOOST_CHECK_EQUAL(m1, m2); } -TEST(object, as) +BOOST_AUTO_TEST_CASE(as) { myclass m1(1, "custom"); @@ -97,10 +89,10 @@ TEST(object, as) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(m1, oh.get().as()); + BOOST_CHECK_EQUAL(m1, oh.get().as()); } -TEST(object, cross_zone_copy) +BOOST_AUTO_TEST_CASE(cross_zone_copy) { myclass m1(1, "custom"); m1.vec.push_back(1.0); @@ -121,30 +113,30 @@ TEST(object, cross_zone_copy) obj1 << obj2; - EXPECT_EQ(obj1.via.array.ptr[2].via.array.ptr[0].via.f64, 1.0); + BOOST_CHECK_EQUAL(obj1.via.array.ptr[2].via.array.ptr[0].via.f64, 1.0); #if defined(MSGPACK_USE_LEGACY_NAME_AS_FLOAT) - EXPECT_EQ(obj1.via.array.ptr[2].via.array.ptr[0].via.dec, 1.0); + BOOST_CHECK_EQUAL(obj1.via.array.ptr[2].via.array.ptr[0].via.dec, 1.0); #endif // MSGPACK_USE_LEGACY_NAME_AS_FLOAT - EXPECT_EQ(obj1.via.array.ptr[3].via.map.ptr[0].key.via.str.ptr[0], 'o'); - EXPECT_EQ(obj1.via.array.ptr[3].via.map.ptr[0].val.via.bin.ptr[0], 't'); - EXPECT_NE( + BOOST_CHECK_EQUAL(obj1.via.array.ptr[3].via.map.ptr[0].key.via.str.ptr[0], 'o'); + BOOST_CHECK_EQUAL(obj1.via.array.ptr[3].via.map.ptr[0].val.via.bin.ptr[0], 't'); + BOOST_CHECK_NE( obj1.via.array.ptr[2].via.array.ptr, obj2.via.array.ptr[2].via.array.ptr); - EXPECT_NE( + BOOST_CHECK_NE( obj1.via.array.ptr[3].via.map.ptr, obj2.via.array.ptr[3].via.map.ptr); - EXPECT_NE( - obj1.via.array.ptr[3].via.map.ptr[0].key.via.str.ptr, + BOOST_CHECK( + obj1.via.array.ptr[3].via.map.ptr[0].key.via.str.ptr != obj2.via.array.ptr[3].via.map.ptr[0].key.via.str.ptr); - EXPECT_NE( - obj1.via.array.ptr[3].via.map.ptr[0].val.via.bin.ptr, + BOOST_CHECK( + obj1.via.array.ptr[3].via.map.ptr[0].val.via.bin.ptr != obj2.via.array.ptr[3].via.map.ptr[0].val.via.bin.ptr); } - EXPECT_EQ(m1, obj1.as()); + BOOST_CHECK_EQUAL(m1, obj1.as()); } -TEST(object, cross_zone_copy_construct) +BOOST_AUTO_TEST_CASE(cross_zone_copy_construct) { myclass m1(1, "custom"); m1.vec.push_back(1.0); @@ -162,28 +154,28 @@ TEST(object, cross_zone_copy_construct) msgpack::object obj1(obj2, z1); - EXPECT_EQ(obj1.via.array.ptr[2].via.array.ptr[0].via.f64, 1.0); + BOOST_CHECK_EQUAL(obj1.via.array.ptr[2].via.array.ptr[0].via.f64, 1.0); #if defined(MSGPACK_USE_LEGACY_NAME_AS_FLOAT) - EXPECT_EQ(obj1.via.array.ptr[2].via.array.ptr[0].via.dec, 1.0); + BOOST_CHECK_EQUAL(obj1.via.array.ptr[2].via.array.ptr[0].via.dec, 1.0); #endif // MSGPACK_USE_LEGACY_NAME_AS_FLOAT - EXPECT_EQ(obj1.via.array.ptr[3].via.map.ptr[0].key.via.str.ptr[0], 'o'); - EXPECT_EQ(obj1.via.array.ptr[3].via.map.ptr[0].val.via.bin.ptr[0], 't'); - EXPECT_NE( + BOOST_CHECK_EQUAL(obj1.via.array.ptr[3].via.map.ptr[0].key.via.str.ptr[0], 'o'); + BOOST_CHECK_EQUAL(obj1.via.array.ptr[3].via.map.ptr[0].val.via.bin.ptr[0], 't'); + BOOST_CHECK_NE( obj1.via.array.ptr[2].via.array.ptr, obj2.via.array.ptr[2].via.array.ptr); - EXPECT_NE( + BOOST_CHECK_NE( obj1.via.array.ptr[3].via.map.ptr, obj2.via.array.ptr[3].via.map.ptr); - EXPECT_NE( - obj1.via.array.ptr[3].via.map.ptr[0].key.via.str.ptr, + BOOST_CHECK( + obj1.via.array.ptr[3].via.map.ptr[0].key.via.str.ptr != obj2.via.array.ptr[3].via.map.ptr[0].key.via.str.ptr); - EXPECT_NE( - obj1.via.array.ptr[3].via.map.ptr[0].val.via.bin.ptr, + BOOST_CHECK( + obj1.via.array.ptr[3].via.map.ptr[0].val.via.bin.ptr != obj2.via.array.ptr[3].via.map.ptr[0].val.via.bin.ptr); - EXPECT_EQ(m1, obj1.as()); + BOOST_CHECK_EQUAL(m1, obj1.as()); } -TEST(object, cross_zone_copy_ext) +BOOST_AUTO_TEST_CASE(cross_zone_copy_ext) { msgpack::zone z1; msgpack::zone z2; @@ -198,15 +190,15 @@ TEST(object, cross_zone_copy_ext) msgpack::object::with_zone obj2(z2); obj2 << obj1; - EXPECT_EQ(obj2.via.ext.size, 1u); - EXPECT_EQ(obj2.via.ext.ptr[0], 1); - EXPECT_EQ(obj2.via.ext.ptr[1], 2); - EXPECT_NE( - obj1.via.ext.ptr, + BOOST_CHECK_EQUAL(obj2.via.ext.size, 1u); + BOOST_CHECK_EQUAL(obj2.via.ext.ptr[0], 1); + BOOST_CHECK_EQUAL(obj2.via.ext.ptr[1], 2); + BOOST_CHECK( + obj1.via.ext.ptr != obj2.via.ext.ptr); } -TEST(object, cross_zone_copy_construct_ext) +BOOST_AUTO_TEST_CASE(cross_zone_copy_construct_ext) { msgpack::zone z1; msgpack::zone z2; @@ -220,155 +212,153 @@ TEST(object, cross_zone_copy_construct_ext) obj1.via.ext.size = 1; msgpack::object obj2(obj1, z2); - EXPECT_EQ(obj2.via.ext.size, 1u); - EXPECT_EQ(obj2.via.ext.ptr[0], 1); - EXPECT_EQ(obj2.via.ext.ptr[1], 2); - EXPECT_NE( - obj1.via.ext.ptr, + BOOST_CHECK_EQUAL(obj2.via.ext.size, 1u); + BOOST_CHECK_EQUAL(obj2.via.ext.ptr[0], 1); + BOOST_CHECK_EQUAL(obj2.via.ext.ptr[1], 2); + BOOST_CHECK( + obj1.via.ext.ptr != obj2.via.ext.ptr); } -TEST(object, print) +BOOST_AUTO_TEST_CASE(print) { msgpack::object obj; - std::cout << obj << std::endl; + std::stringstream output; + output << obj; + BOOST_CHECK_EQUAL(output.str(), "null"); } - -TEST(object, is_nil) +BOOST_AUTO_TEST_CASE(is_nil) { msgpack::object obj; - EXPECT_TRUE(obj.is_nil()); + BOOST_CHECK(obj.is_nil()); } - -TEST(object, type_error) +BOOST_AUTO_TEST_CASE(type_error) { msgpack::object obj(1); - EXPECT_THROW(obj.as(), msgpack::type_error); - EXPECT_THROW(obj.as >(), msgpack::type_error); - EXPECT_EQ(1, obj.as()); - EXPECT_EQ(1, obj.as()); - EXPECT_EQ(1u, obj.as()); - EXPECT_EQ(1u, obj.as()); + BOOST_CHECK_THROW(obj.as(), msgpack::type_error); + BOOST_CHECK_THROW(obj.as >(), msgpack::type_error); + BOOST_CHECK_EQUAL(1, obj.as()); + BOOST_CHECK_EQUAL(1, obj.as()); + BOOST_CHECK_EQUAL(1u, obj.as()); + BOOST_CHECK_EQUAL(1u, obj.as()); } - -TEST(object, equal_primitive) +BOOST_AUTO_TEST_CASE(equal_primitive) { msgpack::object obj_nil; - EXPECT_EQ(obj_nil, msgpack::object()); + BOOST_CHECK_EQUAL(obj_nil, msgpack::object()); msgpack::object obj_int(1); - EXPECT_EQ(obj_int, msgpack::object(1)); - EXPECT_EQ(obj_int, 1); + BOOST_CHECK_EQUAL(obj_int, msgpack::object(1)); + BOOST_CHECK_EQUAL(obj_int, 1); msgpack::object obj_float(1.2); - EXPECT_EQ(obj_float, msgpack::object(1.2)); - EXPECT_EQ(obj_float, 1.2); + BOOST_CHECK_EQUAL(obj_float, msgpack::object(1.2)); + BOOST_CHECK_EQUAL(obj_float, 1.2); msgpack::object obj_bool(true); - EXPECT_EQ(obj_bool, msgpack::object(true)); - EXPECT_EQ(obj_bool, true); + BOOST_CHECK_EQUAL(obj_bool, msgpack::object(true)); + BOOST_CHECK_EQUAL(obj_bool, true); } - -TEST(object, construct_primitive) +BOOST_AUTO_TEST_CASE(construct_primitive) { msgpack::object obj_nil; - EXPECT_EQ(msgpack::type::NIL, obj_nil.type); + BOOST_CHECK_EQUAL(msgpack::type::NIL, obj_nil.type); msgpack::object obj_uint(1); - EXPECT_EQ(msgpack::type::POSITIVE_INTEGER, obj_uint.type); - EXPECT_EQ(1u, obj_uint.via.u64); + BOOST_CHECK_EQUAL(msgpack::type::POSITIVE_INTEGER, obj_uint.type); + BOOST_CHECK_EQUAL(1u, obj_uint.via.u64); msgpack::object obj_int(-1); - EXPECT_EQ(msgpack::type::NEGATIVE_INTEGER, obj_int.type); - EXPECT_EQ(-1, obj_int.via.i64); + BOOST_CHECK_EQUAL(msgpack::type::NEGATIVE_INTEGER, obj_int.type); + BOOST_CHECK_EQUAL(-1, obj_int.via.i64); msgpack::object obj_float(1.2F); - EXPECT_EQ(msgpack::type::FLOAT32, obj_float.type); - EXPECT_EQ(1.2F, obj_float.via.f64); + BOOST_CHECK_EQUAL(msgpack::type::FLOAT32, obj_float.type); + BOOST_CHECK_EQUAL(1.2F, obj_float.via.f64); msgpack::object obj_double(1.2); - EXPECT_EQ(msgpack::type::FLOAT64, obj_double.type); - EXPECT_EQ(msgpack::type::FLOAT, obj_double.type); - EXPECT_EQ(1.2, obj_double.via.f64); + BOOST_CHECK_EQUAL(msgpack::type::FLOAT64, obj_double.type); + BOOST_CHECK_EQUAL(msgpack::type::FLOAT, obj_double.type); + BOOST_CHECK_EQUAL(1.2, obj_double.via.f64); #if defined(MSGPACK_USE_LEGACY_NAME_AS_FLOAT) - EXPECT_EQ(msgpack::type::DOUBLE, obj_double.type); - EXPECT_EQ(1.2, obj_double.via.dec); + BOOST_CHECK_EQUAL(msgpack::type::DOUBLE, obj_double.type); + BOOST_CHECK_EQUAL(1.2, obj_double.via.dec); #endif // MSGPACK_USE_LEGACY_NAME_AS_FLOAT msgpack::object obj_bool(true); - EXPECT_EQ(msgpack::type::BOOLEAN, obj_bool.type); - EXPECT_EQ(true, obj_bool.via.boolean); + BOOST_CHECK_EQUAL(msgpack::type::BOOLEAN, obj_bool.type); + BOOST_CHECK_EQUAL(true, obj_bool.via.boolean); } -TEST(object, construct_enum) +BOOST_AUTO_TEST_CASE(construct_enum) { msgpack::object obj(elem); - EXPECT_EQ(msgpack::type::POSITIVE_INTEGER, obj.type); - EXPECT_EQ(static_cast(elem), obj.via.u64); + BOOST_CHECK_EQUAL(msgpack::type::POSITIVE_INTEGER, obj.type); + BOOST_CHECK_EQUAL(static_cast(elem), obj.via.u64); } #if !defined(MSGPACK_USE_CPP03) -TEST(object, construct_enum_newstyle) +BOOST_AUTO_TEST_CASE(construct_enum_newstyle) { msgpack::object obj(enum_test::elem); - EXPECT_EQ(msgpack::type::POSITIVE_INTEGER, obj.type); - EXPECT_EQ(elem, obj.via.u64); + BOOST_CHECK_EQUAL(msgpack::type::POSITIVE_INTEGER, obj.type); + BOOST_CHECK_EQUAL(elem, obj.via.u64); } #endif // !defined(MSGPACK_USE_CPP03) -TEST(object, construct_enum_outer) +BOOST_AUTO_TEST_CASE(construct_enum_outer) { msgpack::object obj(outer_enum::elem); - EXPECT_EQ(msgpack::type::POSITIVE_INTEGER, obj.type); - EXPECT_EQ(static_cast(elem), obj.via.u64); + BOOST_CHECK_EQUAL(msgpack::type::POSITIVE_INTEGER, obj.type); + BOOST_CHECK_EQUAL(static_cast(elem), obj.via.u64); } #if !defined(MSGPACK_USE_CPP03) -TEST(object, construct_enum_outer_newstyle) +BOOST_AUTO_TEST_CASE(construct_enum_outer_newstyle) { msgpack::object obj(outer_enum::enum_test::elem); - EXPECT_EQ(msgpack::type::POSITIVE_INTEGER, obj.type); - EXPECT_EQ(elem, obj.via.u64); + BOOST_CHECK_EQUAL(msgpack::type::POSITIVE_INTEGER, obj.type); + BOOST_CHECK_EQUAL(elem, obj.via.u64); } -TEST(object, construct_class_enum) +BOOST_AUTO_TEST_CASE(construct_class_enum) { msgpack::object obj(enum_class_test::elem); - EXPECT_EQ(msgpack::type::POSITIVE_INTEGER, obj.type); - EXPECT_EQ(elem, obj.via.u64); + BOOST_CHECK_EQUAL(msgpack::type::POSITIVE_INTEGER, obj.type); + BOOST_CHECK_EQUAL(elem, obj.via.u64); } -TEST(object, construct_class_enum_outer) +BOOST_AUTO_TEST_CASE(construct_class_enum_outer) { msgpack::object obj(outer_enum_class::enum_class_test::elem); - EXPECT_EQ(msgpack::type::POSITIVE_INTEGER, obj.type); - EXPECT_EQ(elem, obj.via.u64); + BOOST_CHECK_EQUAL(msgpack::type::POSITIVE_INTEGER, obj.type); + BOOST_CHECK_EQUAL(elem, obj.via.u64); } #endif // !defined(MSGPACK_USE_CPP03) -TEST(object, clone_int) +BOOST_AUTO_TEST_CASE(clone_int) { int v = 0; msgpack::object obj(v); std::size_t sz1 = msgpack::aligned_zone_size(obj); msgpack::object_handle h = msgpack::clone(obj); - EXPECT_EQ(h.get(), obj); - EXPECT_EQ(sz1, msgpack::aligned_zone_size(h.get())); + BOOST_CHECK_EQUAL(h.get(), obj); + BOOST_CHECK_EQUAL(sz1, msgpack::aligned_zone_size(h.get())); h = msgpack::clone(obj); - EXPECT_EQ(h.get(), obj); - EXPECT_EQ(sz1, msgpack::aligned_zone_size(h.get())); + BOOST_CHECK_EQUAL(h.get(), obj); + BOOST_CHECK_EQUAL(sz1, msgpack::aligned_zone_size(h.get())); } -TEST(object, clone_str) +BOOST_AUTO_TEST_CASE(clone_str) { msgpack::object_handle oh; std::string v = "123456789"; @@ -377,17 +367,17 @@ TEST(object, clone_str) msgpack::object obj(v, z); std::size_t sz1 = msgpack::aligned_zone_size(obj); msgpack::object_handle h = msgpack::clone(obj); - EXPECT_EQ(h.get(), obj); - EXPECT_EQ(sz1, msgpack::aligned_zone_size(h.get())); + BOOST_CHECK_EQUAL(h.get(), obj); + BOOST_CHECK_EQUAL(sz1, msgpack::aligned_zone_size(h.get())); h = msgpack::clone(obj); - EXPECT_EQ(h.get(), obj); - EXPECT_EQ(sz1, msgpack::aligned_zone_size(h.get())); + BOOST_CHECK_EQUAL(h.get(), obj); + BOOST_CHECK_EQUAL(sz1, msgpack::aligned_zone_size(h.get())); oh = msgpack::move(h); } - EXPECT_EQ(v, oh.get().as()); + BOOST_CHECK_EQUAL(v, oh.get().as()); } -TEST(object, clone_bin) +BOOST_AUTO_TEST_CASE(clone_bin) { msgpack::object_handle oh; std::vector v; @@ -399,19 +389,19 @@ TEST(object, clone_bin) msgpack::object obj(v, z); std::size_t sz1 = msgpack::aligned_zone_size(obj); msgpack::object_handle h = msgpack::clone(obj); - EXPECT_EQ(h.get(), obj); - EXPECT_EQ(sz1, msgpack::aligned_zone_size(h.get())); + BOOST_CHECK_EQUAL(h.get(), obj); + BOOST_CHECK_EQUAL(sz1, msgpack::aligned_zone_size(h.get())); h = msgpack::clone(obj); - EXPECT_EQ(h.get(), obj); - EXPECT_EQ(sz1, msgpack::aligned_zone_size(h.get())); + BOOST_CHECK_EQUAL(h.get(), obj); + BOOST_CHECK_EQUAL(sz1, msgpack::aligned_zone_size(h.get())); oh = msgpack::move(h); } std::vector v2 = oh.get().as >(); - EXPECT_EQ(v.size(), v2.size()); - EXPECT_TRUE(equal(v.begin(), v.end(), v2.begin())); + BOOST_CHECK_EQUAL(v.size(), v2.size()); + BOOST_CHECK(equal(v.begin(), v.end(), v2.begin())); } -TEST(object, clone_array) +BOOST_AUTO_TEST_CASE(clone_array) { msgpack::object_handle oh; std::vector v; @@ -423,19 +413,19 @@ TEST(object, clone_array) msgpack::object obj(v, z); std::size_t sz1 = msgpack::aligned_zone_size(obj); msgpack::object_handle h = msgpack::clone(obj); - EXPECT_EQ(h.get(), obj); - EXPECT_EQ(sz1, msgpack::aligned_zone_size(h.get())); + BOOST_CHECK_EQUAL(h.get(), obj); + BOOST_CHECK_EQUAL(sz1, msgpack::aligned_zone_size(h.get())); h = msgpack::clone(obj); - EXPECT_EQ(h.get(), obj); - EXPECT_EQ(sz1, msgpack::aligned_zone_size(h.get())); + BOOST_CHECK_EQUAL(h.get(), obj); + BOOST_CHECK_EQUAL(sz1, msgpack::aligned_zone_size(h.get())); oh = msgpack::move(h); } std::vector v2 = oh.get().as >(); - EXPECT_EQ(v.size(), v2.size()); - EXPECT_TRUE(equal(v.begin(), v.end(), v2.begin())); + BOOST_CHECK_EQUAL(v.size(), v2.size()); + BOOST_CHECK(equal(v.begin(), v.end(), v2.begin())); } -TEST(object, clone_map) +BOOST_AUTO_TEST_CASE(clone_map) { msgpack::object_handle oh; std::map v; @@ -447,45 +437,128 @@ TEST(object, clone_map) msgpack::object obj(v, z); std::size_t sz1 = msgpack::aligned_zone_size(obj); msgpack::object_handle h = msgpack::clone(obj); - EXPECT_EQ(h.get(), obj); - EXPECT_EQ(sz1, msgpack::aligned_zone_size(h.get())); + BOOST_CHECK_EQUAL(h.get(), obj); + BOOST_CHECK_EQUAL(sz1, msgpack::aligned_zone_size(h.get())); h = msgpack::clone(obj); - EXPECT_EQ(h.get(), obj); - EXPECT_EQ(sz1, msgpack::aligned_zone_size(h.get())); + BOOST_CHECK_EQUAL(h.get(), obj); + BOOST_CHECK_EQUAL(sz1, msgpack::aligned_zone_size(h.get())); oh = msgpack::move(h); } std::map v2 = oh.get().as >(); - EXPECT_EQ(v.size(), v2.size()); - EXPECT_TRUE(equal(v.begin(), v.end(), v2.begin())); + BOOST_CHECK_EQUAL(v.size(), v2.size()); + BOOST_CHECK(equal(v.begin(), v.end(), v2.begin())); } -TEST(object, pack_float) +BOOST_AUTO_TEST_CASE(pack_float) { msgpack::object obj(1.2F); std::stringstream ss1; msgpack::pack(ss1, obj); std::stringstream ss2; msgpack::pack(ss2, 1.2F); - EXPECT_EQ(static_cast(5), ss1.str().size()); - EXPECT_EQ(ss1.str(), ss2.str()); + BOOST_CHECK_EQUAL(static_cast(5), ss1.str().size()); + BOOST_CHECK_EQUAL(ss1.str(), ss2.str()); } -TEST(object, pack_double) +BOOST_AUTO_TEST_CASE(pack_double) { msgpack::object obj(1.2); std::stringstream ss1; msgpack::pack(ss1, obj); std::stringstream ss2; msgpack::pack(ss2, 1.2); - EXPECT_EQ(static_cast(9), ss1.str().size()); - EXPECT_EQ(ss1.str(), ss2.str()); + BOOST_CHECK_EQUAL(static_cast(9), ss1.str().size()); + BOOST_CHECK_EQUAL(ss1.str(), ss2.str()); } -TEST(object, handle_operators) +BOOST_AUTO_TEST_CASE(handle_operators) { int i = 1; msgpack::object obj(i); msgpack::object_handle oh = msgpack::clone(obj); - EXPECT_EQ(oh.get(), *oh); - EXPECT_EQ(oh->as(), oh.get().as()); + BOOST_CHECK_EQUAL(oh.get(), *oh); + BOOST_CHECK_EQUAL(oh->as(), oh.get().as()); } + +const unsigned int kLoop = 1000; +const unsigned int kElements = 100; + +BOOST_AUTO_TEST_CASE(vector_char) +{ + for (unsigned int k = 0; k < kLoop; k++) { + std::vector v1; + v1.push_back(1); + for (unsigned int i = 1; i < kElements; i++) + v1.push_back(static_cast(i)); + msgpack::object obj(v1); + BOOST_CHECK(obj.as >() == v1); + v1.front() = 42; + // obj refer to v1 + BOOST_CHECK_EQUAL(obj.as >().front(), 42); + } +} + +BOOST_AUTO_TEST_CASE(vector_unsigned_char) +{ + if (!msgpack::is_same::value) return; + for (unsigned int k = 0; k < kLoop; k++) { + std::vector v1; + v1.push_back(1); + for (unsigned int i = 1; i < kElements; i++) + v1.push_back(static_cast(i)); + msgpack::object obj(v1); + BOOST_CHECK(obj.as >() == v1); + v1.front() = 42; + // obj refer to v1 + BOOST_CHECK_EQUAL(obj.as >().front(), 42); + } +} + +BOOST_AUTO_TEST_CASE(raw_ref) +{ + std::string s = "abc"; + msgpack::type::raw_ref v(s.data(), static_cast(s.size())); + msgpack::zone z; + msgpack::object obj(v); + BOOST_CHECK(obj.as() == v); + s[0] = 'd'; + BOOST_CHECK(obj.as() == v); +} + +#if MSGPACK_CPP_VERSION >= 201703 + +BOOST_AUTO_TEST_CASE(array_char) +{ + typedef std::array test_t; + for (unsigned int k = 0; k < kLoop; k++) { + test_t v1; + v1[0] = 1; + for (unsigned int i = 1; i < kElements; i++) + v1[i] = static_cast(rand()); + msgpack::object obj(v1); + BOOST_CHECK(obj.as() == v1); + v1.front() = 42; + // obj refer to v1 + BOOST_CHECK_EQUAL(obj.as().front(), 42); + } +} + + +BOOST_AUTO_TEST_CASE(array_unsigned_char) +{ + if (!msgpack::is_same::value) return; + typedef std::array test_t; + for (unsigned int k = 0; k < kLoop; k++) { + test_t v1; + v1[0] = 1; + for (unsigned int i = 1; i < kElements; i++) + v1[i] = static_cast(rand()); + msgpack::object obj(v1); + BOOST_CHECK(obj.as() == v1); + v1.front() = 42; + // obj refer to v1 + BOOST_CHECK_EQUAL(obj.as().front(), 42); + } +} + +#endif // MSGPACK_CPP_VERSION >= 201703 diff --git a/test/object_with_zone.cpp b/test/object_with_zone.cpp index e454d778..250a172b 100644 --- a/test/object_with_zone.cpp +++ b/test/object_with_zone.cpp @@ -1,15 +1,7 @@ #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) - -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE object_with_zone +#include #include @@ -50,475 +42,432 @@ MSGPACK_ADD_ENUM(outer_enum_class::enum_class_test); #endif // !defined(MSGPACK_USE_CPP03) - -using namespace std; - const unsigned int kLoop = 1000; const unsigned int kElements = 100; const double kEPS = 1e-10; // bool -TEST(object_with_zone, bool) +BOOST_AUTO_TEST_CASE(bool_) { bool v = true; msgpack::zone z; msgpack::object obj(v, z); - EXPECT_EQ(obj.as(), v); + BOOST_CHECK_EQUAL(obj.as(), v); v = false; - EXPECT_TRUE(obj.as()); + BOOST_CHECK(obj.as()); } // char -TEST(object_with_zone, char) +BOOST_AUTO_TEST_CASE(char_) { char v = 1; msgpack::zone z; msgpack::object obj(v, z); - EXPECT_EQ(obj.as(), v); + BOOST_CHECK_EQUAL(obj.as(), v); v = 2; - EXPECT_EQ(obj.as(), 1); + BOOST_CHECK_EQUAL(obj.as(), 1); } // signed integer family -TEST(object_with_zone, signed_char) +BOOST_AUTO_TEST_CASE(signed_char) { signed char v = -1; msgpack::zone z; msgpack::object obj(v, z); - EXPECT_EQ(obj.as(), v); + BOOST_CHECK_EQUAL(obj.as(), v); v = -2; - EXPECT_EQ(obj.as(), -1); + BOOST_CHECK_EQUAL(obj.as(), -1); } -TEST(object_with_zone, signed_short) +BOOST_AUTO_TEST_CASE(signed_short) { signed short v = -1; msgpack::zone z; msgpack::object obj(v, z); - EXPECT_EQ(obj.as(), v); + BOOST_CHECK_EQUAL(obj.as(), v); v = -2; - EXPECT_EQ(obj.as(), -1); + BOOST_CHECK_EQUAL(obj.as(), -1); } -TEST(object_with_zone, signed_int) +BOOST_AUTO_TEST_CASE(signed_int) { signed int v = -1; msgpack::zone z; msgpack::object obj(v, z); - EXPECT_EQ(obj.as(), v); + BOOST_CHECK_EQUAL(obj.as(), v); v = -2; - EXPECT_EQ(obj.as(), -1); + BOOST_CHECK_EQUAL(obj.as(), -1); } -TEST(object_with_zone, signed_long) +BOOST_AUTO_TEST_CASE(signed_long) { signed long v = -1; msgpack::zone z; msgpack::object obj(v, z); - EXPECT_EQ(obj.as(), v); + BOOST_CHECK_EQUAL(obj.as(), v); v = -2; - EXPECT_EQ(obj.as(), -1); + BOOST_CHECK_EQUAL(obj.as(), -1); } -TEST(object_with_zone, signed_long_long) +BOOST_AUTO_TEST_CASE(signed_long_long) { signed long long v = -1; msgpack::zone z; msgpack::object obj(v, z); - EXPECT_EQ(obj.as(), v); + BOOST_CHECK_EQUAL(obj.as(), v); v = -2; - EXPECT_EQ(obj.as(), -1); + BOOST_CHECK_EQUAL(obj.as(), -1); } // unsigned integer family -TEST(object_with_zone, unsigned_char) +BOOST_AUTO_TEST_CASE(unsigned_char) { unsigned char v = 1; msgpack::zone z; msgpack::object obj(v, z); - EXPECT_EQ(obj.as(), v); + BOOST_CHECK_EQUAL(obj.as(), v); v = 2; - EXPECT_EQ(obj.as(), 1); + BOOST_CHECK_EQUAL(obj.as(), 1); } -TEST(object_with_zone, unsigned_short) +BOOST_AUTO_TEST_CASE(unsigned_short) { unsigned short v = 1; msgpack::zone z; msgpack::object obj(v, z); - EXPECT_EQ(obj.as(), v); + BOOST_CHECK_EQUAL(obj.as(), v); v = 2; - EXPECT_EQ(obj.as(), 1); + BOOST_CHECK_EQUAL(obj.as(), 1); } -TEST(object_with_zone, unsigned_int) +BOOST_AUTO_TEST_CASE(unsigned_int) { unsigned int v = 1; msgpack::zone z; msgpack::object obj(v, z); - EXPECT_EQ(obj.as(), v); + BOOST_CHECK_EQUAL(obj.as(), v); v = 2; - EXPECT_EQ(obj.as(), 1u); + BOOST_CHECK_EQUAL(obj.as(), 1u); } -TEST(object_with_zone, unsigned_long) +BOOST_AUTO_TEST_CASE(unsigned_long) { unsigned long v = 1; msgpack::zone z; msgpack::object obj(v, z); - EXPECT_EQ(obj.as(), v); + BOOST_CHECK_EQUAL(obj.as(), v); v = 2; - EXPECT_EQ(obj.as(), 1u); + BOOST_CHECK_EQUAL(obj.as(), 1u); } -TEST(object_with_zone, unsigned_long_long) +BOOST_AUTO_TEST_CASE(unsigned_long_long) { unsigned long long v = 1; msgpack::zone z; msgpack::object obj(v, z); - EXPECT_EQ(obj.as(), v); + BOOST_CHECK_EQUAL(obj.as(), v); v = 2; - EXPECT_EQ(obj.as(), 1u); + BOOST_CHECK_EQUAL(obj.as(), 1u); } // float -TEST(object_with_zone, float) +BOOST_AUTO_TEST_CASE(float_) { float v = 1.23f; msgpack::zone z; msgpack::object obj(v, z); - EXPECT_EQ(obj.type, msgpack::type::FLOAT32); - EXPECT_TRUE(fabs(obj.as() - v) <= kEPS); + BOOST_CHECK_EQUAL(obj.type, msgpack::type::FLOAT32); + BOOST_CHECK(fabs(obj.as() - v) <= kEPS); v = 4.56f; - EXPECT_TRUE(fabs(obj.as() - static_cast(1.23)) <= kEPS); + BOOST_CHECK(fabs(obj.as() - static_cast(1.23)) <= kEPS); } // double -TEST(object_with_zone, double) +BOOST_AUTO_TEST_CASE(double_) { double v = 1.23; msgpack::zone z; msgpack::object obj(v, z); - EXPECT_EQ(obj.type, msgpack::type::FLOAT64); - EXPECT_TRUE(fabs(obj.as() - v) <= kEPS); + BOOST_CHECK_EQUAL(obj.type, msgpack::type::FLOAT64); + BOOST_CHECK(fabs(obj.as() - v) <= kEPS); v = 4.56; - EXPECT_TRUE(fabs(obj.as() - 1.23) <= kEPS); + BOOST_CHECK(fabs(obj.as() - 1.23) <= kEPS); } // vector -TEST(object_with_zone, vector) +BOOST_AUTO_TEST_CASE(vector) { for (unsigned int k = 0; k < kLoop; k++) { - vector v1; + std::vector v1; v1.push_back(1); for (unsigned int i = 1; i < kElements; i++) v1.push_back(static_cast(i)); msgpack::zone z; msgpack::object obj(v1, z); - EXPECT_TRUE(obj.as >() == v1); + BOOST_CHECK(obj.as >() == v1); v1.front() = 42; - EXPECT_EQ(obj.as >().front(), 1); + BOOST_CHECK_EQUAL(obj.as >().front(), 1); } } // vector_char -TEST(object_with_zone, vector_char) +BOOST_AUTO_TEST_CASE(vector_char) { for (unsigned int k = 0; k < kLoop; k++) { - vector v1; + std::vector v1; v1.push_back(1); for (unsigned int i = 1; i < kElements; i++) v1.push_back(static_cast(i)); msgpack::zone z; msgpack::object obj(v1, z); - EXPECT_TRUE(obj.as >() == v1); + BOOST_CHECK(obj.as >() == v1); v1.front() = 42; - EXPECT_EQ(obj.as >().front(), 1); + BOOST_CHECK_EQUAL(obj.as >().front(), 1); } } -TEST(object_without_zone, vector_char) -{ - for (unsigned int k = 0; k < kLoop; k++) { - vector v1; - v1.push_back(1); - for (unsigned int i = 1; i < kElements; i++) - v1.push_back(static_cast(i)); - msgpack::object obj(v1); - EXPECT_TRUE(obj.as >() == v1); - v1.front() = 42; - // obj refer to v1 - EXPECT_EQ(obj.as >().front(), 42); - } -} + // vector_unsgined_char -TEST(object_with_zone, vector_unsigned_char) +BOOST_AUTO_TEST_CASE(vector_unsigned_char) { if (!msgpack::is_same::value) return; for (unsigned int k = 0; k < kLoop; k++) { - vector v1; + std::vector v1; v1.push_back(1); for (unsigned int i = 1; i < kElements; i++) v1.push_back(static_cast(i)); msgpack::zone z; msgpack::object obj(v1, z); - EXPECT_TRUE(obj.as >() == v1); + BOOST_CHECK(obj.as >() == v1); v1.front() = 42; - EXPECT_EQ(obj.as >().front(), 1); - } -} - -TEST(object_without_zone, vector_unsigned_char) -{ - if (!msgpack::is_same::value) return; - for (unsigned int k = 0; k < kLoop; k++) { - vector v1; - v1.push_back(1); - for (unsigned int i = 1; i < kElements; i++) - v1.push_back(static_cast(i)); - msgpack::object obj(v1); - EXPECT_TRUE(obj.as >() == v1); - v1.front() = 42; - // obj refer to v1 - EXPECT_EQ(obj.as >().front(), 42); + BOOST_CHECK_EQUAL(obj.as >().front(), 1); } } // list -TEST(object_with_zone, list) +BOOST_AUTO_TEST_CASE(list) { for (unsigned int k = 0; k < kLoop; k++) { - list v1; + std::list v1; v1.push_back(1); for (unsigned int i = 1; i < kElements; i++) v1.push_back(static_cast(i)); msgpack::zone z; msgpack::object obj(v1, z); - EXPECT_TRUE(obj.as >() == v1); + BOOST_CHECK(obj.as >() == v1); v1.front() = 42; - EXPECT_EQ(obj.as >().front(), 1); + BOOST_CHECK_EQUAL(obj.as >().front(), 1); } } // deque -TEST(object_with_zone, deque) +BOOST_AUTO_TEST_CASE(deque) { for (unsigned int k = 0; k < kLoop; k++) { - deque v1; + std::deque v1; v1.push_back(1); for (unsigned int i = 1; i < kElements; i++) v1.push_back(static_cast(i)); msgpack::zone z; msgpack::object obj(v1, z); - EXPECT_TRUE(obj.as >() == v1); + BOOST_CHECK(obj.as >() == v1); v1.front() = 42; - EXPECT_EQ(obj.as >().front(), 1); + BOOST_CHECK_EQUAL(obj.as >().front(), 1); } } // string -TEST(object_with_zone, string) +BOOST_AUTO_TEST_CASE(string) { - string v = "abc"; + std::string v = "abc"; msgpack::zone z; msgpack::object obj(v, z); - EXPECT_EQ(obj.as(), v); + BOOST_CHECK_EQUAL(obj.as(), v); v[0] = 'd'; - EXPECT_EQ(obj.as()[0], 'a'); + BOOST_CHECK_EQUAL(obj.as()[0], 'a'); } #if MSGPACK_DEFAULT_API_VERSION == 1 -TEST(object_without_zone, string) +BOOST_AUTO_TEST_CASE(without_zone_string) { - string v = "abc"; + std::string v = "abc"; msgpack::zone z; msgpack::object obj(v); - EXPECT_EQ(obj.as(), v); + BOOST_CHECK_EQUAL(obj.as(), v); v[0] = 'd'; - EXPECT_EQ(obj.as()[0], 'd'); + BOOST_CHECK_EQUAL(obj.as()[0], 'd'); } #endif // MSGPACK_DEFAULT_API_VERSION == 1 // wstring -TEST(object_with_zone, wstring) +BOOST_AUTO_TEST_CASE(wstring) { - wstring v = L"abc"; + std::wstring v = L"abc"; msgpack::zone z; msgpack::object obj(v, z); - EXPECT_EQ(obj.as(), v); + BOOST_CHECK(obj.as() == v); v[0] = 'd'; - EXPECT_EQ(obj.as()[0], L'a'); + BOOST_CHECK(obj.as()[0] == L'a'); } // char* -TEST(object_with_zone, char_ptr) +BOOST_AUTO_TEST_CASE(char_ptr) { char v[] = "abc"; msgpack::zone z; msgpack::object obj(v, z); - EXPECT_EQ(obj.as(), std::string(v)); + BOOST_CHECK_EQUAL(obj.as(), std::string(v)); v[0] = 'd'; - EXPECT_EQ(obj.as()[0], 'a'); + BOOST_CHECK_EQUAL(obj.as()[0], 'a'); } // complex -TEST(object_with_zone, complex_float) +BOOST_AUTO_TEST_CASE(complex_float) { typedef std::complex test_t; test_t v(1.23F, 4.56F); msgpack::zone z; msgpack::object obj(v, z); float r = v.real(); - EXPECT_TRUE(fabs(obj.as().real() - v.real()) <= kEPS); - EXPECT_TRUE(fabs(obj.as().imag() - v.imag()) <= kEPS); + BOOST_CHECK(fabs(obj.as().real() - v.real()) <= kEPS); + BOOST_CHECK(fabs(obj.as().imag() - v.imag()) <= kEPS); v.real(7.89F); - EXPECT_TRUE(fabs(obj.as().real() - r) <= kEPS); + BOOST_CHECK(fabs(obj.as().real() - r) <= kEPS); } -TEST(object_with_zone, complex_double) +BOOST_AUTO_TEST_CASE(complex_double) { typedef std::complex test_t; test_t v(1.23, 4.56); msgpack::zone z; msgpack::object obj(v, z); double r = v.real(); - EXPECT_TRUE(fabs(obj.as().real() - v.real()) <= kEPS); - EXPECT_TRUE(fabs(obj.as().imag() - v.imag()) <= kEPS); + BOOST_CHECK(fabs(obj.as().real() - v.real()) <= kEPS); + BOOST_CHECK(fabs(obj.as().imag() - v.imag()) <= kEPS); v.real(7.89); - EXPECT_TRUE(fabs(obj.as().real() - r) <= kEPS); + BOOST_CHECK(fabs(obj.as().real() - r) <= kEPS); } #if MSGPACK_DEFAULT_API_VERSION == 1 -TEST(object_without_zone, char_ptr) +BOOST_AUTO_TEST_CASE(without_zone_char_ptr) { char v[] = "abc"; msgpack::zone z; msgpack::object obj(v); - EXPECT_EQ(obj.as(), std::string(v)); + BOOST_CHECK_EQUAL(obj.as(), std::string(v)); v[0] = 'd'; - EXPECT_EQ(obj.as()[0], 'd'); + BOOST_CHECK_EQUAL(obj.as()[0], 'd'); } #endif // MSGPACK_DEFAULT_API_VERSION == 1 // raw_ref -TEST(object_with_zone, raw_ref) +BOOST_AUTO_TEST_CASE(raw_ref) { - string s = "abc"; + std::string s = "abc"; msgpack::type::raw_ref v(s.data(), static_cast(s.size())); msgpack::zone z; msgpack::object obj(v, z); - EXPECT_TRUE(obj.as() == v); + BOOST_CHECK(obj.as() == v); s[0] = 'd'; // even if with_zone, not copied due to raw_ref // Basically, the combination raw_ref and object::wit_zone // is meaningless. - EXPECT_TRUE(obj.as() == v); -} - -TEST(object_without_zone, raw_ref) -{ - string s = "abc"; - msgpack::type::raw_ref v(s.data(), static_cast(s.size())); - msgpack::zone z; - msgpack::object obj(v); - EXPECT_TRUE(obj.as() == v); - s[0] = 'd'; - EXPECT_TRUE(obj.as() == v); + BOOST_CHECK(obj.as() == v); } // pair -TEST(object_with_zone, pair) +BOOST_AUTO_TEST_CASE(pair) { - typedef pair test_t; + typedef std::pair test_t; test_t v(1, "abc"); msgpack::zone z; msgpack::object obj(v, z); - EXPECT_TRUE(obj.as() == v); + BOOST_CHECK(obj.as() == v); v.first = 42; - EXPECT_EQ(obj.as().first, 1); + BOOST_CHECK_EQUAL(obj.as().first, 1); } // set -TEST(object_with_zone, set) +BOOST_AUTO_TEST_CASE(set) { for (unsigned int k = 0; k < kLoop; k++) { - set v1; + std::set v1; for (unsigned int i = 0; i < kElements; i++) v1.insert(static_cast(i)); msgpack::zone z; msgpack::object obj(v1, z); - EXPECT_TRUE(obj.as >() == v1); + BOOST_CHECK(obj.as >() == v1); } } // multiset -TEST(object_with_zone, multiset) +BOOST_AUTO_TEST_CASE(multiset) { for (unsigned int k = 0; k < kLoop; k++) { - multiset v1; + std::multiset v1; for (unsigned int i = 0; i < kElements; i++) v1.insert(i % (kElements / 2)); msgpack::zone z; msgpack::object obj(v1, z); - EXPECT_TRUE(obj.as >() == v1); + BOOST_CHECK(obj.as >() == v1); } } // map -TEST(object_with_zone, map) +BOOST_AUTO_TEST_CASE(map) { - typedef map test_t; + typedef std::map test_t; for (unsigned int k = 0; k < kLoop; k++) { test_t v1; for (unsigned int i = 0; i < kElements; i++) v1.insert(std::make_pair(i, i*2)); msgpack::zone z; msgpack::object obj(v1, z); - EXPECT_TRUE(obj.as() == v1); + BOOST_CHECK(obj.as() == v1); } } // multimap -TEST(object_with_zone, multimap) +BOOST_AUTO_TEST_CASE(multimap) { - typedef multimap test_t; + typedef std::multimap test_t; for (unsigned int k = 0; k < kLoop; k++) { test_t v1; for (unsigned int i = 0; i < kElements; i++) v1.insert(std::make_pair(i % (kElements / 2), i*2)); msgpack::zone z; msgpack::object obj(v1, z); - EXPECT_TRUE(obj.as() == v1); + BOOST_CHECK(obj.as() == v1); } } // msgpack_tuple -TEST(object_with_zone, msgpack_tuple) +BOOST_AUTO_TEST_CASE(msgpack_tuple) { - typedef msgpack::type::tuple test_t; + typedef msgpack::type::tuple test_t; test_t v(1, "abc", true); msgpack::zone z; msgpack::object obj(v, z); - EXPECT_EQ(msgpack::type::get<0>(obj.as()), 1); - EXPECT_EQ(msgpack::type::get<1>(obj.as()), "abc"); - EXPECT_EQ(msgpack::type::get<2>(obj.as()), true); + BOOST_CHECK_EQUAL(msgpack::type::get<0>(obj.as()), 1); + BOOST_CHECK_EQUAL(msgpack::type::get<1>(obj.as()), "abc"); + BOOST_CHECK_EQUAL(msgpack::type::get<2>(obj.as()), true); msgpack::type::get<0>(v) = 42; - EXPECT_EQ(msgpack::type::get<0>(obj.as()), 1); + BOOST_CHECK_EQUAL(msgpack::type::get<0>(obj.as()), 1); } -TEST(object_with_zone, msgpack_tuple_empty) +BOOST_AUTO_TEST_CASE(msgpack_tuple_empty) { typedef msgpack::type::tuple<> test_t; test_t v; msgpack::zone z; msgpack::object obj(v, z); - EXPECT_EQ(obj.via.array.size, 0u); + BOOST_CHECK_EQUAL(obj.via.array.size, 0u); } // TR1 @@ -526,9 +475,9 @@ TEST(object_with_zone, msgpack_tuple_empty) #ifdef MSGPACK_HAS_STD_TR1_UNORDERED_MAP #include #include "msgpack/adaptor/tr1/unordered_map.hpp" -TEST(object_with_zone, tr1_unordered_map) +BOOST_AUTO_TEST_CASE(tr1_unordered_map) { - typedef tr1::unordered_map test_t; + typedef std::tr1::unordered_map test_t; for (unsigned int k = 0; k < kLoop; k++) { test_t v1; for (unsigned int i = 0; i < kElements; i++) @@ -536,40 +485,40 @@ TEST(object_with_zone, tr1_unordered_map) msgpack::zone z; msgpack::object obj(v1, z); test_t v2 = obj.as(); - EXPECT_EQ(v1.size(), v2.size()); + BOOST_CHECK_EQUAL(v1.size(), v2.size()); test_t::const_iterator it; for (it = v1.begin(); it != v1.end(); ++it) { - EXPECT_TRUE(v2.find(it->first) != v2.end()); - EXPECT_EQ(it->second, v2.find(it->first)->second); + BOOST_CHECK(v2.find(it->first) != v2.end()); + BOOST_CHECK_EQUAL(it->second, v2.find(it->first)->second); } } } -TEST(object_with_zone, tr1_unordered_multimap) +BOOST_AUTO_TEST_CASE(tr1_unordered_multimap) { - typedef tr1::unordered_multimap test_t; + typedef std::tr1::unordered_multimap test_t; for (unsigned int k = 0; k < kLoop; k++) { test_t v1; for (unsigned int i = 0; i < kElements; i++) { int i1 = rand(); - v1.insert(make_pair(i1, rand())); - v1.insert(make_pair(i1, rand())); + v1.insert(std::make_pair(i1, rand())); + v1.insert(std::make_pair(i1, rand())); } msgpack::zone z; msgpack::object obj(v1, z); test_t v2 = obj.as(); - vector > vec1, vec2; - tr1::unordered_multimap::const_iterator it; + std::vector > vec1, vec2; + std::tr1::unordered_multimap::const_iterator it; for (it = v1.begin(); it != v1.end(); ++it) - vec1.push_back(make_pair(it->first, it->second)); + vec1.push_back(std::make_pair(it->first, it->second)); for (it = v2.begin(); it != v2.end(); ++it) - vec2.push_back(make_pair(it->first, it->second)); - EXPECT_EQ(v1.size(), v2.size()); - EXPECT_EQ(vec1.size(), vec2.size()); - sort(vec1.begin(), vec1.end()); - sort(vec2.begin(), vec2.end()); - EXPECT_TRUE(vec1 == vec2); + vec2.push_back(std::make_pair(it->first, it->second)); + BOOST_CHECK_EQUAL(v1.size(), v2.size()); + BOOST_CHECK_EQUAL(vec1.size(), vec2.size()); + std::sort(vec1.begin(), vec1.end()); + std::sort(vec2.begin(), vec2.end()); + BOOST_CHECK(vec1 == vec2); } } #endif @@ -577,9 +526,9 @@ TEST(object_with_zone, tr1_unordered_multimap) #ifdef MSGPACK_HAS_STD_TR1_UNORDERED_SET #include #include "msgpack/adaptor/tr1/unordered_set.hpp" -TEST(object_with_zone, tr1_unordered_set) +BOOST_AUTO_TEST_CASE(tr1_unordered_set) { - typedef tr1::unordered_set test_t; + typedef std::tr1::unordered_set test_t; for (unsigned int k = 0; k < kLoop; k++) { test_t v1; for (unsigned int i = 0; i < kElements; i++) @@ -587,16 +536,16 @@ TEST(object_with_zone, tr1_unordered_set) msgpack::zone z; msgpack::object obj(v1, z); test_t v2 = obj.as(); - EXPECT_EQ(v1.size(), v2.size()); - tr1::unordered_set::const_iterator it; + BOOST_CHECK_EQUAL(v1.size(), v2.size()); + std::tr1::unordered_set::const_iterator it; for (it = v1.begin(); it != v1.end(); ++it) - EXPECT_TRUE(v2.find(*it) != v2.end()); + BOOST_CHECK(v2.find(*it) != v2.end()); } } -TEST(object_with_zone, tr1_unordered_multiset) +BOOST_AUTO_TEST_CASE(tr1_unordered_multiset) { - typedef tr1::unordered_set test_t; + typedef std::tr1::unordered_set test_t; for (unsigned int k = 0; k < kLoop; k++) { test_t v1; for (unsigned int i = 0; i < kElements; i++) { @@ -607,17 +556,17 @@ TEST(object_with_zone, tr1_unordered_multiset) msgpack::zone z; msgpack::object obj(v1, z); test_t v2 = obj.as(); - vector vec1, vec2; - tr1::unordered_multiset::const_iterator it; + std::vector vec1, vec2; + std::tr1::unordered_multiset::const_iterator it; for (it = v1.begin(); it != v1.end(); ++it) vec1.push_back(*it); for (it = v2.begin(); it != v2.end(); ++it) vec2.push_back(*it); - EXPECT_EQ(v1.size(), v2.size()); - EXPECT_EQ(vec1.size(), vec2.size()); - sort(vec1.begin(), vec1.end()); - sort(vec2.begin(), vec2.end()); - EXPECT_TRUE(vec1 == vec2); + BOOST_CHECK_EQUAL(v1.size(), v2.size()); + BOOST_CHECK_EQUAL(vec1.size(), vec2.size()); + std::sort(vec1.begin(), vec1.end()); + std::sort(vec2.begin(), vec2.end()); + BOOST_CHECK(vec1 == vec2); } } #endif @@ -625,9 +574,9 @@ TEST(object_with_zone, tr1_unordered_multiset) #ifdef MSGPACK_HAS_STD_UNORDERED_MAP #include #include "msgpack/adaptor/tr1/unordered_map.hpp" -TEST(object_with_zone, unordered_map) +BOOST_AUTO_TEST_CASE(unordered_map) { - typedef unordered_map test_t; + typedef std::unordered_map test_t; for (unsigned int k = 0; k < kLoop; k++) { test_t v1; for (unsigned int i = 0; i < kElements; i++) @@ -635,39 +584,39 @@ TEST(object_with_zone, unordered_map) msgpack::zone z; msgpack::object obj(v1, z); test_t v2 = obj.as(); - EXPECT_EQ(v1.size(), v2.size()); + BOOST_CHECK_EQUAL(v1.size(), v2.size()); test_t::const_iterator it; for (it = v1.begin(); it != v1.end(); ++it) { - EXPECT_TRUE(v2.find(it->first) != v2.end()); - EXPECT_EQ(it->second, v2.find(it->first)->second); + BOOST_CHECK(v2.find(it->first) != v2.end()); + BOOST_CHECK_EQUAL(it->second, v2.find(it->first)->second); } } } -TEST(object_with_zone, unordered_multimap) +BOOST_AUTO_TEST_CASE(unordered_multimap) { - typedef unordered_multimap test_t; + typedef std::unordered_multimap test_t; for (unsigned int k = 0; k < kLoop; k++) { test_t v1; for (unsigned int i = 0; i < kElements; i++) { int i1 = rand(); - v1.insert(make_pair(i1, rand())); - v1.insert(make_pair(i1, rand())); + v1.insert(std::make_pair(i1, rand())); + v1.insert(std::make_pair(i1, rand())); } msgpack::zone z; msgpack::object obj(v1, z); test_t v2 = obj.as(); - vector > vec1, vec2; - unordered_multimap::const_iterator it; + std::vector > vec1, vec2; + std::unordered_multimap::const_iterator it; for (it = v1.begin(); it != v1.end(); ++it) - vec1.push_back(make_pair(it->first, it->second)); + vec1.push_back(std::make_pair(it->first, it->second)); for (it = v2.begin(); it != v2.end(); ++it) - vec2.push_back(make_pair(it->first, it->second)); - EXPECT_EQ(v1.size(), v2.size()); - EXPECT_EQ(vec1.size(), vec2.size()); + vec2.push_back(std::make_pair(it->first, it->second)); + BOOST_CHECK_EQUAL(v1.size(), v2.size()); + BOOST_CHECK_EQUAL(vec1.size(), vec2.size()); sort(vec1.begin(), vec1.end()); sort(vec2.begin(), vec2.end()); - EXPECT_TRUE(vec1 == vec2); + BOOST_CHECK(vec1 == vec2); } } #endif @@ -675,9 +624,9 @@ TEST(object_with_zone, unordered_multimap) #ifdef MSGPACK_HAS_STD_UNORDERED_SET #include #include "msgpack/adaptor/tr1/unordered_set.hpp" -TEST(object_with_zone, unordered_set) +BOOST_AUTO_TEST_CASE(unordered_set) { - typedef unordered_set test_t; + typedef std::unordered_set test_t; for (unsigned int k = 0; k < kLoop; k++) { test_t v1; for (unsigned int i = 0; i < kElements; i++) @@ -685,16 +634,16 @@ TEST(object_with_zone, unordered_set) msgpack::zone z; msgpack::object obj(v1, z); test_t v2 = obj.as(); - EXPECT_EQ(v1.size(), v2.size()); - unordered_set::const_iterator it; + BOOST_CHECK_EQUAL(v1.size(), v2.size()); + std::unordered_set::const_iterator it; for (it = v1.begin(); it != v1.end(); ++it) - EXPECT_TRUE(v2.find(*it) != v2.end()); + BOOST_CHECK(v2.find(*it) != v2.end()); } } -TEST(object_with_zone, unordered_multiset) +BOOST_AUTO_TEST_CASE(unordered_multiset) { - typedef unordered_set test_t; + typedef std::unordered_set test_t; for (unsigned int k = 0; k < kLoop; k++) { test_t v1; for (unsigned int i = 0; i < kElements; i++) { @@ -705,17 +654,17 @@ TEST(object_with_zone, unordered_multiset) msgpack::zone z; msgpack::object obj(v1, z); test_t v2 = obj.as(); - vector vec1, vec2; - unordered_multiset::const_iterator it; + std::vector vec1, vec2; + std::unordered_multiset::const_iterator it; for (it = v1.begin(); it != v1.end(); ++it) vec1.push_back(*it); for (it = v2.begin(); it != v2.end(); ++it) vec2.push_back(*it); - EXPECT_EQ(v1.size(), v2.size()); - EXPECT_EQ(vec1.size(), vec2.size()); - sort(vec1.begin(), vec1.end()); - sort(vec2.begin(), vec2.end()); - EXPECT_TRUE(vec1 == vec2); + BOOST_CHECK_EQUAL(v1.size(), v2.size()); + BOOST_CHECK_EQUAL(vec1.size(), vec2.size()); + std::sort(vec1.begin(), vec1.end()); + std::sort(vec2.begin(), vec2.end()); + BOOST_CHECK(vec1 == vec2); } } #endif @@ -726,46 +675,46 @@ class TestClass public: TestClass() : i(0), s("kzk") {} int i; - string s; + std::string s; MSGPACK_DEFINE(i, s); }; -TEST(object_with_zone, user_defined) +BOOST_AUTO_TEST_CASE(user_defined) { TestClass v1; msgpack::zone z; msgpack::object obj(v1, z); TestClass v2 = obj.as(); - EXPECT_EQ(v1.i, v2.i); - EXPECT_EQ(v1.s, v2.s); + BOOST_CHECK_EQUAL(v1.i, v2.i); + BOOST_CHECK_EQUAL(v1.s, v2.s); } -TEST(object_with_zone, construct_enum) +BOOST_AUTO_TEST_CASE(construct_enum) { msgpack::zone z; msgpack::object obj(elem, z); - EXPECT_EQ(msgpack::type::POSITIVE_INTEGER, obj.type); - EXPECT_EQ(static_cast(elem), obj.via.u64); + BOOST_CHECK_EQUAL(msgpack::type::POSITIVE_INTEGER, obj.type); + BOOST_CHECK_EQUAL(static_cast(elem), obj.via.u64); } #if !defined(MSGPACK_USE_CPP03) -TEST(object_with_zone, construct_enum_newstyle) +BOOST_AUTO_TEST_CASE(construct_enum_newstyle) { msgpack::zone z; msgpack::object obj(enum_test::elem, z); - EXPECT_EQ(msgpack::type::POSITIVE_INTEGER, obj.type); - EXPECT_EQ(elem, obj.via.u64); + BOOST_CHECK_EQUAL(msgpack::type::POSITIVE_INTEGER, obj.type); + BOOST_CHECK_EQUAL(elem, obj.via.u64); } #endif // !defined(MSGPACK_USE_CPP03) -TEST(object_with_zone, construct_enum_outer) +BOOST_AUTO_TEST_CASE(construct_enum_outer) { msgpack::zone z; msgpack::object obj(outer_enum::elem, z); - EXPECT_EQ(msgpack::type::POSITIVE_INTEGER, obj.type); - EXPECT_EQ(static_cast(elem), obj.via.u64); + BOOST_CHECK_EQUAL(msgpack::type::POSITIVE_INTEGER, obj.type); + BOOST_CHECK_EQUAL(static_cast(elem), obj.via.u64); } // User defined inheriting classes @@ -789,7 +738,7 @@ struct bottom : mid1, mid2 { MSGPACK_DEFINE(MSGPACK_BASE(mid1), MSGPACK_BASE(mid2), b); }; -TEST(object_with_zone, user_defined_non_virtual) +BOOST_AUTO_TEST_CASE(user_defined_non_virtual) { bottom b; b.b = 1; @@ -808,11 +757,11 @@ TEST(object_with_zone, user_defined_non_virtual) #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) #pragma GCC diagnostic pop #endif // defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) - EXPECT_EQ(b.b, br.b); - EXPECT_EQ(b.m1, br.m1); - EXPECT_EQ(b.m2, br.m2); - EXPECT_EQ(b.mid1::t, br.mid1::t); - EXPECT_EQ(b.mid2::t, br.mid2::t); + BOOST_CHECK_EQUAL(b.b, br.b); + BOOST_CHECK_EQUAL(b.m1, br.m1); + BOOST_CHECK_EQUAL(b.m2, br.m2); + BOOST_CHECK_EQUAL(b.mid1::t, br.mid1::t); + BOOST_CHECK_EQUAL(b.mid2::t, br.mid2::t); } struct v_top { @@ -835,7 +784,7 @@ struct v_bottom : v_mid1, v_mid2 { MSGPACK_DEFINE(MSGPACK_BASE(v_mid1), MSGPACK_BASE(v_mid2), MSGPACK_BASE(v_top), b); }; -TEST(object_with_zone, user_defined_virtual) +BOOST_AUTO_TEST_CASE(user_defined_virtual) { v_bottom b; b.b = 1; @@ -853,43 +802,43 @@ TEST(object_with_zone, user_defined_virtual) #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) #pragma GCC diagnostic pop #endif // defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) - EXPECT_EQ(b.b, br.b); - EXPECT_EQ(b.m1, br.m1); - EXPECT_EQ(b.m2, br.m2); - EXPECT_EQ(b.t, br.t); + BOOST_CHECK_EQUAL(b.b, br.b); + BOOST_CHECK_EQUAL(b.m1, br.m1); + BOOST_CHECK_EQUAL(b.m2, br.m2); + BOOST_CHECK_EQUAL(b.t, br.t); } #if !defined(MSGPACK_USE_CPP03) -TEST(object_with_zone, construct_enum_outer_newstyle) +BOOST_AUTO_TEST_CASE(construct_enum_outer_newstyle) { msgpack::zone z; msgpack::object obj(outer_enum::enum_test::elem, z); - EXPECT_EQ(msgpack::type::POSITIVE_INTEGER, obj.type); - EXPECT_EQ(elem, obj.via.u64); + BOOST_CHECK_EQUAL(msgpack::type::POSITIVE_INTEGER, obj.type); + BOOST_CHECK_EQUAL(elem, obj.via.u64); } -TEST(object_with_zone, construct_class_enum) +BOOST_AUTO_TEST_CASE(construct_class_enum) { msgpack::zone z; msgpack::object obj(enum_class_test::elem, z); - EXPECT_EQ(msgpack::type::POSITIVE_INTEGER, obj.type); - EXPECT_EQ(elem, obj.via.u64); + BOOST_CHECK_EQUAL(msgpack::type::POSITIVE_INTEGER, obj.type); + BOOST_CHECK_EQUAL(elem, obj.via.u64); } -TEST(object_with_zone, construct_class_enum_outer) +BOOST_AUTO_TEST_CASE(construct_class_enum_outer) { msgpack::zone z; msgpack::object obj(outer_enum_class::enum_class_test::elem, z); - EXPECT_EQ(msgpack::type::POSITIVE_INTEGER, obj.type); - EXPECT_EQ(elem, obj.via.u64); + BOOST_CHECK_EQUAL(msgpack::type::POSITIVE_INTEGER, obj.type); + BOOST_CHECK_EQUAL(elem, obj.via.u64); } -TEST(object_with_zone, array) +BOOST_AUTO_TEST_CASE(array) { - typedef array test_t; + typedef std::array test_t; for (unsigned int k = 0; k < kLoop; k++) { test_t v1; v1[0] = 1; @@ -897,15 +846,15 @@ TEST(object_with_zone, array) v1[i] = rand(); msgpack::zone z; msgpack::object obj(v1, z); - EXPECT_TRUE(obj.as() == v1); + BOOST_CHECK(obj.as() == v1); v1.front() = 42; - EXPECT_EQ(obj.as().front(), 1); + BOOST_CHECK_EQUAL(obj.as().front(), 1); } } -TEST(object_with_zone, array_char) +BOOST_AUTO_TEST_CASE(array_char) { - typedef array test_t; + typedef std::array test_t; for (unsigned int k = 0; k < kLoop; k++) { test_t v1; v1[0] = 1; @@ -913,32 +862,16 @@ TEST(object_with_zone, array_char) v1[i] = static_cast(rand()); msgpack::zone z; msgpack::object obj(v1, z); - EXPECT_TRUE(obj.as() == v1); + BOOST_CHECK(obj.as() == v1); v1.front() = 42; - EXPECT_EQ(obj.as().front(), 1); + BOOST_CHECK_EQUAL(obj.as().front(), 1); } } -TEST(object_without_zone, array_char) -{ - typedef array test_t; - for (unsigned int k = 0; k < kLoop; k++) { - test_t v1; - v1[0] = 1; - for (unsigned int i = 1; i < kElements; i++) - v1[i] = static_cast(rand()); - msgpack::object obj(v1); - EXPECT_TRUE(obj.as() == v1); - v1.front() = 42; - // obj refer to v1 - EXPECT_EQ(obj.as().front(), 42); - } -} - -TEST(object_with_zone, array_unsigned_char) +BOOST_AUTO_TEST_CASE(array_unsigned_char) { if (!msgpack::is_same::value) return; - typedef array test_t; + typedef std::array test_t; for (unsigned int k = 0; k < kLoop; k++) { test_t v1; v1[0] = 1; @@ -946,87 +879,69 @@ TEST(object_with_zone, array_unsigned_char) v1[i] = static_cast(rand()); msgpack::zone z; msgpack::object obj(v1, z); - EXPECT_TRUE(obj.as() == v1); + BOOST_CHECK(obj.as() == v1); v1.front() = 42; - EXPECT_EQ(obj.as().front(), 1); + BOOST_CHECK_EQUAL(obj.as().front(), 1); } } -TEST(object_without_zone, array_unsigned_char) -{ - if (!msgpack::is_same::value) return; - typedef array test_t; - for (unsigned int k = 0; k < kLoop; k++) { - test_t v1; - v1[0] = 1; - for (unsigned int i = 1; i < kElements; i++) - v1[i] = static_cast(rand()); - msgpack::object obj(v1); - EXPECT_TRUE(obj.as() == v1); - v1.front() = 42; - // obj refer to v1 - EXPECT_EQ(obj.as().front(), 42); - } -} - - -TEST(object_with_zone, forward_list) +BOOST_AUTO_TEST_CASE(forward_list) { for (unsigned int k = 0; k < kLoop; k++) { - forward_list v1; + std::forward_list v1; for (unsigned int i = 0; i < kElements; i++) v1.push_front(static_cast(i)); msgpack::zone z; msgpack::object obj(v1, z); - EXPECT_TRUE(obj.as >() == v1); + BOOST_CHECK(obj.as >() == v1); v1.front() = 42; - EXPECT_EQ(obj.as >().front(), static_cast(kElements - 1)); + BOOST_CHECK_EQUAL(obj.as >().front(), static_cast(kElements - 1)); } } -TEST(object_with_zone, tuple) +BOOST_AUTO_TEST_CASE(tuple) { - typedef tuple test_t; + typedef std::tuple test_t; test_t v(1, "abc", true); msgpack::zone z; msgpack::object obj(v, z); - EXPECT_TRUE(obj.as() == v); + BOOST_CHECK(obj.as() == v); } -TEST(object_with_zone, tuple_empty) +BOOST_AUTO_TEST_CASE(tuple_empty) { - typedef tuple<> test_t; + typedef std::tuple<> test_t; test_t v; msgpack::zone z; msgpack::object obj(v, z); - EXPECT_TRUE(obj.as() == v); + BOOST_CHECK(obj.as() == v); } -TEST(object_with_zone, system_clock) +BOOST_AUTO_TEST_CASE(system_clock) { std::chrono::system_clock::time_point v; msgpack::zone z; msgpack::object obj(v, z); - EXPECT_TRUE(obj.as() == v); + BOOST_CHECK(obj.as() == v); } -TEST(object_with_zone, system_clock_32) +BOOST_AUTO_TEST_CASE(system_clock_32) { std::chrono::system_clock::time_point v(std::chrono::seconds(0x12345678L)); msgpack::zone z; msgpack::object obj(v, z); - EXPECT_TRUE(obj.as() == v); + BOOST_CHECK(obj.as() == v); } -TEST(object_with_zone, system_clock_32_max) +BOOST_AUTO_TEST_CASE(system_clock_32_max) { std::chrono::system_clock::time_point v(std::chrono::seconds(0xffffffffL)); msgpack::zone z; msgpack::object obj(v, z); - EXPECT_TRUE(obj.as() == v); + BOOST_CHECK(obj.as() == v); } -TEST(object_with_zone, system_clock_64) +BOOST_AUTO_TEST_CASE(system_clock_64) { std::chrono::system_clock::time_point v(std::chrono::seconds(0x31234567L)); v += @@ -1035,10 +950,10 @@ TEST(object_with_zone, system_clock_64) ); msgpack::zone z; msgpack::object obj(v, z); - EXPECT_TRUE(obj.as() == v); + BOOST_CHECK(obj.as() == v); } -TEST(object_with_zone, system_clock_64_max) +BOOST_AUTO_TEST_CASE(system_clock_64_max) { std::chrono::system_clock::time_point v(std::chrono::seconds(0xffffffffL)); v += @@ -1047,71 +962,71 @@ TEST(object_with_zone, system_clock_64_max) ); msgpack::zone z; msgpack::object obj(v, z); - EXPECT_TRUE(obj.as() == v); + BOOST_CHECK(obj.as() == v); } -TEST(object_with_zone, system_clock_impl_min) +BOOST_AUTO_TEST_CASE(system_clock_impl_min) { std::chrono::system_clock::time_point v(std::chrono::system_clock::time_point::min()); msgpack::zone z; msgpack::object obj(v, z); - EXPECT_TRUE(obj.as() == v); + BOOST_CHECK(obj.as() == v); } -TEST(object_with_zone, system_clock_impl_max) +BOOST_AUTO_TEST_CASE(system_clock_impl_max) { std::chrono::system_clock::time_point v(std::chrono::system_clock::time_point::max()); msgpack::zone z; msgpack::object obj(v, z); - EXPECT_TRUE(obj.as() == v); + BOOST_CHECK(obj.as() == v); } #endif // !defined(MSGPACK_USE_CPP03) -TEST(object_with_zone, ext_empty) +BOOST_AUTO_TEST_CASE(ext_empty) { msgpack::type::ext v; msgpack::zone z; msgpack::object obj(v, z); - EXPECT_TRUE(obj.as() == v); - EXPECT_TRUE(obj.as() == v); + BOOST_CHECK(obj.as() == v); + BOOST_CHECK(obj.as() == v); } -TEST(object_with_zone, ext) +BOOST_AUTO_TEST_CASE(ext) { msgpack::type::ext v(42, 10); for (int i = 0; i < 10; ++i) v.data()[i] = static_cast(i); msgpack::zone z; msgpack::object obj(v, z); - EXPECT_TRUE(obj.as() == v); - EXPECT_TRUE(obj.as() == v); + BOOST_CHECK(obj.as() == v); + BOOST_CHECK(obj.as() == v); } -TEST(object_with_zone, ext_from_buf) +BOOST_AUTO_TEST_CASE(ext_from_buf) { char const buf[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; msgpack::type::ext v(42, buf, sizeof(buf)); msgpack::zone z; msgpack::object obj(v, z); - EXPECT_TRUE(obj.as() == v); - EXPECT_TRUE(obj.as() == v); + BOOST_CHECK(obj.as() == v); + BOOST_CHECK(obj.as() == v); } -TEST(object_with_zone, ext_ref_empty) +BOOST_AUTO_TEST_CASE(ext_ref_empty) { msgpack::type::ext_ref v; msgpack::zone z; msgpack::object obj(v, z); - EXPECT_TRUE(obj.as() == v); - EXPECT_TRUE(obj.as() == v); + BOOST_CHECK(obj.as() == msgpack::type::ext(v)); + BOOST_CHECK(obj.as() == v); } -TEST(object_with_zone, ext_ref_from_buf) +BOOST_AUTO_TEST_CASE(ext_ref_from_buf) { char const buf[] = { 77, 1, 2, 3, 4, 5, 6, 7, 8, 9}; msgpack::type::ext_ref v(buf, sizeof(buf)); msgpack::zone z; msgpack::object obj(v, z); - EXPECT_TRUE(obj.as() == v); - EXPECT_TRUE(obj.as() == v); + BOOST_CHECK(obj.as() == msgpack::type::ext(v)); + BOOST_CHECK(obj.as() == v); } diff --git a/test/pack_unpack.cpp b/test/pack_unpack.cpp index be796cc6..af3e2c4c 100644 --- a/test/pack_unpack.cpp +++ b/test/pack_unpack.cpp @@ -1,26 +1,18 @@ #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) - -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE pack_unpack +#include #include -TEST(pack, num) +BOOST_AUTO_TEST_CASE(pack_num) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 1); } -TEST(pack, vector) +BOOST_AUTO_TEST_CASE(pack_vector) { msgpack::sbuffer sbuf; std::vector vec; @@ -31,7 +23,7 @@ TEST(pack, vector) } -TEST(pack, to_ostream) +BOOST_AUTO_TEST_CASE(pack_to_ostream) { std::ostringstream stream; msgpack::pack(stream, 1); @@ -53,7 +45,7 @@ struct myclass { }; -TEST(pack, myclass) +BOOST_AUTO_TEST_CASE(pack_myclass) { msgpack::sbuffer sbuf; myclass m(1, "msgpack"); @@ -61,16 +53,16 @@ TEST(pack, myclass) } -TEST(unpack, int_ret_no_offset_no_ref) +BOOST_AUTO_TEST_CASE(unpack_int_ret_no_offset_no_ref) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 1); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(1, oh.get().as()); + BOOST_CHECK_EQUAL(1, oh.get().as()); } -TEST(unpack, int_ret_offset_no_ref) +BOOST_AUTO_TEST_CASE(unpack_int_ret_offset_no_ref) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 1); @@ -78,22 +70,22 @@ TEST(unpack, int_ret_offset_no_ref) std::size_t off = 0; msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size(), off); - EXPECT_EQ(1, oh.get().as()); - EXPECT_EQ(off, sbuf.size()); + BOOST_CHECK_EQUAL(1, oh.get().as()); + BOOST_CHECK_EQUAL(off, sbuf.size()); } -TEST(unpack, int_ret_no_offset_ref) +BOOST_AUTO_TEST_CASE(unpack_int_ret_no_offset_ref) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 1); bool referenced; msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size(), referenced); - EXPECT_EQ(1, oh.get().as()); - EXPECT_FALSE(referenced); + BOOST_CHECK_EQUAL(1, oh.get().as()); + BOOST_CHECK(!referenced); } -TEST(unpack, int_ret_offset_ref) +BOOST_AUTO_TEST_CASE(unpack_int_ret_offset_ref) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 1); @@ -101,23 +93,23 @@ TEST(unpack, int_ret_offset_ref) bool referenced; msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size(), off, referenced); - EXPECT_EQ(1, oh.get().as()); - EXPECT_FALSE(referenced); - EXPECT_EQ(off, sbuf.size()); + BOOST_CHECK_EQUAL(1, oh.get().as()); + BOOST_CHECK(!referenced); + BOOST_CHECK_EQUAL(off, sbuf.size()); } -TEST(unpack, int_no_offset_no_ref) +BOOST_AUTO_TEST_CASE(unpack_int_no_offset_no_ref) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 1); msgpack::object_handle oh; msgpack::unpack(oh, sbuf.data(), sbuf.size()); - EXPECT_EQ(1, oh.get().as()); + BOOST_CHECK_EQUAL(1, oh.get().as()); } -TEST(unpack, int_offset_no_ref) +BOOST_AUTO_TEST_CASE(unpack_int_offset_no_ref) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 1); @@ -126,11 +118,11 @@ TEST(unpack, int_offset_no_ref) std::size_t off = 0; msgpack::unpack(oh, sbuf.data(), sbuf.size(), off); - EXPECT_EQ(1, oh.get().as()); - EXPECT_EQ(off, sbuf.size()); + BOOST_CHECK_EQUAL(1, oh.get().as()); + BOOST_CHECK_EQUAL(off, sbuf.size()); } -TEST(unpack, int_no_offset_ref) +BOOST_AUTO_TEST_CASE(unpack_int_no_offset_ref) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 1); @@ -138,11 +130,11 @@ TEST(unpack, int_no_offset_ref) bool referenced; msgpack::unpack(oh, sbuf.data(), sbuf.size(), referenced); - EXPECT_EQ(1, oh.get().as()); - EXPECT_FALSE(referenced); + BOOST_CHECK_EQUAL(1, oh.get().as()); + BOOST_CHECK(!referenced); } -TEST(unpack, int_offset_ref) +BOOST_AUTO_TEST_CASE(unpack_int_offset_ref) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 1); @@ -151,14 +143,14 @@ TEST(unpack, int_offset_ref) bool referenced; msgpack::unpack(oh, sbuf.data(), sbuf.size(), off, referenced); - EXPECT_EQ(1, oh.get().as()); - EXPECT_FALSE(referenced); - EXPECT_EQ(off, sbuf.size()); + BOOST_CHECK_EQUAL(1, oh.get().as()); + BOOST_CHECK(!referenced); + BOOST_CHECK_EQUAL(off, sbuf.size()); } #if MSGPACK_DEFAULT_API_VERSION == 1 -TEST(unpack, int_pointer_off_no_ref) +BOOST_AUTO_TEST_CASE(unpack_int_pointer_off_no_ref) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 1); @@ -175,11 +167,11 @@ TEST(unpack, int_pointer_off_no_ref) #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)) #pragma GCC diagnostic pop #endif // defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)) - EXPECT_EQ(1, oh.get().as()); - EXPECT_EQ(off, sbuf.size()); + BOOST_CHECK_EQUAL(1, oh.get().as()); + BOOST_CHECK_EQUAL(off, sbuf.size()); } -TEST(unpack, int_pointer_off_no_ref_explicit) +BOOST_AUTO_TEST_CASE(unpack_int_pointer_off_no_ref_explicit) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 1); @@ -196,11 +188,11 @@ TEST(unpack, int_pointer_off_no_ref_explicit) #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)) #pragma GCC diagnostic pop #endif // defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)) - EXPECT_EQ(1, oh.get().as()); - EXPECT_EQ(off, sbuf.size()); + BOOST_CHECK_EQUAL(1, oh.get().as()); + BOOST_CHECK_EQUAL(off, sbuf.size()); } -TEST(unpack, int_pointer_no_off_ref) +BOOST_AUTO_TEST_CASE(unpack_int_pointer_no_off_ref) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 1); @@ -216,11 +208,11 @@ TEST(unpack, int_pointer_no_off_ref) #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)) #pragma GCC diagnostic pop #endif // defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)) - EXPECT_EQ(1, oh.get().as()); - EXPECT_FALSE(referenced); + BOOST_CHECK_EQUAL(1, oh.get().as()); + BOOST_CHECK(!referenced); } -TEST(unpack, int_pointer_off_ref) +BOOST_AUTO_TEST_CASE(unpack_int_pointer_off_ref) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 1); @@ -237,13 +229,13 @@ TEST(unpack, int_pointer_off_ref) #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)) #pragma GCC diagnostic pop #endif // defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)) - EXPECT_EQ(1, oh.get().as()); - EXPECT_EQ(off, sbuf.size()); - EXPECT_FALSE(referenced); + BOOST_CHECK_EQUAL(1, oh.get().as()); + BOOST_CHECK_EQUAL(off, sbuf.size()); + BOOST_CHECK(!referenced); } -TEST(unpack, int_default_null_pointer) +BOOST_AUTO_TEST_CASE(unpack_int_default_null_pointer) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 1); @@ -258,22 +250,22 @@ TEST(unpack, int_default_null_pointer) #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)) #pragma GCC diagnostic pop #endif // defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)) - EXPECT_EQ(1, oh.get().as()); + BOOST_CHECK_EQUAL(1, oh.get().as()); } #endif // MSGPACK_DEFAULT_API_VERSION == 1 -TEST(unpack, int_zone_no_offset_no_ref) +BOOST_AUTO_TEST_CASE(unpack_int_zone_no_offset_no_ref) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 1); msgpack::zone z; msgpack::object obj = msgpack::unpack(z, sbuf.data(), sbuf.size()); - EXPECT_EQ(1, obj.as()); + BOOST_CHECK_EQUAL(1, obj.as()); } -TEST(unpack, int_zone_offset_no_ref) +BOOST_AUTO_TEST_CASE(unpack_int_zone_offset_no_ref) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 1); @@ -282,11 +274,11 @@ TEST(unpack, int_zone_offset_no_ref) msgpack::zone z; msgpack::object obj = msgpack::unpack(z, sbuf.data(), sbuf.size(), off); - EXPECT_EQ(1, obj.as()); - EXPECT_EQ(off, sbuf.size()); + BOOST_CHECK_EQUAL(1, obj.as()); + BOOST_CHECK_EQUAL(off, sbuf.size()); } -TEST(unpack, int_zone_no_offset_ref) +BOOST_AUTO_TEST_CASE(unpack_int_zone_no_offset_ref) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 1); @@ -294,11 +286,11 @@ TEST(unpack, int_zone_no_offset_ref) msgpack::zone z; msgpack::object obj = msgpack::unpack(z, sbuf.data(), sbuf.size(), referenced); - EXPECT_EQ(1, obj.as()); - EXPECT_FALSE(referenced); + BOOST_CHECK_EQUAL(1, obj.as()); + BOOST_CHECK(!referenced); } -TEST(unpack, int_zone_offset_ref) +BOOST_AUTO_TEST_CASE(unpack_int_zone_offset_ref) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 1); @@ -307,13 +299,13 @@ TEST(unpack, int_zone_offset_ref) msgpack::zone z; msgpack::object obj = msgpack::unpack(z, sbuf.data(), sbuf.size(), off, referenced); - EXPECT_EQ(1, obj.as()); - EXPECT_FALSE(referenced); - EXPECT_EQ(off, sbuf.size()); + BOOST_CHECK_EQUAL(1, obj.as()); + BOOST_CHECK(!referenced); + BOOST_CHECK_EQUAL(off, sbuf.size()); } -TEST(unpack, sequence) +BOOST_AUTO_TEST_CASE(unpack_sequence) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 1); @@ -325,19 +317,19 @@ TEST(unpack, sequence) msgpack::object_handle oh; msgpack::unpack(oh, sbuf.data(), sbuf.size(), off); - EXPECT_EQ(1, oh.get().as()); + BOOST_CHECK_EQUAL(1, oh.get().as()); msgpack::unpack(oh, sbuf.data(), sbuf.size(), off); - EXPECT_EQ(2, oh.get().as()); + BOOST_CHECK_EQUAL(2, oh.get().as()); msgpack::unpack(oh, sbuf.data(), sbuf.size(), off); - EXPECT_EQ(3, oh.get().as()); + BOOST_CHECK_EQUAL(3, oh.get().as()); - EXPECT_EQ(off, sbuf.size()); + BOOST_CHECK_EQUAL(off, sbuf.size()); } -TEST(unpack, convert_to_object_handle) +BOOST_AUTO_TEST_CASE(unpack_convert_to_object_handle) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 1); @@ -345,29 +337,29 @@ TEST(unpack, convert_to_object_handle) msgpack::unpack(msg, sbuf.data(), sbuf.size()); msgpack::object_handle oh(msgpack::move(msg)); - EXPECT_EQ(1, oh.get().as()); + BOOST_CHECK_EQUAL(1, oh.get().as()); } -TEST(unpack, convert_to_object_handle_direct) +BOOST_AUTO_TEST_CASE(unpack_convert_to_object_handle_direct) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 1); msgpack::object_handle oh(msgpack::unpack(sbuf.data(), sbuf.size())); - EXPECT_EQ(1, oh.get().as()); + BOOST_CHECK_EQUAL(1, oh.get().as()); } -TEST(unpack, convert_to_object_handle_direct_implicit) +BOOST_AUTO_TEST_CASE(unpack_convert_to_object_handle_direct_implicit) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 1); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_EQ(1, oh.get().as()); + BOOST_CHECK_EQUAL(1, oh.get().as()); } -TEST(unpack, insufficient_bytes_ref) +BOOST_AUTO_TEST_CASE(unpack_insufficient_bytes_ref) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 255); // uint8 (2bytes) @@ -377,19 +369,19 @@ TEST(unpack, insufficient_bytes_ref) msgpack::object_handle oh; try { msgpack::unpack(oh, sbuf.data(), 1, off); - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch (msgpack::insufficient_bytes const&) { - EXPECT_TRUE(true); + BOOST_CHECK(true); #if MSGPACK_DEFAULT_API_VERSION < 3 - EXPECT_EQ(off, 0u); + BOOST_CHECK_EQUAL(off, 0u); #else // MSGPACK_DEFAULT_API_VERSION < 3 - EXPECT_EQ(1u, off); + BOOST_CHECK_EQUAL(1u, off); #endif // MSGPACK_DEFAULT_API_VERSION < 3 } } -TEST(unpack, insufficient_bytes_object_handle) +BOOST_AUTO_TEST_CASE(unpack_insufficient_bytes_object_handle) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 255); // uint8 (2bytes) @@ -398,19 +390,19 @@ TEST(unpack, insufficient_bytes_object_handle) try { msgpack::object_handle oh(msgpack::unpack(sbuf.data(), 1, off)); - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch (msgpack::insufficient_bytes const&) { - EXPECT_TRUE(true); + BOOST_CHECK(true); #if MSGPACK_DEFAULT_API_VERSION < 3 - EXPECT_EQ(off, 0u); + BOOST_CHECK_EQUAL(off, 0u); #else // MSGPACK_DEFAULT_API_VERSION < 3 - EXPECT_EQ(1u, off); + BOOST_CHECK_EQUAL(1u, off); #endif // MSGPACK_DEFAULT_API_VERSION < 3 } } -TEST(unpack, insufficient_bytes_zone) +BOOST_AUTO_TEST_CASE(unpack_insufficient_bytes_zone) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 255); // uint8 (2bytes) @@ -420,19 +412,19 @@ TEST(unpack, insufficient_bytes_zone) try { msgpack::zone z; msgpack::unpack(z, sbuf.data(), 1, off); - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch (msgpack::insufficient_bytes const&) { - EXPECT_TRUE(true); + BOOST_CHECK(true); #if MSGPACK_DEFAULT_API_VERSION < 3 - EXPECT_EQ(off, 0u); + BOOST_CHECK_EQUAL(off, 0u); #else // MSGPACK_DEFAULT_API_VERSION < 3 - EXPECT_EQ(1u, off); + BOOST_CHECK_EQUAL(1u, off); #endif // MSGPACK_DEFAULT_API_VERSION < 3 } } -TEST(unpack, parse_error) +BOOST_AUTO_TEST_CASE(unpack_parse_error) { msgpack::sbuffer sbuf; @@ -443,15 +435,15 @@ TEST(unpack, parse_error) msgpack::object_handle oh; try { msgpack::unpack(oh, sbuf.data(), sbuf.size()); - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch (msgpack::parse_error const&) { thrown = true; } - EXPECT_TRUE(thrown); + BOOST_CHECK(thrown); } -TEST(unpack, returned_parse_error) +BOOST_AUTO_TEST_CASE(unpack_returned_parse_error) { msgpack::sbuffer sbuf; @@ -461,15 +453,15 @@ TEST(unpack, returned_parse_error) bool thrown = false; try { msgpack::unpack(sbuf.data(), sbuf.size()); - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch (msgpack::parse_error const&) { thrown = true; } - EXPECT_TRUE(thrown); + BOOST_CHECK(thrown); } -TEST(unpack, zone_parse_error) +BOOST_AUTO_TEST_CASE(unpack_zone_parse_error) { msgpack::sbuffer sbuf; @@ -480,34 +472,34 @@ TEST(unpack, zone_parse_error) msgpack::zone z; try { msgpack::unpack(z, sbuf.data(), sbuf.size()); - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch (msgpack::parse_error const&) { thrown = true; } - EXPECT_TRUE(thrown); + BOOST_CHECK(thrown); } -TEST(unpack, extra_bytes) +BOOST_AUTO_TEST_CASE(unpack_extra_bytes) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 1); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size() + 1); - EXPECT_EQ(1, oh.get().as()); + BOOST_CHECK_EQUAL(1, oh.get().as()); } -TEST(unpack, zone_extra_bytes) +BOOST_AUTO_TEST_CASE(unpack_zone_extra_bytes) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 1); msgpack::zone z; msgpack::object obj = msgpack::unpack(z, sbuf.data(), sbuf.size() + 1); - EXPECT_EQ(1, obj.as()); + BOOST_CHECK_EQUAL(1, obj.as()); } -TEST(unpack, int_off_larger_than_length) +BOOST_AUTO_TEST_CASE(unpack_int_off_larger_than_length) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 1); @@ -521,23 +513,23 @@ TEST(unpack, int_off_larger_than_length) catch (msgpack::insufficient_bytes const&) { thrown = true; } - EXPECT_TRUE(thrown); - EXPECT_EQ(off, 2u); + BOOST_CHECK(thrown); + BOOST_CHECK_EQUAL(off, 2u); } -TEST(unpack, empty_array_fix) +BOOST_AUTO_TEST_CASE(unpack_empty_array_fix) { std::string buf; buf.push_back(static_cast(0x90u)); std::size_t off = 0; msgpack::object_handle oh = msgpack::unpack(buf.data(), buf.size(), off); - EXPECT_EQ(oh.get().type, msgpack::type::ARRAY); - EXPECT_EQ(oh.get().via.array.size, 0u); - EXPECT_EQ(off, 1u); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(oh.get().via.array.size, 0u); + BOOST_CHECK_EQUAL(off, 1u); } -TEST(unpack, empty_array_16) +BOOST_AUTO_TEST_CASE(unpack_empty_array_16) { std::string buf; buf.push_back(static_cast(0xdcu)); @@ -546,12 +538,12 @@ TEST(unpack, empty_array_16) std::size_t off = 0; msgpack::object_handle oh = msgpack::unpack(buf.data(), buf.size(), off); - EXPECT_EQ(oh.get().type, msgpack::type::ARRAY); - EXPECT_EQ(oh.get().via.array.size, 0u); - EXPECT_EQ(off, 3u); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(oh.get().via.array.size, 0u); + BOOST_CHECK_EQUAL(off, 3u); } -TEST(unpack, empty_array_32) +BOOST_AUTO_TEST_CASE(unpack_empty_array_32) { std::string buf; buf.push_back(static_cast(0xddu)); @@ -562,24 +554,24 @@ TEST(unpack, empty_array_32) std::size_t off = 0; msgpack::object_handle oh = msgpack::unpack(buf.data(), buf.size(), off); - EXPECT_EQ(oh.get().type, msgpack::type::ARRAY); - EXPECT_EQ(oh.get().via.array.size, 0u); - EXPECT_EQ(off, 5u); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::ARRAY); + BOOST_CHECK_EQUAL(oh.get().via.array.size, 0u); + BOOST_CHECK_EQUAL(off, 5u); } -TEST(unpack, empty_map_fix) +BOOST_AUTO_TEST_CASE(unpack_empty_map_fix) { std::string buf; buf.push_back(static_cast(0x80u)); std::size_t off = 0; msgpack::object_handle oh = msgpack::unpack(buf.data(), buf.size(), off); - EXPECT_EQ(oh.get().type, msgpack::type::MAP); - EXPECT_EQ(oh.get().via.map.size, 0u); - EXPECT_EQ(off, 1u); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::MAP); + BOOST_CHECK_EQUAL(oh.get().via.map.size, 0u); + BOOST_CHECK_EQUAL(off, 1u); } -TEST(unpack, empty_map_16) +BOOST_AUTO_TEST_CASE(unpack_empty_map_16) { std::string buf; buf.push_back(static_cast(0xdeu)); @@ -588,12 +580,12 @@ TEST(unpack, empty_map_16) std::size_t off = 0; msgpack::object_handle oh = msgpack::unpack(buf.data(), buf.size(), off); - EXPECT_EQ(oh.get().type, msgpack::type::MAP); - EXPECT_EQ(oh.get().via.map.size, 0u); - EXPECT_EQ(off, 3u); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::MAP); + BOOST_CHECK_EQUAL(oh.get().via.map.size, 0u); + BOOST_CHECK_EQUAL(off, 3u); } -TEST(unpack, empty_map_32) +BOOST_AUTO_TEST_CASE(unpack_empty_map_32) { std::string buf; buf.push_back(static_cast(0xdfu)); @@ -604,7 +596,7 @@ TEST(unpack, empty_map_32) std::size_t off = 0; msgpack::object_handle oh = msgpack::unpack(buf.data(), buf.size(), off); - EXPECT_EQ(oh.get().type, msgpack::type::MAP); - EXPECT_EQ(oh.get().via.map.size, 0u); - EXPECT_EQ(off, 5u); + BOOST_CHECK_EQUAL(oh.get().type, msgpack::type::MAP); + BOOST_CHECK_EQUAL(oh.get().via.map.size, 0u); + BOOST_CHECK_EQUAL(off, 5u); } diff --git a/test/raw.cpp b/test/raw.cpp index 0d7eafcc..bc748731 100644 --- a/test/raw.cpp +++ b/test/raw.cpp @@ -3,22 +3,14 @@ #include #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) - -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE MSGPACK_RAW_REF +#include #ifdef HAVE_CONFIG_H #include "config.h" #endif -TEST(MSGPACK_RAW_REF, pack_unpack) +BOOST_AUTO_TEST_CASE(pack_unpack) { std::string s = "ABC"; @@ -26,19 +18,19 @@ TEST(MSGPACK_RAW_REF, pack_unpack) std::stringstream ss; msgpack::pack(ss, rr1); std::string packed_str = ss.str(); - EXPECT_EQ(packed_str[0], static_cast(0xc4u)); - EXPECT_EQ(packed_str[1], static_cast(0x03u)); - EXPECT_EQ(packed_str[2], 'A'); - EXPECT_EQ(packed_str[3], 'B'); - EXPECT_EQ(packed_str[4], 'C'); + BOOST_CHECK_EQUAL(packed_str[0], static_cast(0xc4u)); + BOOST_CHECK_EQUAL(packed_str[1], static_cast(0x03u)); + BOOST_CHECK_EQUAL(packed_str[2], 'A'); + BOOST_CHECK_EQUAL(packed_str[3], 'B'); + BOOST_CHECK_EQUAL(packed_str[4], 'C'); msgpack::object_handle oh = msgpack::unpack(packed_str.data(), packed_str.size()); msgpack::type::raw_ref rr2 = oh.get().as(); - EXPECT_TRUE(rr1 == rr2); + BOOST_CHECK(rr1 == rr2); } -TEST(MSGPACK_RAW_REF, pack_unpack_8_l) +BOOST_AUTO_TEST_CASE(pack_unpack_8_l) { std::string s; @@ -46,16 +38,16 @@ TEST(MSGPACK_RAW_REF, pack_unpack_8_l) std::stringstream ss; msgpack::pack(ss, rr1); std::string packed_str = ss.str(); - EXPECT_EQ(packed_str[0], static_cast(0xc4u)); - EXPECT_EQ(packed_str[1], static_cast(0x00u)); + BOOST_CHECK_EQUAL(packed_str[0], static_cast(0xc4u)); + BOOST_CHECK_EQUAL(packed_str[1], static_cast(0x00u)); msgpack::object_handle oh = msgpack::unpack(packed_str.data(), packed_str.size()); msgpack::type::raw_ref rr2 = oh.get().as(); - EXPECT_TRUE(rr1 == rr2); + BOOST_CHECK(rr1 == rr2); } -TEST(MSGPACK_RAW_REF, pack_unpack_8_h) +BOOST_AUTO_TEST_CASE(pack_unpack_8_h) { std::string s(0xff, 'A'); @@ -63,17 +55,17 @@ TEST(MSGPACK_RAW_REF, pack_unpack_8_h) std::stringstream ss; msgpack::pack(ss, rr1); std::string packed_str = ss.str(); - EXPECT_EQ(packed_str[0], static_cast(0xc4u)); - EXPECT_EQ(packed_str[1], static_cast(0xffu)); - EXPECT_EQ(packed_str[2], 'A'); + BOOST_CHECK_EQUAL(packed_str[0], static_cast(0xc4u)); + BOOST_CHECK_EQUAL(packed_str[1], static_cast(0xffu)); + BOOST_CHECK_EQUAL(packed_str[2], 'A'); msgpack::object_handle oh = msgpack::unpack(packed_str.data(), packed_str.size()); msgpack::type::raw_ref rr2 = oh.get().as(); - EXPECT_TRUE(rr1 == rr2); + BOOST_CHECK(rr1 == rr2); } -TEST(MSGPACK_RAW_REF, pack_unpack_16_l) +BOOST_AUTO_TEST_CASE(pack_unpack_16_l) { std::string s(0xff+1, 'A'); @@ -81,18 +73,18 @@ TEST(MSGPACK_RAW_REF, pack_unpack_16_l) std::stringstream ss; msgpack::pack(ss, rr1); std::string packed_str = ss.str(); - EXPECT_EQ(packed_str[0], static_cast(0xc5u)); - EXPECT_EQ(packed_str[1], static_cast(0x01)); - EXPECT_EQ(packed_str[2], static_cast(0x00)); - EXPECT_EQ(packed_str[3], 'A'); + BOOST_CHECK_EQUAL(packed_str[0], static_cast(0xc5u)); + BOOST_CHECK_EQUAL(packed_str[1], static_cast(0x01)); + BOOST_CHECK_EQUAL(packed_str[2], static_cast(0x00)); + BOOST_CHECK_EQUAL(packed_str[3], 'A'); msgpack::object_handle oh = msgpack::unpack(packed_str.data(), packed_str.size()); msgpack::type::raw_ref rr2 = oh.get().as(); - EXPECT_TRUE(rr1 == rr2); + BOOST_CHECK(rr1 == rr2); } -TEST(MSGPACK_RAW_REF, pack_unpack_16_h) +BOOST_AUTO_TEST_CASE(pack_unpack_16_h) { std::string s(0xffff, 'A'); @@ -100,18 +92,18 @@ TEST(MSGPACK_RAW_REF, pack_unpack_16_h) std::stringstream ss; msgpack::pack(ss, rr1); std::string packed_str = ss.str(); - EXPECT_EQ(packed_str[0], static_cast(0xc5u)); - EXPECT_EQ(packed_str[1], static_cast(0xffu)); - EXPECT_EQ(packed_str[2], static_cast(0xffu)); - EXPECT_EQ(packed_str[3], 'A'); + BOOST_CHECK_EQUAL(packed_str[0], static_cast(0xc5u)); + BOOST_CHECK_EQUAL(packed_str[1], static_cast(0xffu)); + BOOST_CHECK_EQUAL(packed_str[2], static_cast(0xffu)); + BOOST_CHECK_EQUAL(packed_str[3], 'A'); msgpack::object_handle oh = msgpack::unpack(packed_str.data(), packed_str.size()); msgpack::type::raw_ref rr2 = oh.get().as(); - EXPECT_TRUE(rr1 == rr2); + BOOST_CHECK(rr1 == rr2); } -TEST(MSGPACK_RAW_REF, pack_unpack_32_l) +BOOST_AUTO_TEST_CASE(pack_unpack_32_l) { std::string s(0xffff+1, 'A'); @@ -119,20 +111,20 @@ TEST(MSGPACK_RAW_REF, pack_unpack_32_l) std::stringstream ss; msgpack::pack(ss, rr1); std::string packed_str = ss.str(); - EXPECT_EQ(packed_str[0], static_cast(0xc6u)); - EXPECT_EQ(packed_str[1], static_cast(0x00)); - EXPECT_EQ(packed_str[2], static_cast(0x01)); - EXPECT_EQ(packed_str[3], static_cast(0x00)); - EXPECT_EQ(packed_str[4], static_cast(0x00)); - EXPECT_EQ(packed_str[5], 'A'); + BOOST_CHECK_EQUAL(packed_str[0], static_cast(0xc6u)); + BOOST_CHECK_EQUAL(packed_str[1], static_cast(0x00)); + BOOST_CHECK_EQUAL(packed_str[2], static_cast(0x01)); + BOOST_CHECK_EQUAL(packed_str[3], static_cast(0x00)); + BOOST_CHECK_EQUAL(packed_str[4], static_cast(0x00)); + BOOST_CHECK_EQUAL(packed_str[5], 'A'); msgpack::object_handle oh = msgpack::unpack(packed_str.data(), packed_str.size()); msgpack::type::raw_ref rr2 = oh.get().as(); - EXPECT_TRUE(rr1 == rr2); + BOOST_CHECK(rr1 == rr2); } -TEST(MSGPACK_V4RAW_REF, pack_unpack) +BOOST_AUTO_TEST_CASE(v4_pack_unpack) { std::string s = "ABC"; @@ -140,18 +132,18 @@ TEST(MSGPACK_V4RAW_REF, pack_unpack) std::stringstream ss; msgpack::pack(ss, rr1); std::string packed_str = ss.str(); - EXPECT_EQ(packed_str[0], static_cast(0xa3u)); - EXPECT_EQ(packed_str[1], 'A'); - EXPECT_EQ(packed_str[2], 'B'); - EXPECT_EQ(packed_str[3], 'C'); + BOOST_CHECK_EQUAL(packed_str[0], static_cast(0xa3u)); + BOOST_CHECK_EQUAL(packed_str[1], 'A'); + BOOST_CHECK_EQUAL(packed_str[2], 'B'); + BOOST_CHECK_EQUAL(packed_str[3], 'C'); msgpack::object_handle oh = msgpack::unpack(packed_str.data(), packed_str.size()); msgpack::type::v4raw_ref rr2 = oh.get().as(); - EXPECT_TRUE(rr1 == rr2); + BOOST_CHECK(rr1 == rr2); } -TEST(MSGPACK_V4RAW_REF, pack_unpack_fix_l) +BOOST_AUTO_TEST_CASE(v4_pack_unpack_fix_l) { std::string s; @@ -159,15 +151,15 @@ TEST(MSGPACK_V4RAW_REF, pack_unpack_fix_l) std::stringstream ss; msgpack::pack(ss, rr1); std::string packed_str = ss.str(); - EXPECT_EQ(packed_str[0], static_cast(0xa0u)); + BOOST_CHECK_EQUAL(packed_str[0], static_cast(0xa0u)); msgpack::object_handle oh = msgpack::unpack(packed_str.data(), packed_str.size()); msgpack::type::v4raw_ref rr2 = oh.get().as(); - EXPECT_TRUE(rr1 == rr2); + BOOST_CHECK(rr1 == rr2); } -TEST(MSGPACK_V4RAW_REF, pack_unpack_fix_h) +BOOST_AUTO_TEST_CASE(v4_pack_unpack_fix_h) { std::string s(0x1f, 'A'); @@ -175,16 +167,16 @@ TEST(MSGPACK_V4RAW_REF, pack_unpack_fix_h) std::stringstream ss; msgpack::pack(ss, rr1); std::string packed_str = ss.str(); - EXPECT_EQ(packed_str[0], static_cast(0xbfu)); - EXPECT_EQ(packed_str[1], 'A'); + BOOST_CHECK_EQUAL(packed_str[0], static_cast(0xbfu)); + BOOST_CHECK_EQUAL(packed_str[1], 'A'); msgpack::object_handle oh = msgpack::unpack(packed_str.data(), packed_str.size()); msgpack::type::v4raw_ref rr2 = oh.get().as(); - EXPECT_TRUE(rr1 == rr2); + BOOST_CHECK(rr1 == rr2); } -TEST(MSGPACK_V4RAW_REF, pack_unpack_16_l) +BOOST_AUTO_TEST_CASE(v4_pack_unpack_16_l) { std::string s(0x1f+1, 'A'); @@ -192,18 +184,18 @@ TEST(MSGPACK_V4RAW_REF, pack_unpack_16_l) std::stringstream ss; msgpack::pack(ss, rr1); std::string packed_str = ss.str(); - EXPECT_EQ(packed_str[0], static_cast(0xdau)); - EXPECT_EQ(packed_str[1], static_cast(0x00u)); - EXPECT_EQ(packed_str[2], static_cast(0x20u)); - EXPECT_EQ(packed_str[3], 'A'); + BOOST_CHECK_EQUAL(packed_str[0], static_cast(0xdau)); + BOOST_CHECK_EQUAL(packed_str[1], static_cast(0x00u)); + BOOST_CHECK_EQUAL(packed_str[2], static_cast(0x20u)); + BOOST_CHECK_EQUAL(packed_str[3], 'A'); msgpack::object_handle oh = msgpack::unpack(packed_str.data(), packed_str.size()); msgpack::type::v4raw_ref rr2 = oh.get().as(); - EXPECT_TRUE(rr1 == rr2); + BOOST_CHECK(rr1 == rr2); } -TEST(MSGPACK_V4RAW_REF, pack_unpack_16_h) +BOOST_AUTO_TEST_CASE(v4_pack_unpack_16_h) { std::string s(0xffff, 'A'); @@ -211,18 +203,18 @@ TEST(MSGPACK_V4RAW_REF, pack_unpack_16_h) std::stringstream ss; msgpack::pack(ss, rr1); std::string packed_str = ss.str(); - EXPECT_EQ(packed_str[0], static_cast(0xdau)); - EXPECT_EQ(packed_str[1], static_cast(0xffu)); - EXPECT_EQ(packed_str[2], static_cast(0xffu)); - EXPECT_EQ(packed_str[3], 'A'); + BOOST_CHECK_EQUAL(packed_str[0], static_cast(0xdau)); + BOOST_CHECK_EQUAL(packed_str[1], static_cast(0xffu)); + BOOST_CHECK_EQUAL(packed_str[2], static_cast(0xffu)); + BOOST_CHECK_EQUAL(packed_str[3], 'A'); msgpack::object_handle oh = msgpack::unpack(packed_str.data(), packed_str.size()); msgpack::type::v4raw_ref rr2 = oh.get().as(); - EXPECT_TRUE(rr1 == rr2); + BOOST_CHECK(rr1 == rr2); } -TEST(MSGPACK_V4RAW_REF, pack_unpack_32_l) +BOOST_AUTO_TEST_CASE(v4_pack_unpack_32_l) { std::string s(0xffff+1, 'A'); @@ -230,15 +222,15 @@ TEST(MSGPACK_V4RAW_REF, pack_unpack_32_l) std::stringstream ss; msgpack::pack(ss, rr1); std::string packed_str = ss.str(); - EXPECT_EQ(packed_str[0], static_cast(0xdbu)); - EXPECT_EQ(packed_str[1], static_cast(0x00)); - EXPECT_EQ(packed_str[2], static_cast(0x01)); - EXPECT_EQ(packed_str[3], static_cast(0x00)); - EXPECT_EQ(packed_str[4], static_cast(0x00)); - EXPECT_EQ(packed_str[5], 'A'); + BOOST_CHECK_EQUAL(packed_str[0], static_cast(0xdbu)); + BOOST_CHECK_EQUAL(packed_str[1], static_cast(0x00)); + BOOST_CHECK_EQUAL(packed_str[2], static_cast(0x01)); + BOOST_CHECK_EQUAL(packed_str[3], static_cast(0x00)); + BOOST_CHECK_EQUAL(packed_str[4], static_cast(0x00)); + BOOST_CHECK_EQUAL(packed_str[5], 'A'); msgpack::object_handle oh = msgpack::unpack(packed_str.data(), packed_str.size()); msgpack::type::v4raw_ref rr2 = oh.get().as(); - EXPECT_TRUE(rr1 == rr2); + BOOST_CHECK(rr1 == rr2); } diff --git a/test/reference.cpp b/test/reference.cpp index 5ee127f4..e3240c3d 100644 --- a/test/reference.cpp +++ b/test/reference.cpp @@ -1,17 +1,9 @@ #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE reference +#include -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) - -TEST(reference, unpack_int) +BOOST_AUTO_TEST_CASE(unpack_int) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 1); @@ -19,10 +11,10 @@ TEST(reference, unpack_int) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size(), referenced); - EXPECT_FALSE(referenced); + BOOST_CHECK(!referenced); } -TEST(reference, unpack_string) +BOOST_AUTO_TEST_CASE(unpack_string) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, std::string("abcdefg")); @@ -30,10 +22,10 @@ TEST(reference, unpack_string) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size(), referenced); - EXPECT_FALSE(referenced); + BOOST_CHECK(!referenced); } -TEST(reference, unpack_bin) +BOOST_AUTO_TEST_CASE(unpack_bin) { msgpack::sbuffer sbuf; msgpack::packer packer(sbuf); @@ -44,10 +36,10 @@ TEST(reference, unpack_bin) bool referenced = false; msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size(), referenced); - EXPECT_FALSE(referenced); + BOOST_CHECK(!referenced); } -TEST(reference, unpack_ext) +BOOST_AUTO_TEST_CASE(unpack_ext) { msgpack::sbuffer sbuf; msgpack::packer packer(sbuf); @@ -58,12 +50,12 @@ TEST(reference, unpack_ext) bool referenced = false; msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size(), referenced); - EXPECT_FALSE(referenced); + BOOST_CHECK(!referenced); } bool never_called(msgpack::type::object_type, std::size_t, void*) { - EXPECT_TRUE(false); + BOOST_CHECK(false); return false; } @@ -72,7 +64,7 @@ bool always_reference(msgpack::type::object_type, std::size_t, void*) return true; } -TEST(reference, unpack_int_ref) +BOOST_AUTO_TEST_CASE(unpack_int_ref) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 1); @@ -80,10 +72,10 @@ TEST(reference, unpack_int_ref) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size(), referenced, never_called); - EXPECT_FALSE(referenced); + BOOST_CHECK(!referenced); } -TEST(reference, unpack_string_ref) +BOOST_AUTO_TEST_CASE(unpack_string_ref) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, std::string("abcdefg")); @@ -91,10 +83,10 @@ TEST(reference, unpack_string_ref) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size(), referenced, always_reference); - EXPECT_TRUE(referenced); + BOOST_CHECK(referenced); } -TEST(reference, unpack_bin_ref) +BOOST_AUTO_TEST_CASE(unpack_bin_ref) { msgpack::sbuffer sbuf; msgpack::packer packer(sbuf); @@ -105,10 +97,10 @@ TEST(reference, unpack_bin_ref) bool referenced = false; msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size(), referenced, always_reference); - EXPECT_TRUE(referenced); + BOOST_CHECK(referenced); } -TEST(reference, unpack_ext_ref) +BOOST_AUTO_TEST_CASE(unpack_ext_ref) { msgpack::sbuffer sbuf; msgpack::packer packer(sbuf); @@ -120,7 +112,7 @@ TEST(reference, unpack_ext_ref) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size(), referenced, always_reference); - EXPECT_TRUE(referenced); + BOOST_CHECK(referenced); } static void* s_p; @@ -139,12 +131,12 @@ bool sized_reference(msgpack::type::object_type t, std::size_t s, void* p) if (s >= 7) return true; break; default: - EXPECT_TRUE(false); + BOOST_CHECK(false); } return false; } -TEST(reference, unpack_int_sized_ref) +BOOST_AUTO_TEST_CASE(unpack_int_sized_ref) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 1); @@ -154,11 +146,11 @@ TEST(reference, unpack_int_sized_ref) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size(), referenced, never_called, &sbuf); - EXPECT_FALSE(referenced); - EXPECT_EQ(MSGPACK_NULLPTR, s_p); + BOOST_CHECK(!referenced); + BOOST_CHECK(MSGPACK_NULLPTR == s_p); } -TEST(reference, unpack_string_sized_ref_4) +BOOST_AUTO_TEST_CASE(unpack_string_sized_ref_4) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, std::string("1234")); @@ -169,12 +161,12 @@ TEST(reference, unpack_string_sized_ref_4) // That is stored to s_p in sized_reference msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size(), referenced, sized_reference, &sbuf); - EXPECT_FALSE(referenced); + BOOST_CHECK(!referenced); // compare the passed argument with stored s_p. - EXPECT_EQ(&sbuf, s_p); + BOOST_CHECK_EQUAL(&sbuf, s_p); } -TEST(reference, unpack_string_sized_ref_5) +BOOST_AUTO_TEST_CASE(unpack_string_sized_ref_5) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, std::string("12345")); @@ -184,12 +176,12 @@ TEST(reference, unpack_string_sized_ref_5) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size(), referenced, sized_reference, &sbuf); - EXPECT_TRUE(referenced); - EXPECT_EQ(&sbuf, s_p); + BOOST_CHECK(referenced); + BOOST_CHECK_EQUAL(&sbuf, s_p); } -TEST(reference, unpack_bin_sized_ref_5) +BOOST_AUTO_TEST_CASE(unpack_bin_sized_ref_5) { msgpack::sbuffer sbuf; msgpack::packer packer(sbuf); @@ -202,11 +194,11 @@ TEST(reference, unpack_bin_sized_ref_5) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size(), referenced, sized_reference, &sbuf); - EXPECT_FALSE(referenced); - EXPECT_EQ(&sbuf, s_p); + BOOST_CHECK(!referenced); + BOOST_CHECK_EQUAL(&sbuf, s_p); } -TEST(reference, unpack_bin_sized_ref_6) +BOOST_AUTO_TEST_CASE(unpack_bin_sized_ref_6) { msgpack::sbuffer sbuf; msgpack::packer packer(sbuf); @@ -218,11 +210,11 @@ TEST(reference, unpack_bin_sized_ref_6) s_p = MSGPACK_NULLPTR; msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size(), referenced, sized_reference, &sbuf); - EXPECT_TRUE(referenced); - EXPECT_EQ(&sbuf, s_p); + BOOST_CHECK(referenced); + BOOST_CHECK_EQUAL(&sbuf, s_p); } -TEST(reference, unpack_ext_sized_ref_6) +BOOST_AUTO_TEST_CASE(unpack_ext_sized_ref_6) { msgpack::sbuffer sbuf; msgpack::packer packer(sbuf); @@ -235,11 +227,11 @@ TEST(reference, unpack_ext_sized_ref_6) s_p = MSGPACK_NULLPTR; msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size(), referenced, sized_reference, &sbuf); - EXPECT_FALSE(referenced); - EXPECT_EQ(&sbuf, s_p); + BOOST_CHECK(!referenced); + BOOST_CHECK_EQUAL(&sbuf, s_p); } -TEST(reference, unpack_ext_sized_ref_7) +BOOST_AUTO_TEST_CASE(unpack_ext_sized_ref_7) { msgpack::sbuffer sbuf; msgpack::packer packer(sbuf); @@ -252,14 +244,14 @@ TEST(reference, unpack_ext_sized_ref_7) s_p = MSGPACK_NULLPTR; msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size(), referenced, sized_reference, &sbuf); - EXPECT_TRUE(referenced); - EXPECT_EQ(&sbuf, s_p); + BOOST_CHECK(referenced); + BOOST_CHECK_EQUAL(&sbuf, s_p); } // default reference function // STR, BIN, and EXT are always referenced, otherwise copied (converted). -TEST(reference, unpacker_int) +BOOST_AUTO_TEST_CASE(unpacker_int) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 1); @@ -271,11 +263,11 @@ TEST(reference, unpacker_int) std::memcpy(unp.buffer(), sbuf.data(), sbuf.size()); unp.buffer_consumed(sbuf.size()); bool b = unp.next(oh, referenced); - EXPECT_TRUE(b); - EXPECT_FALSE(referenced); + BOOST_CHECK(b); + BOOST_CHECK(!referenced); } -TEST(reference, unpacker_string) +BOOST_AUTO_TEST_CASE(unpacker_string) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, std::string("a")); @@ -287,11 +279,11 @@ TEST(reference, unpacker_string) std::memcpy(unp.buffer(), sbuf.data(), sbuf.size()); unp.buffer_consumed(sbuf.size()); bool b = unp.next(oh, referenced); - EXPECT_TRUE(b); - EXPECT_TRUE(referenced); + BOOST_CHECK(b); + BOOST_CHECK(referenced); } -TEST(reference, unpacker_bin) +BOOST_AUTO_TEST_CASE(unpacker_bin) { msgpack::sbuffer sbuf; msgpack::packer packer(sbuf); @@ -306,11 +298,11 @@ TEST(reference, unpacker_bin) std::memcpy(unp.buffer(), sbuf.data(), sbuf.size()); unp.buffer_consumed(sbuf.size()); bool b = unp.next(oh, referenced); - EXPECT_TRUE(b); - EXPECT_TRUE(referenced); + BOOST_CHECK(b); + BOOST_CHECK(referenced); } -TEST(reference, unpacker_ext) +BOOST_AUTO_TEST_CASE(unpacker_ext) { msgpack::sbuffer sbuf; msgpack::packer packer(sbuf); @@ -326,13 +318,13 @@ TEST(reference, unpacker_ext) std::memcpy(unp.buffer(), sbuf.data(), sbuf.size()); unp.buffer_consumed(sbuf.size()); bool b = unp.next(oh, referenced); - EXPECT_TRUE(b); - EXPECT_TRUE(referenced); + BOOST_CHECK(b); + BOOST_CHECK(referenced); } // pass user custom reference function -TEST(reference, unpacker_int_sized_ref) +BOOST_AUTO_TEST_CASE(unpacker_int_sized_ref) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 1); @@ -345,12 +337,12 @@ TEST(reference, unpacker_int_sized_ref) unp.buffer_consumed(sbuf.size()); s_p = MSGPACK_NULLPTR; bool b = unp.next(oh, referenced); - EXPECT_TRUE(b); - EXPECT_FALSE(referenced); - EXPECT_EQ(MSGPACK_NULLPTR, s_p); + BOOST_CHECK(b); + BOOST_CHECK(!referenced); + BOOST_CHECK(MSGPACK_NULLPTR == s_p); } -TEST(reference, unpacker_string_sized_ref_4) +BOOST_AUTO_TEST_CASE(unpacker_string_sized_ref_4) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, std::string("1234")); @@ -363,12 +355,12 @@ TEST(reference, unpacker_string_sized_ref_4) unp.buffer_consumed(sbuf.size()); s_p = MSGPACK_NULLPTR; bool b = unp.next(oh, referenced); - EXPECT_TRUE(b); - EXPECT_FALSE(referenced); - EXPECT_EQ(&sbuf, s_p); + BOOST_CHECK(b); + BOOST_CHECK(!referenced); + BOOST_CHECK_EQUAL(&sbuf, s_p); } -TEST(reference, unpacker_string_sized_ref_5) +BOOST_AUTO_TEST_CASE(unpacker_string_sized_ref_5) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, std::string("12345")); @@ -381,13 +373,13 @@ TEST(reference, unpacker_string_sized_ref_5) unp.buffer_consumed(sbuf.size()); s_p = MSGPACK_NULLPTR; bool b = unp.next(oh, referenced); - EXPECT_TRUE(b); - EXPECT_TRUE(referenced); - EXPECT_EQ(&sbuf, s_p); + BOOST_CHECK(b); + BOOST_CHECK(referenced); + BOOST_CHECK_EQUAL(&sbuf, s_p); } -TEST(reference, unpacker_bin_sized_ref_5) +BOOST_AUTO_TEST_CASE(unpacker_bin_sized_ref_5) { msgpack::sbuffer sbuf; msgpack::packer packer(sbuf); @@ -403,12 +395,12 @@ TEST(reference, unpacker_bin_sized_ref_5) unp.buffer_consumed(sbuf.size()); s_p = MSGPACK_NULLPTR; bool b = unp.next(oh, referenced); - EXPECT_TRUE(b); - EXPECT_FALSE(referenced); - EXPECT_EQ(&sbuf, s_p); + BOOST_CHECK(b); + BOOST_CHECK(!referenced); + BOOST_CHECK_EQUAL(&sbuf, s_p); } -TEST(reference, unpacker_bin_sized_ref_6) +BOOST_AUTO_TEST_CASE(unpacker_bin_sized_ref_6) { msgpack::sbuffer sbuf; msgpack::packer packer(sbuf); @@ -424,12 +416,12 @@ TEST(reference, unpacker_bin_sized_ref_6) unp.buffer_consumed(sbuf.size()); s_p = MSGPACK_NULLPTR; bool b = unp.next(oh, referenced); - EXPECT_TRUE(b); - EXPECT_TRUE(referenced); - EXPECT_EQ(&sbuf, s_p); + BOOST_CHECK(b); + BOOST_CHECK(referenced); + BOOST_CHECK_EQUAL(&sbuf, s_p); } -TEST(reference, unpacker_ext_sized_ref_6) +BOOST_AUTO_TEST_CASE(unpacker_ext_sized_ref_6) { msgpack::sbuffer sbuf; msgpack::packer packer(sbuf); @@ -446,12 +438,12 @@ TEST(reference, unpacker_ext_sized_ref_6) unp.buffer_consumed(sbuf.size()); s_p = MSGPACK_NULLPTR; bool b = unp.next(oh, referenced); - EXPECT_TRUE(b); - EXPECT_FALSE(referenced); - EXPECT_EQ(&sbuf, s_p); + BOOST_CHECK(b); + BOOST_CHECK(!referenced); + BOOST_CHECK_EQUAL(&sbuf, s_p); } -TEST(reference, unpacker_ext_sized_ref_7) +BOOST_AUTO_TEST_CASE(unpacker_ext_sized_ref_7) { msgpack::sbuffer sbuf; msgpack::packer packer(sbuf); @@ -468,7 +460,7 @@ TEST(reference, unpacker_ext_sized_ref_7) unp.buffer_consumed(sbuf.size()); s_p = MSGPACK_NULLPTR; bool b = unp.next(oh, referenced); - EXPECT_TRUE(b); - EXPECT_TRUE(referenced); - EXPECT_EQ(&sbuf, s_p); + BOOST_CHECK(b); + BOOST_CHECK(referenced); + BOOST_CHECK_EQUAL(&sbuf, s_p); } diff --git a/test/reference_cpp11.cpp b/test/reference_cpp11.cpp index 0faa2e21..fe7bb404 100644 --- a/test/reference_cpp11.cpp +++ b/test/reference_cpp11.cpp @@ -1,39 +1,31 @@ #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) - -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE reference +#include #if !defined(MSGPACK_USE_CPP03) -TEST(reference, unpack_int) +BOOST_AUTO_TEST_CASE(unpack_int) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 1); bool referenced; msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size(), referenced); - EXPECT_FALSE(referenced); + BOOST_CHECK(!referenced); } -TEST(reference, unpack_string) +BOOST_AUTO_TEST_CASE(unpack_string) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, std::string("abcdefg")); bool referenced; msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size(), referenced); - EXPECT_FALSE(referenced); + BOOST_CHECK(!referenced); } -TEST(reference, unpack_bin) +BOOST_AUTO_TEST_CASE(unpack_bin) { msgpack::sbuffer sbuf; msgpack::packer packer(sbuf); @@ -43,10 +35,10 @@ TEST(reference, unpack_bin) bool referenced; msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size(), referenced); - EXPECT_FALSE(referenced); + BOOST_CHECK(!referenced); } -TEST(reference, unpack_ext) +BOOST_AUTO_TEST_CASE(unpack_ext) { msgpack::sbuffer sbuf; msgpack::packer packer(sbuf); @@ -56,12 +48,12 @@ TEST(reference, unpack_ext) packer.pack_ext_body(buf, sizeof(buf)); bool referenced; msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size(), referenced); - EXPECT_FALSE(referenced); + BOOST_CHECK(!referenced); } bool never_called(msgpack::type::object_type, std::size_t, void*) { - EXPECT_TRUE(false); + BOOST_CHECK(false); return false; } @@ -70,27 +62,27 @@ bool always_reference(msgpack::type::object_type, std::size_t, void*) return true; } -TEST(reference, unpack_int_ref) +BOOST_AUTO_TEST_CASE(unpack_int_ref) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 1); bool referenced; msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size(), referenced, never_called); - EXPECT_FALSE(referenced); + BOOST_CHECK(!referenced); } -TEST(reference, unpack_string_ref) +BOOST_AUTO_TEST_CASE(unpack_string_ref) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, std::string("abcdefg")); bool referenced; msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size(), referenced, always_reference); - EXPECT_TRUE(referenced); + BOOST_CHECK(referenced); } -TEST(reference, unpack_bin_ref) +BOOST_AUTO_TEST_CASE(unpack_bin_ref) { msgpack::sbuffer sbuf; msgpack::packer packer(sbuf); @@ -100,10 +92,10 @@ TEST(reference, unpack_bin_ref) bool referenced; msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size(), referenced, always_reference); - EXPECT_TRUE(referenced); + BOOST_CHECK(referenced); } -TEST(reference, unpack_ext_ref) +BOOST_AUTO_TEST_CASE(unpack_ext_ref) { msgpack::sbuffer sbuf; msgpack::packer packer(sbuf); @@ -113,7 +105,7 @@ TEST(reference, unpack_ext_ref) packer.pack_ext_body(buf, sizeof(buf)); bool referenced; msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size(), referenced, always_reference); - EXPECT_TRUE(referenced); + BOOST_CHECK(referenced); } static void* s_p; @@ -132,12 +124,12 @@ bool sized_reference(msgpack::type::object_type t, std::size_t s, void* p) if (s >= 7) return true; break; default: - EXPECT_TRUE(false); + BOOST_CHECK(false); } return false; } -TEST(reference, unpack_int_sized_ref) +BOOST_AUTO_TEST_CASE(unpack_int_sized_ref) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, 1); @@ -145,11 +137,11 @@ TEST(reference, unpack_int_sized_ref) bool referenced; s_p = MSGPACK_NULLPTR; msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size(), referenced, never_called, &sbuf); - EXPECT_FALSE(referenced); - EXPECT_EQ(MSGPACK_NULLPTR, s_p); + BOOST_CHECK(!referenced); + BOOST_CHECK_EQUAL(MSGPACK_NULLPTR, s_p); } -TEST(reference, unpack_string_sized_ref_4) +BOOST_AUTO_TEST_CASE(unpack_string_sized_ref_4) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, std::string("1234")); @@ -159,12 +151,12 @@ TEST(reference, unpack_string_sized_ref_4) // the last argument sbuf is any pointer as a user data. // That is stored to s_p in sized_reference msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size(), referenced, sized_reference, &sbuf); - EXPECT_FALSE(referenced); + BOOST_CHECK(!referenced); // compare the passed argument with stored s_p. - EXPECT_EQ(&sbuf, s_p); + BOOST_CHECK_EQUAL(&sbuf, s_p); } -TEST(reference, unpack_string_sized_ref_5) +BOOST_AUTO_TEST_CASE(unpack_string_sized_ref_5) { msgpack::sbuffer sbuf; msgpack::pack(sbuf, std::string("12345")); @@ -172,12 +164,12 @@ TEST(reference, unpack_string_sized_ref_5) bool referenced; s_p = MSGPACK_NULLPTR; msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size(), referenced, sized_reference, &sbuf); - EXPECT_TRUE(referenced); - EXPECT_EQ(&sbuf, s_p); + BOOST_CHECK(referenced); + BOOST_CHECK_EQUAL(&sbuf, s_p); } -TEST(reference, unpack_bin_sized_ref_5) +BOOST_AUTO_TEST_CASE(unpack_bin_sized_ref_5) { msgpack::sbuffer sbuf; msgpack::packer packer(sbuf); @@ -188,11 +180,11 @@ TEST(reference, unpack_bin_sized_ref_5) bool referenced; s_p = MSGPACK_NULLPTR; msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size(), referenced, sized_reference, &sbuf); - EXPECT_FALSE(referenced); - EXPECT_EQ(&sbuf, s_p); + BOOST_CHECK(!referenced); + BOOST_CHECK_EQUAL(&sbuf, s_p); } -TEST(reference, unpack_bin_sized_ref_6) +BOOST_AUTO_TEST_CASE(unpack_bin_sized_ref_6) { msgpack::sbuffer sbuf; msgpack::packer packer(sbuf); @@ -203,11 +195,11 @@ TEST(reference, unpack_bin_sized_ref_6) bool referenced; s_p = MSGPACK_NULLPTR; msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size(), referenced, sized_reference, &sbuf); - EXPECT_TRUE(referenced); - EXPECT_EQ(&sbuf, s_p); + BOOST_CHECK(referenced); + BOOST_CHECK_EQUAL(&sbuf, s_p); } -TEST(reference, unpack_ext_sized_ref_6) +BOOST_AUTO_TEST_CASE(unpack_ext_sized_ref_6) { msgpack::sbuffer sbuf; msgpack::packer packer(sbuf); @@ -219,11 +211,11 @@ TEST(reference, unpack_ext_sized_ref_6) bool referenced; s_p = MSGPACK_NULLPTR; msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size(), referenced, sized_reference, &sbuf); - EXPECT_FALSE(referenced); - EXPECT_EQ(&sbuf, s_p); + BOOST_CHECK(!referenced); + BOOST_CHECK_EQUAL(&sbuf, s_p); } -TEST(reference, unpack_ext_sized_ref_7) +BOOST_AUTO_TEST_CASE(unpack_ext_sized_ref_7) { msgpack::sbuffer sbuf; msgpack::packer packer(sbuf); @@ -235,8 +227,8 @@ TEST(reference, unpack_ext_sized_ref_7) bool referenced; s_p = MSGPACK_NULLPTR; msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size(), referenced, sized_reference, &sbuf); - EXPECT_TRUE(referenced); - EXPECT_EQ(&sbuf, s_p); + BOOST_CHECK(referenced); + BOOST_CHECK_EQUAL(&sbuf, s_p); } #endif // !defined(MSGPACK_USE_CPP03) diff --git a/test/reference_wrapper_cpp11.cpp b/test/reference_wrapper_cpp11.cpp index 6507d827..406ab8bc 100644 --- a/test/reference_wrapper_cpp11.cpp +++ b/test/reference_wrapper_cpp11.cpp @@ -1,16 +1,8 @@ #include #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) - -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE MSGPACK_REFERENCE_WRAPPER +#include #ifdef HAVE_CONFIG_H #include "config.h" @@ -18,7 +10,7 @@ #if !defined(MSGPACK_USE_CPP03) -TEST(MSGPACK_REFERENCE_WRAPPER, pack_convert) +BOOST_AUTO_TEST_CASE(pack_convert) { int i1 = 42; std::reference_wrapper val1(i1); @@ -29,10 +21,10 @@ TEST(MSGPACK_REFERENCE_WRAPPER, pack_convert) int i2 = 0; std::reference_wrapper val2(i2); oh.get().convert(val2); - EXPECT_EQ(i1, i2); + BOOST_CHECK_EQUAL(i1, i2); } -TEST(MSGPACK_REFERENCE_WRAPPER, pack_convert_const) +BOOST_AUTO_TEST_CASE(pack_convert_const) { const int i1 = 42; std::reference_wrapper val1(i1); @@ -43,10 +35,10 @@ TEST(MSGPACK_REFERENCE_WRAPPER, pack_convert_const) int i2 = 0; std::reference_wrapper val2(i2); oh.get().convert(val2); - EXPECT_EQ(i1, i2); + BOOST_CHECK_EQUAL(i1, i2); } -TEST(MSGPACK_REFERENCE_WRAPPER, pack_vector) +BOOST_AUTO_TEST_CASE(pack_vector) { int i1 = 42; std::vector> val1{i1}; @@ -55,11 +47,11 @@ TEST(MSGPACK_REFERENCE_WRAPPER, pack_vector) std::string const& str = ss.str(); msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); std::vector val2 = oh.get().as>(); - EXPECT_EQ(val2.size(), static_cast(1)); - EXPECT_EQ(val1[0], val2[0]); + BOOST_CHECK_EQUAL(val2.size(), static_cast(1)); + BOOST_CHECK_EQUAL(val1[0], val2[0]); } -TEST(MSGPACK_REFERENCE_WRAPPER, object) +BOOST_AUTO_TEST_CASE(object) { int i1 = 42; std::reference_wrapper val1(i1); @@ -67,10 +59,10 @@ TEST(MSGPACK_REFERENCE_WRAPPER, object) int i2 = 0; std::reference_wrapper val2(i2); o.convert(val2); - EXPECT_EQ(i1, i2); + BOOST_CHECK_EQUAL(i1, i2); } -TEST(MSGPACK_REFERENCE_WRAPPER, object_const) +BOOST_AUTO_TEST_CASE(object_const) { const int i1 = 42; std::reference_wrapper val1(i1); @@ -78,10 +70,10 @@ TEST(MSGPACK_REFERENCE_WRAPPER, object_const) int i2 = 0; std::reference_wrapper val2(i2); o.convert(val2); - EXPECT_EQ(i1, i2); + BOOST_CHECK_EQUAL(i1, i2); } -TEST(MSGPACK_REFERENCE_WRAPPER, object_with_zone) +BOOST_AUTO_TEST_CASE(object_with_zone) { std::string s1 = "ABC"; std::reference_wrapper val1(s1); @@ -90,10 +82,10 @@ TEST(MSGPACK_REFERENCE_WRAPPER, object_with_zone) std::string s2 = "DE"; std::reference_wrapper val2(s2); o.convert(val2); - EXPECT_EQ(s1, s2); + BOOST_CHECK_EQUAL(s1, s2); } -TEST(MSGPACK_REFERENCE_WRAPPER, object_with_zone_const) +BOOST_AUTO_TEST_CASE(object_with_zone_const) { const std::string s1 = "ABC"; std::reference_wrapper val1(s1); @@ -102,7 +94,7 @@ TEST(MSGPACK_REFERENCE_WRAPPER, object_with_zone_const) std::string s2 = "DE"; std::reference_wrapper val2(s2); o.convert(val2); - EXPECT_EQ(s1, s2); + BOOST_CHECK_EQUAL(s1, s2); } #endif // !defined(MSGPACK_USE_CPP03) diff --git a/test/shared_ptr_cpp11.cpp b/test/shared_ptr_cpp11.cpp index 91458f7e..e8feb834 100644 --- a/test/shared_ptr_cpp11.cpp +++ b/test/shared_ptr_cpp11.cpp @@ -2,24 +2,15 @@ #include #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) - -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) - +#define BOOST_TEST_MODULE SHARED_PTR +#include #ifdef HAVE_CONFIG_H #include "config.h" #endif #if !defined(MSGPACK_USE_CPP03) -TEST(SHARED_PTR, pack_convert_nil) +BOOST_AUTO_TEST_CASE(pack_convert_nil) { std::stringstream ss; std::shared_ptr val1; @@ -28,10 +19,10 @@ TEST(SHARED_PTR, pack_convert_nil) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); std::shared_ptr val2 = oh.get().as>(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } -TEST(SHARED_PTR, pack_convert_int) +BOOST_AUTO_TEST_CASE(pack_convert_int) { std::stringstream ss; std::shared_ptr val1(new int(1)); @@ -40,54 +31,54 @@ TEST(SHARED_PTR, pack_convert_int) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); std::shared_ptr val2 = oh.get().as>(); - EXPECT_TRUE(*val1 == *val2); + BOOST_CHECK(*val1 == *val2); } -TEST(SHARED_PTR, object_nil) +BOOST_AUTO_TEST_CASE(object_nil) { std::shared_ptr val1; msgpack::object obj(val1); std::shared_ptr val2 = obj.as>(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } -TEST(SHARED_PTR, object_int) +BOOST_AUTO_TEST_CASE(object_int) { std::shared_ptr val1(new int(1)); msgpack::object obj(val1); std::shared_ptr val2 = obj.as>(); - EXPECT_TRUE(*val1 == *val2); + BOOST_CHECK(*val1 == *val2); } // Compile error as expected // object::with_zone is required not object /* -TEST(SHARED_PTR, object_vector) +BOOST_AUTO_TEST_CASE(object_vector) { typedef std::shared_ptr> ovi_t; ovi_t val1(new std::vector()); msgpack::object obj(val1); ovi_t val2 = obj.as(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } */ -TEST(SHARED_PTR, object_with_zone_nil) +BOOST_AUTO_TEST_CASE(object_with_zone_nil) { msgpack::zone z; std::shared_ptr val1; msgpack::object obj(val1, z); std::shared_ptr val2 = obj.as>(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } -TEST(SHARED_PTR, object_with_zone_int) +BOOST_AUTO_TEST_CASE(object_with_zone_int) { msgpack::zone z; std::shared_ptr val1(new int(1)); msgpack::object obj(val1, z); std::shared_ptr val2 = obj.as>(); - EXPECT_TRUE(*val1 == *val2); + BOOST_CHECK(*val1 == *val2); } struct no_def_con { @@ -120,7 +111,7 @@ struct as { } // MSGPACK_API_VERSION_NAMESPACE(MSGPACK_DEFAULT_API_NS) } // msgpack -TEST(SHARED_PTR, pack_convert_nil_no_def_con) +BOOST_AUTO_TEST_CASE(pack_convert_nil_no_def_con) { std::stringstream ss; std::shared_ptr val1(new no_def_con(1)); @@ -129,7 +120,7 @@ TEST(SHARED_PTR, pack_convert_nil_no_def_con) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); std::shared_ptr val2 = oh.get().as>(); - EXPECT_TRUE(*val1 == *val2); + BOOST_CHECK(*val1 == *val2); } diff --git a/test/size_equal_only.cpp b/test/size_equal_only.cpp index 0a8b2611..743fb49d 100644 --- a/test/size_equal_only.cpp +++ b/test/size_equal_only.cpp @@ -1,18 +1,10 @@ #include #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE size_equal_only +#include -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) - -TEST(size_equal_only, array) +BOOST_AUTO_TEST_CASE(array) { std::stringstream ss; int buf[3] = { 1, 2, 3 }; @@ -24,35 +16,35 @@ TEST(size_equal_only, array) int ret_buf1[3]; oh.get().convert(ret_buf1); - EXPECT_EQ(buf[0], ret_buf1[0]); - EXPECT_EQ(buf[1], ret_buf1[1]); - EXPECT_EQ(buf[2], ret_buf1[2]); + BOOST_CHECK_EQUAL(buf[0], ret_buf1[0]); + BOOST_CHECK_EQUAL(buf[1], ret_buf1[1]); + BOOST_CHECK_EQUAL(buf[2], ret_buf1[2]); int ret_buf2[4]; oh.get().convert(ret_buf2); - EXPECT_EQ(buf[0], ret_buf2[0]); - EXPECT_EQ(buf[1], ret_buf2[1]); - EXPECT_EQ(buf[2], ret_buf2[2]); + BOOST_CHECK_EQUAL(buf[0], ret_buf2[0]); + BOOST_CHECK_EQUAL(buf[1], ret_buf2[1]); + BOOST_CHECK_EQUAL(buf[2], ret_buf2[2]); int ret_buf3[3]; msgpack::type::size_equal_only ret_seo3(ret_buf3); oh.get().convert(ret_seo3); - EXPECT_EQ(buf[0], ret_buf3[0]); - EXPECT_EQ(buf[1], ret_buf3[1]); - EXPECT_EQ(buf[2], ret_buf3[2]); + BOOST_CHECK_EQUAL(buf[0], ret_buf3[0]); + BOOST_CHECK_EQUAL(buf[1], ret_buf3[1]); + BOOST_CHECK_EQUAL(buf[2], ret_buf3[2]); int ret_buf4[4]; msgpack::type::size_equal_only ret_seo4(ret_buf4); try { oh.get().convert(ret_seo4); - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch (msgpack::type_error const&) { - EXPECT_TRUE(true); + BOOST_CHECK(true); } } -TEST(size_equal_only, vector) +BOOST_AUTO_TEST_CASE(vector) { std::stringstream ss; std::vector buf; @@ -68,28 +60,28 @@ TEST(size_equal_only, vector) std::vector ret_buf1; oh.get().convert(ret_buf1); - EXPECT_EQ(buf, ret_buf1); + BOOST_CHECK(buf == ret_buf1); std::vector ret_buf2; ret_buf2.resize(3); msgpack::type::size_equal_only > ret_seo2(ret_buf2); oh.get().convert(ret_seo2); - EXPECT_EQ(buf, ret_buf2); + BOOST_CHECK(buf == ret_buf2); std::vector ret_buf3; ret_buf2.resize(4); msgpack::type::size_equal_only > ret_seo3(ret_buf3); try { oh.get().convert(ret_seo3); - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch (msgpack::type_error const&) { - EXPECT_TRUE(true); + BOOST_CHECK(true); } } -TEST(size_equal_only, msgpack_tuple) +BOOST_AUTO_TEST_CASE(msgpack_tuple) { std::stringstream ss; msgpack::type::tuple buf(1, false, "ABC"); @@ -102,52 +94,52 @@ TEST(size_equal_only, msgpack_tuple) msgpack::type::tuple ret_buf1; oh.get().convert(ret_buf1); - EXPECT_EQ(buf.get<0>(), ret_buf1.get<0>()); - EXPECT_EQ(buf.get<1>(), ret_buf1.get<1>()); - EXPECT_EQ(buf.get<2>(), ret_buf1.get<2>()); + BOOST_CHECK_EQUAL(buf.get<0>(), ret_buf1.get<0>()); + BOOST_CHECK_EQUAL(buf.get<1>(), ret_buf1.get<1>()); + BOOST_CHECK_EQUAL(buf.get<2>(), ret_buf1.get<2>()); msgpack::type::tuple ret_buf2; msgpack::type::size_equal_only > ret_seo2(ret_buf2); oh.get().convert(ret_seo2); - EXPECT_EQ(buf.get<0>(), ret_buf2.get<0>()); - EXPECT_EQ(buf.get<1>(), ret_buf2.get<1>()); - EXPECT_EQ(buf.get<2>(), ret_buf2.get<2>()); + BOOST_CHECK_EQUAL(buf.get<0>(), ret_buf2.get<0>()); + BOOST_CHECK_EQUAL(buf.get<1>(), ret_buf2.get<1>()); + BOOST_CHECK_EQUAL(buf.get<2>(), ret_buf2.get<2>()); msgpack::type::tuple ret_buf3; oh.get().convert(ret_buf3); - EXPECT_EQ(buf.get<0>(), ret_buf3.get<0>()); - EXPECT_EQ(buf.get<1>(), ret_buf3.get<1>()); - EXPECT_EQ(buf.get<2>(), ret_buf3.get<2>()); + BOOST_CHECK_EQUAL(buf.get<0>(), ret_buf3.get<0>()); + BOOST_CHECK_EQUAL(buf.get<1>(), ret_buf3.get<1>()); + BOOST_CHECK_EQUAL(buf.get<2>(), ret_buf3.get<2>()); msgpack::type::tuple ret_buf4; msgpack::type::size_equal_only > ret_seo4(ret_buf4); try { oh.get().convert(ret_seo4); - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch (msgpack::type_error const&) { - EXPECT_TRUE(true); + BOOST_CHECK(true); } msgpack::type::tuple ret_buf5; oh.get().convert(ret_buf5); - EXPECT_EQ(buf.get<0>(), ret_buf5.get<0>()); - EXPECT_EQ(buf.get<1>(), ret_buf5.get<1>()); + BOOST_CHECK_EQUAL(buf.get<0>(), ret_buf5.get<0>()); + BOOST_CHECK_EQUAL(buf.get<1>(), ret_buf5.get<1>()); msgpack::type::tuple ret_buf6; msgpack::type::size_equal_only > ret_seo6(ret_buf6); try { oh.get().convert(ret_seo6); - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch (msgpack::type_error const&) { - EXPECT_TRUE(true); + BOOST_CHECK(true); } } #if !defined(MSGPACK_USE_CPP03) -TEST(size_equal_only, tuple) +BOOST_AUTO_TEST_CASE(tuple) { std::stringstream ss; std::tuple buf(1, false, "ABC"); @@ -160,42 +152,42 @@ TEST(size_equal_only, tuple) std::tuple ret_buf1; oh.get().convert(ret_buf1); - EXPECT_EQ(buf, ret_buf1); + BOOST_CHECK(buf == ret_buf1); std::tuple ret_buf2; auto ret_seo2 = msgpack::type::make_size_equal_only(ret_buf2); oh.get().convert(ret_seo2); - EXPECT_EQ(buf, ret_buf2); + BOOST_CHECK(buf == ret_buf2); std::tuple ret_buf3; oh.get().convert(ret_buf3); - EXPECT_EQ(std::get<0>(buf), std::get<0>(ret_buf3)); - EXPECT_EQ(std::get<1>(buf), std::get<1>(ret_buf3)); - EXPECT_EQ(std::get<2>(buf), std::get<2>(ret_buf3)); + BOOST_CHECK_EQUAL(std::get<0>(buf), std::get<0>(ret_buf3)); + BOOST_CHECK_EQUAL(std::get<1>(buf), std::get<1>(ret_buf3)); + BOOST_CHECK_EQUAL(std::get<2>(buf), std::get<2>(ret_buf3)); std::tuple ret_buf4; auto ret_seo4 = msgpack::type::make_size_equal_only(ret_buf4); try { oh.get().convert(ret_seo4); - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch (msgpack::type_error const&) { - EXPECT_TRUE(true); + BOOST_CHECK(true); } std::tuple ret_buf5; oh.get().convert(ret_buf5); - EXPECT_EQ(std::get<0>(buf), std::get<0>(ret_buf5)); - EXPECT_EQ(std::get<1>(buf), std::get<1>(ret_buf5)); + BOOST_CHECK_EQUAL(std::get<0>(buf), std::get<0>(ret_buf5)); + BOOST_CHECK_EQUAL(std::get<1>(buf), std::get<1>(ret_buf5)); std::tuple ret_buf6; auto ret_seo6 = msgpack::type::make_size_equal_only(ret_buf6); try { oh.get().convert(ret_seo6); - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch (msgpack::type_error const&) { - EXPECT_TRUE(true); + BOOST_CHECK(true); } } @@ -213,7 +205,7 @@ struct foo2 { MSGPACK_DEFINE(seo); }; -TEST(size_equal_only, custom_class) +BOOST_AUTO_TEST_CASE(custom_class) { std::stringstream ss; foo1 f1(42, true); @@ -224,10 +216,10 @@ TEST(size_equal_only, custom_class) foo2 f2(123, false, "ABC"); try { oh.get().convert(f2); - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch (msgpack::type_error const&) { - EXPECT_TRUE(true); + BOOST_CHECK(true); } } diff --git a/test/streaming.cpp b/test/streaming.cpp index 8030b9ec..78309cee 100644 --- a/test/streaming.cpp +++ b/test/streaming.cpp @@ -1,19 +1,11 @@ #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) - -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE streaming +#include #include -TEST(streaming, basic) +BOOST_AUTO_TEST_CASE(basic) { msgpack::sbuffer buffer; @@ -44,25 +36,25 @@ TEST(streaming, basic) msgpack::object obj = oh.get(); switch(count++) { case 0: - EXPECT_EQ(1, obj.as()); + BOOST_CHECK_EQUAL(1, obj.as()); break; case 1: - EXPECT_EQ(2, obj.as()); + BOOST_CHECK_EQUAL(2, obj.as()); break; case 2: - EXPECT_EQ(3, obj.as()); + BOOST_CHECK_EQUAL(3, obj.as()); return; } } - EXPECT_TRUE(input < eof); + BOOST_CHECK(input < eof); } } // obsolete #if MSGPACK_DEFAULT_API_VERSION == 1 -TEST(streaming, basic_pointer) +BOOST_AUTO_TEST_CASE(basic_pointer) { msgpack::sbuffer buffer; @@ -100,18 +92,18 @@ TEST(streaming, basic_pointer) msgpack::object obj = oh.get(); switch(count++) { case 0: - EXPECT_EQ(1, obj.as()); + BOOST_CHECK_EQUAL(1, obj.as()); break; case 1: - EXPECT_EQ(2, obj.as()); + BOOST_CHECK_EQUAL(2, obj.as()); break; case 2: - EXPECT_EQ(3, obj.as()); + BOOST_CHECK_EQUAL(3, obj.as()); return; } } - EXPECT_TRUE(input < eof); + BOOST_CHECK(input < eof); } } @@ -119,7 +111,7 @@ TEST(streaming, basic_pointer) #if !defined(MSGPACK_USE_CPP03) -TEST(streaming, move) +BOOST_AUTO_TEST_CASE(move) { msgpack::sbuffer buffer; @@ -151,18 +143,18 @@ TEST(streaming, move) msgpack::object obj = oh.get(); switch(count++) { case 0: - EXPECT_EQ(1, obj.as()); + BOOST_CHECK_EQUAL(1, obj.as()); break; case 1: - EXPECT_EQ(2, obj.as()); + BOOST_CHECK_EQUAL(2, obj.as()); break; case 2: - EXPECT_EQ(3, obj.as()); + BOOST_CHECK_EQUAL(3, obj.as()); return; } } - EXPECT_TRUE(input < eof); + BOOST_CHECK(input < eof); pac = std::move(pac_in); } } @@ -200,7 +192,7 @@ public: void on_message(msgpack::object obj, msgpack::unique_ptr) { - EXPECT_EQ(expect, obj.as()); + BOOST_CHECK_EQUAL(expect, obj.as()); } int expect; @@ -210,7 +202,7 @@ private: msgpack::unpacker pac; }; -TEST(streaming, event) +BOOST_AUTO_TEST_CASE(event) { std::stringstream stream; msgpack::packer pk(&stream); @@ -234,7 +226,7 @@ TEST(streaming, event) #if MSGPACK_DEFAULT_API_VERSION == 1 // backward compatibility -TEST(streaming, basic_compat) +BOOST_AUTO_TEST_CASE(basic_compat) { std::ostringstream stream; msgpack::packer pk(&stream); @@ -261,13 +253,13 @@ TEST(streaming, basic_compat) switch(count++) { case 0: - EXPECT_EQ(1, obj.as()); + BOOST_CHECK_EQUAL(1, obj.as()); break; case 1: - EXPECT_EQ(2, obj.as()); + BOOST_CHECK_EQUAL(2, obj.as()); break; case 2: - EXPECT_EQ(3, obj.as()); + BOOST_CHECK_EQUAL(3, obj.as()); return; } @@ -310,7 +302,7 @@ public: void on_message(msgpack::object obj, msgpack::unique_ptr) { - EXPECT_EQ(expect, obj.as()); + BOOST_CHECK_EQUAL(expect, obj.as()); } int expect; @@ -320,7 +312,7 @@ private: msgpack::unpacker pac; }; -TEST(streaming, event_compat) +BOOST_AUTO_TEST_CASE(event_compat) { std::stringstream stream; msgpack::packer pk(&stream); diff --git a/test/test_allocator.hpp b/test/test_allocator.hpp index 48271032..2ac566f8 100644 --- a/test/test_allocator.hpp +++ b/test/test_allocator.hpp @@ -11,6 +11,8 @@ #ifndef TEST_ALLOCATOR_HPP #define TEST_ALLOCATOR_HPP +#include + #include namespace test { @@ -18,13 +20,20 @@ namespace test { template struct allocator { typedef typename std::allocator::value_type value_type; + typedef typename std::allocator::size_type size_type; + typedef typename std::allocator::difference_type difference_type; + template struct rebind { typedef allocator other; }; +#if MSGPACK_CPP_VERSION <= 201703 typedef typename std::allocator::pointer pointer; typedef typename std::allocator::reference reference; typedef typename std::allocator::const_pointer const_pointer; typedef typename std::allocator::const_reference const_reference; - typedef typename std::allocator::size_type size_type; - typedef typename std::allocator::difference_type difference_type; - template struct rebind { typedef allocator other; }; +#else // MSGPACK_CPP_VERSION <= 201703 + typedef value_type* pointer; + typedef value_type& reference; + typedef const value_type* const_pointer; + typedef const value_type& const_reference; +#endif // MSGPACK_CPP_VERSION <= 201703 #if defined(MSGPACK_USE_CPP03) allocator() throw() {} allocator (const allocator& alloc) throw() @@ -45,11 +54,21 @@ struct allocator { template allocator (const allocator& alloc) noexcept :alloc_(alloc.alloc_) {} +#if MSGPACK_CPP_VERSION <= 201703 template void construct (U* p, Args&&... args) { return alloc_.construct(p, std::forward(args)...); } size_type max_size() const noexcept { return alloc_.max_size(); } +#else // MSGPACK_CPP_VERSION <= 201703 + template + void construct (U* p, Args&&... args) { + return std::allocator_traits::construct(alloc_, p, std::forward(args)...); + } + size_type max_size() const noexcept { + return std::allocator_traits::max_size(alloc_); + } +#endif // MSGPACK_CPP_VERSION <= 201703 #endif // defined(MSGPACK_USE_CPP03) pointer allocate (size_type n) { return alloc_.allocate(n); @@ -57,9 +76,16 @@ struct allocator { void deallocate (pointer p, size_type n) { return alloc_.deallocate(p, n); } + +#if MSGPACK_CPP_VERSION <= 201703 void destroy (pointer p) { alloc_.destroy(p); } +#else // MSGPACK_CPP_VERSION <= 201703 + void destroy (pointer p) { + std::allocator_traits::destroy(alloc_, p); + } +#endif // MSGPACK_CPP_VERSION <= 201703 std::allocator alloc_; }; diff --git a/test/unique_ptr_cpp11.cpp b/test/unique_ptr_cpp11.cpp index 483f4bb2..4cf12750 100644 --- a/test/unique_ptr_cpp11.cpp +++ b/test/unique_ptr_cpp11.cpp @@ -2,16 +2,8 @@ #include #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) - -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE UNIQUE_PTR +#include #ifdef HAVE_CONFIG_H #include "config.h" @@ -19,7 +11,7 @@ #if !defined(MSGPACK_USE_CPP03) -TEST(UNIQUE_PTR, pack_convert_nil) +BOOST_AUTO_TEST_CASE(pack_convert_nil) { std::stringstream ss; std::unique_ptr val1; @@ -28,10 +20,10 @@ TEST(UNIQUE_PTR, pack_convert_nil) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); std::unique_ptr val2 = oh.get().as>(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } -TEST(UNIQUE_PTR, pack_convert_int) +BOOST_AUTO_TEST_CASE(pack_convert_int) { std::stringstream ss; std::unique_ptr val1(new int(1)); @@ -40,54 +32,54 @@ TEST(UNIQUE_PTR, pack_convert_int) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); std::unique_ptr val2 = oh.get().as>(); - EXPECT_TRUE(*val1 == *val2); + BOOST_CHECK(*val1 == *val2); } -TEST(UNIQUE_PTR, object_nil) +BOOST_AUTO_TEST_CASE(object_nil) { std::unique_ptr val1; msgpack::object obj(val1); std::unique_ptr val2 = obj.as>(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } -TEST(UNIQUE_PTR, object_int) +BOOST_AUTO_TEST_CASE(object_int) { std::unique_ptr val1(new int(1)); msgpack::object obj(val1); std::unique_ptr val2 = obj.as>(); - EXPECT_TRUE(*val1 == *val2); + BOOST_CHECK(*val1 == *val2); } // Compile error as expected // object::with_zone is required not object /* -TEST(UNIQUE_PTR, object_vector) +BOOST_AUTO_TEST_CASE(object_vector) { typedef std::unique_ptr> ovi_t; ovi_t val1(new std::vector()); msgpack::object obj(val1); ovi_t val2 = obj.as(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } */ -TEST(UNIQUE_PTR, object_with_zone_nil) +BOOST_AUTO_TEST_CASE(object_with_zone_nil) { msgpack::zone z; std::unique_ptr val1; msgpack::object obj(val1, z); std::unique_ptr val2 = obj.as>(); - EXPECT_TRUE(val1 == val2); + BOOST_CHECK(val1 == val2); } -TEST(UNIQUE_PTR, object_with_zone_int) +BOOST_AUTO_TEST_CASE(object_with_zone_int) { msgpack::zone z; std::unique_ptr val1(new int(1)); msgpack::object obj(val1, z); std::unique_ptr val2 = obj.as>(); - EXPECT_TRUE(*val1 == *val2); + BOOST_CHECK(*val1 == *val2); } struct no_def_con { @@ -120,7 +112,7 @@ struct as { } // MSGPACK_API_VERSION_NAMESPACE(MSGPACK_DEFAULT_API_NS) } // msgpack -TEST(UNIQUE_PTR, pack_convert_nil_no_def_con) +BOOST_AUTO_TEST_CASE(pack_convert_nil_no_def_con) { std::stringstream ss; std::unique_ptr val1(new no_def_con(1)); @@ -129,7 +121,7 @@ TEST(UNIQUE_PTR, pack_convert_nil_no_def_con) msgpack::object_handle oh = msgpack::unpack(str.data(), str.size()); std::unique_ptr val2 = oh.get().as>(); - EXPECT_TRUE(*val1 == *val2); + BOOST_CHECK(*val1 == *val2); } diff --git a/test/user_class.cpp b/test/user_class.cpp index a1c57816..4fcb5b9d 100644 --- a/test/user_class.cpp +++ b/test/user_class.cpp @@ -2,23 +2,13 @@ #include #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) - -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE MSGPACK_USER_DEFINED +#include #ifdef HAVE_CONFIG_H #include "config.h" #endif - - using namespace std; const unsigned int kLoop = 1000; @@ -57,7 +47,7 @@ public: MSGPACK_DEFINE(i, s); }; -TEST(MSGPACK_USER_DEFINED, simple_buffer_class) +BOOST_AUTO_TEST_CASE(simple_buffer_class) { for (unsigned int k = 0; k < kLoop; k++) { TestClass val1; @@ -66,8 +56,8 @@ TEST(MSGPACK_USER_DEFINED, simple_buffer_class) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); TestClass val2 = oh.get().as(); - EXPECT_EQ(val1.i, val2.i); - EXPECT_EQ(val1.s, val2.s); + BOOST_CHECK_EQUAL(val1.i, val2.i); + BOOST_CHECK_EQUAL(val1.s, val2.s); } } @@ -84,7 +74,7 @@ public: MSGPACK_DEFINE(i, s, v); }; -TEST(MSGPACK_USER_DEFINED, simple_buffer_class_old_to_new) +BOOST_AUTO_TEST_CASE(simple_buffer_class_old_to_new) { for (unsigned int k = 0; k < kLoop; k++) { TestClass val1; @@ -93,13 +83,13 @@ TEST(MSGPACK_USER_DEFINED, simple_buffer_class_old_to_new) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); TestClass2 val2 = oh.get().as(); - EXPECT_EQ(val1.i, val2.i); - EXPECT_EQ(val1.s, val2.s); - EXPECT_FALSE(val2.s.empty()); + BOOST_CHECK_EQUAL(val1.i, val2.i); + BOOST_CHECK_EQUAL(val1.s, val2.s); + BOOST_CHECK(!val2.s.empty()); } } -TEST(MSGPACK_USER_DEFINED, simple_buffer_class_new_to_old) +BOOST_AUTO_TEST_CASE(simple_buffer_class_new_to_old) { for (unsigned int k = 0; k < kLoop; k++) { TestClass2 val1; @@ -108,13 +98,13 @@ TEST(MSGPACK_USER_DEFINED, simple_buffer_class_new_to_old) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); TestClass val2 = oh.get().as(); - EXPECT_EQ(val1.i, val2.i); - EXPECT_EQ(val1.s, val2.s); - EXPECT_FALSE(val2.s.empty()); + BOOST_CHECK_EQUAL(val1.i, val2.i); + BOOST_CHECK_EQUAL(val1.s, val2.s); + BOOST_CHECK(!val2.s.empty()); } } -TEST(MSGPACK_USER_DEFINED, simple_buffer_enum_member) +BOOST_AUTO_TEST_CASE(simple_buffer_enum_member) { TestEnumMemberClass val1; msgpack::sbuffer sbuf; @@ -122,9 +112,9 @@ TEST(MSGPACK_USER_DEFINED, simple_buffer_enum_member) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); TestEnumMemberClass val2 = oh.get().as(); - EXPECT_EQ(val1.t1, val2.t1); - EXPECT_EQ(val1.t2, val2.t2); - EXPECT_EQ(val1.t3, val2.t3); + BOOST_CHECK_EQUAL(val1.t1, val2.t1); + BOOST_CHECK_EQUAL(val1.t2, val2.t2); + BOOST_CHECK_EQUAL(val1.t3, val2.t3); } class TestUnionMemberClass @@ -161,21 +151,21 @@ public: #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wmaybe-uninitialized" #endif // defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) - msgpack::type::tuple tuple(false, msgpack::object()); + msgpack::type::tuple tuple; o.convert(tuple); is_double = tuple.get<0>(); if (is_double) - tuple.get<1>().convert(value.f); + tuple.get<1>().convert(value.f); else - tuple.get<1>().convert(value.i); + tuple.get<1>().convert(value.i); #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) #pragma GCC diagnostic pop #endif // defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) } }; -TEST(MSGPACK_USER_DEFINED, simple_buffer_union_member) +BOOST_AUTO_TEST_CASE(simple_buffer_union_member) { #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) #pragma GCC diagnostic push @@ -189,8 +179,8 @@ TEST(MSGPACK_USER_DEFINED, simple_buffer_union_member) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); TestUnionMemberClass val2 = oh.get().as(); - EXPECT_EQ(val1.is_double, val2.is_double); - EXPECT_TRUE(fabs(val1.value.f - val2.value.f) < kEPS); + BOOST_CHECK_EQUAL(val1.is_double, val2.is_double); + BOOST_CHECK(fabs(val1.value.f - val2.value.f) < kEPS); } { // int @@ -200,9 +190,9 @@ TEST(MSGPACK_USER_DEFINED, simple_buffer_union_member) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); TestUnionMemberClass val2 = oh.get().as(); - EXPECT_EQ(val1.is_double, val2.is_double); - EXPECT_EQ(val1.value.i, 1); - EXPECT_EQ(val1.value.i, val2.value.i); + BOOST_CHECK_EQUAL(val1.is_double, val2.is_double); + BOOST_CHECK_EQUAL(val1.value.i, 1); + BOOST_CHECK_EQUAL(val1.value.i, val2.value.i); } #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) #pragma GCC diagnostic pop @@ -233,7 +223,7 @@ struct d_bottom : d_mid1, d_mid2 { MSGPACK_DEFINE(MSGPACK_BASE(d_mid1), MSGPACK_BASE(d_mid2), b); }; -TEST(MSGPACK_INHERIT, define_non_virtual) +BOOST_AUTO_TEST_CASE(inherit_define_non_virtual) { d_bottom b; b.b = 1; @@ -246,11 +236,11 @@ TEST(MSGPACK_INHERIT, define_non_virtual) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); d_bottom br = oh.get().as(); - EXPECT_EQ(b.b, br.b); - EXPECT_EQ(b.m1, br.m1); - EXPECT_EQ(b.m2, br.m2); - EXPECT_EQ(b.d_mid1::t, br.d_mid1::t); - EXPECT_EQ(b.d_mid2::t, br.d_mid2::t); + BOOST_CHECK_EQUAL(b.b, br.b); + BOOST_CHECK_EQUAL(b.m1, br.m1); + BOOST_CHECK_EQUAL(b.m2, br.m2); + BOOST_CHECK_EQUAL(b.d_mid1::t, br.d_mid1::t); + BOOST_CHECK_EQUAL(b.d_mid2::t, br.d_mid2::t); } struct v_d_top { @@ -273,7 +263,7 @@ struct v_d_bottom : v_d_mid1, v_d_mid2 { MSGPACK_DEFINE(MSGPACK_BASE(v_d_mid1), MSGPACK_BASE(v_d_mid2), MSGPACK_BASE(v_d_top), b); }; -TEST(MSGPACK_INHERIT, define_virtual) +BOOST_AUTO_TEST_CASE(inherit_define_virtual) { v_d_bottom b; b.b = 1; @@ -285,10 +275,10 @@ TEST(MSGPACK_INHERIT, define_virtual) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); v_d_bottom br = oh.get().as(); - EXPECT_EQ(b.b, br.b); - EXPECT_EQ(b.m1, br.m1); - EXPECT_EQ(b.m2, br.m2); - EXPECT_EQ(b.t, br.t); + BOOST_CHECK_EQUAL(b.b, br.b); + BOOST_CHECK_EQUAL(b.m1, br.m1); + BOOST_CHECK_EQUAL(b.m2, br.m2); + BOOST_CHECK_EQUAL(b.t, br.t); } // define_array @@ -313,7 +303,7 @@ struct da_bottom : da_mid1, da_mid2 { MSGPACK_DEFINE_ARRAY(MSGPACK_BASE_ARRAY(da_mid1), MSGPACK_BASE_ARRAY(da_mid2), b); }; -TEST(MSGPACK_INHERIT, define_array_non_virtual) +BOOST_AUTO_TEST_CASE(inherit_define_array_non_virtual) { da_bottom b; b.b = 1; @@ -326,11 +316,11 @@ TEST(MSGPACK_INHERIT, define_array_non_virtual) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); da_bottom br = oh.get().as(); - EXPECT_EQ(b.b, br.b); - EXPECT_EQ(b.m1, br.m1); - EXPECT_EQ(b.m2, br.m2); - EXPECT_EQ(b.da_mid1::t, br.da_mid1::t); - EXPECT_EQ(b.da_mid2::t, br.da_mid2::t); + BOOST_CHECK_EQUAL(b.b, br.b); + BOOST_CHECK_EQUAL(b.m1, br.m1); + BOOST_CHECK_EQUAL(b.m2, br.m2); + BOOST_CHECK_EQUAL(b.da_mid1::t, br.da_mid1::t); + BOOST_CHECK_EQUAL(b.da_mid2::t, br.da_mid2::t); } struct v_da_top { @@ -353,7 +343,7 @@ struct v_da_bottom : v_da_mid1, v_da_mid2 { MSGPACK_DEFINE_ARRAY(MSGPACK_BASE_ARRAY(v_da_mid1), MSGPACK_BASE_ARRAY(v_da_mid2), MSGPACK_BASE_ARRAY(v_da_top), b); }; -TEST(MSGPACK_INHERIT, define_array_virtual) +BOOST_AUTO_TEST_CASE(inherit_define_array_virtual) { v_da_bottom b; b.b = 1; @@ -365,10 +355,10 @@ TEST(MSGPACK_INHERIT, define_array_virtual) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); v_da_bottom br = oh.get().as(); - EXPECT_EQ(b.b, br.b); - EXPECT_EQ(b.m1, br.m1); - EXPECT_EQ(b.m2, br.m2); - EXPECT_EQ(b.t, br.t); + BOOST_CHECK_EQUAL(b.b, br.b); + BOOST_CHECK_EQUAL(b.m1, br.m1); + BOOST_CHECK_EQUAL(b.m2, br.m2); + BOOST_CHECK_EQUAL(b.t, br.t); } // define_map @@ -393,7 +383,7 @@ struct dm_bottom : dm_mid1, dm_mid2 { MSGPACK_DEFINE_MAP(MSGPACK_BASE_MAP(dm_mid1), MSGPACK_BASE_MAP(dm_mid2), b); }; -TEST(MSGPACK_INHERIT, define_map_non_virtual) +BOOST_AUTO_TEST_CASE(inherit_define_map_non_virtual) { dm_bottom b; b.b = 1; @@ -413,11 +403,11 @@ TEST(MSGPACK_INHERIT, define_map_non_virtual) #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) #pragma GCC diagnostic pop #endif // defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)) && !defined(__clang__) - EXPECT_EQ(b.b, br.b); - EXPECT_EQ(b.m1, br.m1); - EXPECT_EQ(b.m2, br.m2); - EXPECT_EQ(b.dm_mid1::t, br.dm_mid1::t); - EXPECT_EQ(b.dm_mid2::t, br.dm_mid2::t); + BOOST_CHECK_EQUAL(b.b, br.b); + BOOST_CHECK_EQUAL(b.m1, br.m1); + BOOST_CHECK_EQUAL(b.m2, br.m2); + BOOST_CHECK_EQUAL(b.dm_mid1::t, br.dm_mid1::t); + BOOST_CHECK_EQUAL(b.dm_mid2::t, br.dm_mid2::t); } struct v_dm_top { @@ -440,7 +430,7 @@ struct v_dm_bottom : v_dm_mid1, v_dm_mid2 { MSGPACK_DEFINE_MAP(MSGPACK_BASE_MAP(v_dm_mid1), MSGPACK_BASE_MAP(v_dm_mid2), MSGPACK_BASE_MAP(v_dm_top), b); }; -TEST(MSGPACK_INHERIT, define_map_virtual) +BOOST_AUTO_TEST_CASE(inherit_define_map_virtual) { v_dm_bottom b; b.b = 1; @@ -452,10 +442,10 @@ TEST(MSGPACK_INHERIT, define_map_virtual) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); v_dm_bottom br = oh.get().as(); - EXPECT_EQ(b.b, br.b); - EXPECT_EQ(b.m1, br.m1); - EXPECT_EQ(b.m2, br.m2); - EXPECT_EQ(b.t, br.t); + BOOST_CHECK_EQUAL(b.b, br.b); + BOOST_CHECK_EQUAL(b.m1, br.m1); + BOOST_CHECK_EQUAL(b.m2, br.m2); + BOOST_CHECK_EQUAL(b.t, br.t); } // map migration @@ -475,7 +465,7 @@ struct s_v2 { MSGPACK_DEFINE_MAP(c, s, i); // variable added, order changed }; -TEST(MSGPACK_MIGRATION, order_number_changed) +BOOST_AUTO_TEST_CASE(migration_order_number_changed) { s_v1 v1; msgpack::sbuffer sbuf; @@ -485,9 +475,9 @@ TEST(MSGPACK_MIGRATION, order_number_changed) msgpack::unpack(sbuf.data(), sbuf.size()); s_v2 v2 = oh.get().as(); - EXPECT_EQ(v2.c, 'A'); - EXPECT_EQ(v2.s, "foo"); // from v1 - EXPECT_EQ(v2.i, 42); // from v1 + BOOST_CHECK_EQUAL(v2.c, 'A'); + BOOST_CHECK_EQUAL(v2.s, "foo"); // from v1 + BOOST_CHECK_EQUAL(v2.i, 42); // from v1 } // non intrusive with operator << @@ -541,7 +531,7 @@ struct object_with_zone } // MSGPACK_API_VERSION_NAMESPACE(MSGPACK_DEFAULT_API_NS) } // namespace msgpack -TEST(MSGPACK_USER_DEFINED, test_non_intrusive) +BOOST_AUTO_TEST_CASE(test_non_intrusive_) { test_non_intrusive t1; msgpack::sbuffer sbuf; @@ -551,7 +541,7 @@ TEST(MSGPACK_USER_DEFINED, test_non_intrusive) msgpack::unpack(sbuf.data(), sbuf.size()); test_non_intrusive t2 = oh.get().as(); - EXPECT_EQ(t1.name(), t2.name()); + BOOST_CHECK_EQUAL(t1.name(), t2.name()); } struct nvp_base { @@ -566,7 +556,7 @@ struct nvp_derived : nvp_base { MSGPACK_DEFINE_MAP(MSGPACK_NVP("ccc", c), MSGPACK_NVP("base", MSGPACK_BASE(nvp_base)), MSGPACK_NVP("ddd", d)); }; -TEST(MSGPACK_NVP, combination) +BOOST_AUTO_TEST_CASE(nvp_combination) { msgpack::sbuffer sbuf; nvp_derived d1; @@ -579,36 +569,36 @@ TEST(MSGPACK_NVP, combination) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); msgpack::object obj = oh.get(); - EXPECT_EQ(obj.via.map.size, static_cast(3)); + BOOST_CHECK_EQUAL(obj.via.map.size, static_cast(3)); - EXPECT_EQ(std::string(obj.via.map.ptr[0].key.via.str.ptr, obj.via.map.ptr[0].key.via.str.size), "ccc"); - EXPECT_EQ(obj.via.map.ptr[0].val.via.i64, 3); + BOOST_CHECK_EQUAL(std::string(obj.via.map.ptr[0].key.via.str.ptr, obj.via.map.ptr[0].key.via.str.size), "ccc"); + BOOST_CHECK_EQUAL(obj.via.map.ptr[0].val.via.i64, 3); - EXPECT_EQ(std::string(obj.via.map.ptr[1].key.via.str.ptr, obj.via.map.ptr[1].key.via.str.size), "base"); - EXPECT_EQ(obj.via.map.ptr[1].val.via.map.size, static_cast(2)); - EXPECT_EQ( + BOOST_CHECK_EQUAL(std::string(obj.via.map.ptr[1].key.via.str.ptr, obj.via.map.ptr[1].key.via.str.size), "base"); + BOOST_CHECK_EQUAL(obj.via.map.ptr[1].val.via.map.size, static_cast(2)); + BOOST_CHECK_EQUAL( std::string( obj.via.map.ptr[1].val.via.map.ptr[0].key.via.str.ptr, obj.via.map.ptr[1].val.via.map.ptr[0].key.via.str.size), "aaa" ); - EXPECT_EQ(obj.via.map.ptr[1].val.via.map.ptr[0].val.via.i64, 1); - EXPECT_EQ( + BOOST_CHECK_EQUAL(obj.via.map.ptr[1].val.via.map.ptr[0].val.via.i64, 1); + BOOST_CHECK_EQUAL( std::string( obj.via.map.ptr[1].val.via.map.ptr[1].key.via.str.ptr, obj.via.map.ptr[1].val.via.map.ptr[1].key.via.str.size), "b" ); - EXPECT_EQ(obj.via.map.ptr[1].val.via.map.ptr[1].val.via.i64, 2); + BOOST_CHECK_EQUAL(obj.via.map.ptr[1].val.via.map.ptr[1].val.via.i64, 2); - EXPECT_EQ(std::string(obj.via.map.ptr[2].key.via.str.ptr, obj.via.map.ptr[2].key.via.str.size), "ddd"); - EXPECT_EQ(std::string(obj.via.map.ptr[2].val.via.str.ptr, obj.via.map.ptr[2].val.via.str.size), "ABC"); + BOOST_CHECK_EQUAL(std::string(obj.via.map.ptr[2].key.via.str.ptr, obj.via.map.ptr[2].key.via.str.size), "ddd"); + BOOST_CHECK_EQUAL(std::string(obj.via.map.ptr[2].val.via.str.ptr, obj.via.map.ptr[2].val.via.str.size), "ABC"); nvp_derived d2 = obj.as(); - EXPECT_EQ(d2.a, 1); - EXPECT_EQ(d2.b, 2); - EXPECT_EQ(d2.c, 3); - EXPECT_EQ(d2.d, "ABC"); + BOOST_CHECK_EQUAL(d2.a, 1); + BOOST_CHECK_EQUAL(d2.b, 2); + BOOST_CHECK_EQUAL(d2.c, 3); + BOOST_CHECK_EQUAL(d2.d, "ABC"); } struct invalid_key { @@ -616,7 +606,7 @@ struct invalid_key { MSGPACK_DEFINE_MAP(val); }; -TEST(MSGPACK_USER_DEFINED, test_invalid_key_type) +BOOST_AUTO_TEST_CASE(test_invalid_key_type) { msgpack::sbuffer sbuf; msgpack::packer pk(sbuf); @@ -626,12 +616,12 @@ TEST(MSGPACK_USER_DEFINED, test_invalid_key_type) msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); try { oh.get().as(); - EXPECT_TRUE(false); + BOOST_CHECK(false); } catch (msgpack::type_error const&) { - EXPECT_TRUE(true); + BOOST_CHECK(true); } catch (...) { - EXPECT_TRUE(false); + BOOST_CHECK(false); } } diff --git a/test/version.cpp b/test/version.cpp index d9d5cc5c..e91bf72d 100644 --- a/test/version.cpp +++ b/test/version.cpp @@ -1,24 +1,18 @@ #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE version +#include -#include +#include -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) - -TEST(version, print) +BOOST_AUTO_TEST_CASE(print) { - printf("MSGPACK_VERSION : %s\n", MSGPACK_VERSION); - printf("MSGPACK_VERSION_MAJOR : %d\n", MSGPACK_VERSION_MAJOR); - printf("MSGPACK_VERSION_MINOR : %d\n", MSGPACK_VERSION_MINOR); - printf("MSGPACK_VERSION_REVISION : %d\n", MSGPACK_VERSION_REVISION); - printf("msgpack_version() : %s\n", msgpack_version()); - printf("msgpack_version_major() : %d\n", msgpack_version_major()); - printf("msgpack_version_minor() : %d\n", msgpack_version_minor()); - printf("msgpack_version_revision() : %d\n", msgpack_version_revision()); + std::printf("MSGPACK_VERSION : %s\n", MSGPACK_VERSION); + std::printf("MSGPACK_VERSION_MAJOR : %d\n", MSGPACK_VERSION_MAJOR); + std::printf("MSGPACK_VERSION_MINOR : %d\n", MSGPACK_VERSION_MINOR); + std::printf("MSGPACK_VERSION_REVISION : %d\n", MSGPACK_VERSION_REVISION); + std::printf("msgpack_version() : %s\n", msgpack_version()); + std::printf("msgpack_version_major() : %d\n", msgpack_version_major()); + std::printf("msgpack_version_minor() : %d\n", msgpack_version_minor()); + std::printf("msgpack_version_revision() : %d\n", msgpack_version_revision()); } diff --git a/test/visitor.cpp b/test/visitor.cpp index 4e0a7cd8..d16a3c92 100644 --- a/test/visitor.cpp +++ b/test/visitor.cpp @@ -1,20 +1,11 @@ #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) - -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE visitor +#include #include -// To avoid link error -TEST(visitor, dummy) +BOOST_AUTO_TEST_CASE(dummy) { } @@ -80,15 +71,15 @@ struct json_like_visitor : msgpack::null_visitor { return true; } void parse_error(size_t /*parsed_offset*/, size_t /*error_offset*/) { - EXPECT_TRUE(false); + BOOST_CHECK(false); } void insufficient_bytes(size_t /*parsed_offset*/, size_t /*error_offset*/) { - EXPECT_TRUE(false); + BOOST_CHECK(false); } std::string& m_s; }; -TEST(visitor, json_like) +BOOST_AUTO_TEST_CASE(json_like) { std::stringstream ss; msgpack::packer p(ss); @@ -104,58 +95,58 @@ TEST(visitor, json_like) std::size_t off = 0; std::string const& str = ss.str(); bool ret = msgpack::parse(str.data(), str.size(), off, v); - EXPECT_TRUE(ret); - EXPECT_EQ("{\"key\":[42,null,true]}", json_like); + BOOST_CHECK(ret); + BOOST_CHECK_EQUAL("{\"key\":[42,null,true]}", json_like); } struct parse_error_check_visitor : msgpack::null_visitor { parse_error_check_visitor(bool& called):m_called(called) {} void parse_error(size_t parsed_offset, size_t error_offset) { - EXPECT_EQ(static_cast(1), parsed_offset); - EXPECT_EQ(static_cast(2), error_offset); + BOOST_CHECK_EQUAL(static_cast(1), parsed_offset); + BOOST_CHECK_EQUAL(static_cast(2), error_offset); m_called = true; } bool& m_called; }; -TEST(visitor, parse_error) +BOOST_AUTO_TEST_CASE(parse_error) { bool called = false; parse_error_check_visitor v(called); std::size_t off = 0; char const data[] = { static_cast(0x93u), 0x01u, static_cast(0xc1u), 0x03u }; bool ret = msgpack::parse(data, sizeof(data), off, v); - EXPECT_FALSE(ret); - EXPECT_TRUE(called); + BOOST_CHECK(!ret); + BOOST_CHECK(called); #if MSGPACK_DEFAULT_API_VERSION < 3 - EXPECT_EQ(0u, off); + BOOST_CHECK_EQUAL(0u, off); #else // MSGPACK_DEFAULT_API_VERSION < 3 - EXPECT_EQ(2u, off); + BOOST_CHECK_EQUAL(2u, off); #endif // MSGPACK_DEFAULT_API_VERSION < 3 } struct insuf_bytes_check_visitor : msgpack::null_visitor { insuf_bytes_check_visitor(bool& called):m_called(called) {} void insufficient_bytes(size_t parsed_offset, size_t error_offset) { - EXPECT_EQ(static_cast(2), parsed_offset); - EXPECT_EQ(static_cast(3), error_offset); + BOOST_CHECK_EQUAL(static_cast(2), parsed_offset); + BOOST_CHECK_EQUAL(static_cast(3), error_offset); m_called = true; } bool& m_called; }; -TEST(visitor, insuf_bytes) +BOOST_AUTO_TEST_CASE(insuf_bytes) { bool called = false; insuf_bytes_check_visitor v(called); std::size_t off = 0; char const data[] = { static_cast(0x93u), 0x01u, 0x01u }; bool ret = msgpack::parse(data, sizeof(data), off, v); - EXPECT_FALSE(ret); - EXPECT_TRUE(called); + BOOST_CHECK(!ret); + BOOST_CHECK(called); // Even if MSGPACK_DEFAULT_API_VERSION is 2, then off is updated // in the case of insufficient bytes. - EXPECT_EQ(3u, off); + BOOST_CHECK_EQUAL(3u, off); } struct return_false_array_val_visitor : msgpack::null_visitor { @@ -167,19 +158,19 @@ struct return_false_array_val_visitor : msgpack::null_visitor { std::size_t& m_times; }; -TEST(visitor, return_false_array_val) +BOOST_AUTO_TEST_CASE(return_false_array_val) { std::size_t times = 0; return_false_array_val_visitor v(times); std::size_t off = 0; char const data[] = { static_cast(0x93u), 0x01u, 0x02u, 0x03u }; bool ret = msgpack::parse(data, sizeof(data), off, v); - EXPECT_FALSE(ret); - EXPECT_EQ(2u, times); + BOOST_CHECK(!ret); + BOOST_CHECK_EQUAL(2u, times); #if MSGPACK_DEFAULT_API_VERSION < 3 - EXPECT_EQ(0u, off); + BOOST_CHECK_EQUAL(0u, off); #else // MSGPACK_DEFAULT_API_VERSION < 3 - EXPECT_EQ(2u, off); + BOOST_CHECK_EQUAL(2u, off); #endif // MSGPACK_DEFAULT_API_VERSION < 3 } @@ -192,19 +183,19 @@ struct return_false_start_array_item_visitor : msgpack::null_visitor { std::size_t& m_times; }; -TEST(visitor, return_false_start_array_item) +BOOST_AUTO_TEST_CASE(return_false_start_array_item) { std::size_t times = 0; return_false_start_array_item_visitor v(times); std::size_t off = 0; char const data[] = { static_cast(0x93u), 0x01u, 0x02u, 0x03u }; bool ret = msgpack::parse(data, sizeof(data), off, v); - EXPECT_FALSE(ret); - EXPECT_EQ(2u, times); + BOOST_CHECK(!ret); + BOOST_CHECK_EQUAL(2u, times); #if MSGPACK_DEFAULT_API_VERSION < 3 - EXPECT_EQ(0u, off); + BOOST_CHECK_EQUAL(0u, off); #else // MSGPACK_DEFAULT_API_VERSION < 3 - EXPECT_EQ(2u, off); + BOOST_CHECK_EQUAL(2u, off); #endif // MSGPACK_DEFAULT_API_VERSION < 3 } @@ -217,19 +208,19 @@ struct return_false_end_array_item_visitor : msgpack::null_visitor { std::size_t& m_times; }; -TEST(visitor, return_false_end_array_item) +BOOST_AUTO_TEST_CASE(return_false_end_array_item) { std::size_t times = 0; return_false_end_array_item_visitor v(times); std::size_t off = 0; char const data[] = { static_cast(0x93u), 0x01u, 0x02u, 0x03u }; bool ret = msgpack::parse(data, sizeof(data), off, v); - EXPECT_FALSE(ret); - EXPECT_EQ(2u, times); + BOOST_CHECK(!ret); + BOOST_CHECK_EQUAL(2u, times); #if MSGPACK_DEFAULT_API_VERSION < 3 - EXPECT_EQ(0u, off); + BOOST_CHECK_EQUAL(0u, off); #else // MSGPACK_DEFAULT_API_VERSION < 3 - EXPECT_EQ(2u, off); + BOOST_CHECK_EQUAL(2u, off); #endif // MSGPACK_DEFAULT_API_VERSION < 3 } @@ -239,14 +230,14 @@ struct return_false_start_array_visitor : msgpack::null_visitor { } }; -TEST(visitor, return_false_start_array) +BOOST_AUTO_TEST_CASE(return_false_start_array) { return_false_start_array_visitor v; std::size_t off = 0; char const data[] = { static_cast(0x93u), 0x01u, 0x02u, 0x03u }; bool ret = msgpack::parse(data, sizeof(data), off, v); - EXPECT_FALSE(ret); - EXPECT_EQ(0u, off); + BOOST_CHECK(!ret); + BOOST_CHECK_EQUAL(0u, off); } struct return_false_start_array0_visitor : msgpack::null_visitor { @@ -255,14 +246,14 @@ struct return_false_start_array0_visitor : msgpack::null_visitor { } }; -TEST(visitor, return_false_start_array0) +BOOST_AUTO_TEST_CASE(return_false_start_array0) { return_false_start_array0_visitor v; std::size_t off = 0; char const data[] = { static_cast(0x90u) }; bool ret = msgpack::parse(data, sizeof(data), off, v); - EXPECT_FALSE(ret); - EXPECT_EQ(0u, off); + BOOST_CHECK(!ret); + BOOST_CHECK_EQUAL(0u, off); } struct return_false_end_array_visitor : msgpack::null_visitor { @@ -271,17 +262,17 @@ struct return_false_end_array_visitor : msgpack::null_visitor { } }; -TEST(visitor, return_false_end_array) +BOOST_AUTO_TEST_CASE(return_false_end_array) { return_false_end_array_visitor v; std::size_t off = 0; char const data[] = { static_cast(0x93u), 0x01u, 0x02u, 0x03u }; bool ret = msgpack::parse(data, sizeof(data), off, v); - EXPECT_FALSE(ret); + BOOST_CHECK(!ret); #if MSGPACK_DEFAULT_API_VERSION < 3 - EXPECT_EQ(0u, off); + BOOST_CHECK_EQUAL(0u, off); #else // MSGPACK_DEFAULT_API_VERSION < 3 - EXPECT_EQ(3u, off); + BOOST_CHECK_EQUAL(3u, off); #endif // MSGPACK_DEFAULT_API_VERSION < 3 } @@ -291,14 +282,14 @@ struct return_false_end_array0_visitor : msgpack::null_visitor { } }; -TEST(visitor, return_false_end_array0) +BOOST_AUTO_TEST_CASE(return_false_end_array0) { return_false_end_array0_visitor v; std::size_t off = 0; char const data[] = { static_cast(0x90u) }; bool ret = msgpack::parse(data, sizeof(data), off, v); - EXPECT_FALSE(ret); - EXPECT_EQ(0u, off); + BOOST_CHECK(!ret); + BOOST_CHECK_EQUAL(0u, off); } struct return_false_map_val_visitor : msgpack::null_visitor { @@ -310,19 +301,19 @@ struct return_false_map_val_visitor : msgpack::null_visitor { std::size_t& m_times; }; -TEST(visitor, return_false_map_val) +BOOST_AUTO_TEST_CASE(return_false_map_val) { std::size_t times = 0; return_false_map_val_visitor v(times); std::size_t off = 0; char const data[] = { static_cast(0x83u), 0x01u, 0x02u, 0x03u, 0x01u, 0x02u, 0x03u }; bool ret = msgpack::parse(data, sizeof(data), off, v); - EXPECT_FALSE(ret); - EXPECT_EQ(2u, times); + BOOST_CHECK(!ret); + BOOST_CHECK_EQUAL(2u, times); #if MSGPACK_DEFAULT_API_VERSION < 3 - EXPECT_EQ(0u, off); + BOOST_CHECK_EQUAL(0u, off); #else // MSGPACK_DEFAULT_API_VERSION < 3 - EXPECT_EQ(2u, off); + BOOST_CHECK_EQUAL(2u, off); #endif // MSGPACK_DEFAULT_API_VERSION < 3 } @@ -335,19 +326,19 @@ struct return_false_start_map_key_visitor : msgpack::null_visitor { std::size_t& m_times; }; -TEST(visitor, return_false_start_map_key) +BOOST_AUTO_TEST_CASE(return_false_start_map_key) { std::size_t times = 0; return_false_start_map_key_visitor v(times); std::size_t off = 0; char const data[] = { static_cast(0x83u), 0x01u, 0x02u, 0x03u, 0x01u, 0x02u, 0x03u }; bool ret = msgpack::parse(data, sizeof(data), off, v); - EXPECT_FALSE(ret); - EXPECT_EQ(2u, times); + BOOST_CHECK(!ret); + BOOST_CHECK_EQUAL(2u, times); #if MSGPACK_DEFAULT_API_VERSION < 3 - EXPECT_EQ(0u, off); + BOOST_CHECK_EQUAL(0u, off); #else // MSGPACK_DEFAULT_API_VERSION < 3 - EXPECT_EQ(3u, off); + BOOST_CHECK_EQUAL(3u, off); #endif // MSGPACK_DEFAULT_API_VERSION < 3 } @@ -360,19 +351,19 @@ struct return_false_end_map_key_visitor : msgpack::null_visitor { std::size_t& m_times; }; -TEST(visitor, return_false_end_map_key) +BOOST_AUTO_TEST_CASE(return_false_end_map_key) { std::size_t times = 0; return_false_end_map_key_visitor v(times); std::size_t off = 0; char const data[] = { static_cast(0x83u), 0x01u, 0x02u, 0x03u, 0x01u, 0x02u, 0x03u }; bool ret = msgpack::parse(data, sizeof(data), off, v); - EXPECT_FALSE(ret); - EXPECT_EQ(2u, times); + BOOST_CHECK(!ret); + BOOST_CHECK_EQUAL(2u, times); #if MSGPACK_DEFAULT_API_VERSION < 3 - EXPECT_EQ(0u, off); + BOOST_CHECK_EQUAL(0u, off); #else // MSGPACK_DEFAULT_API_VERSION < 3 - EXPECT_EQ(3u, off); + BOOST_CHECK_EQUAL(3u, off); #endif // MSGPACK_DEFAULT_API_VERSION < 3 } @@ -385,19 +376,19 @@ struct return_false_start_map_value_visitor : msgpack::null_visitor { std::size_t& m_times; }; -TEST(visitor, return_false_start_map_value) +BOOST_AUTO_TEST_CASE(return_false_start_map_value) { std::size_t times = 0; return_false_start_map_value_visitor v(times); std::size_t off = 0; char const data[] = { static_cast(0x83u), 0x01u, 0x02u, 0x03u, 0x01u, 0x02u, 0x03u }; bool ret = msgpack::parse(data, sizeof(data), off, v); - EXPECT_FALSE(ret); - EXPECT_EQ(2u, times); + BOOST_CHECK(!ret); + BOOST_CHECK_EQUAL(2u, times); #if MSGPACK_DEFAULT_API_VERSION < 3 - EXPECT_EQ(0u, off); + BOOST_CHECK_EQUAL(0u, off); #else // MSGPACK_DEFAULT_API_VERSION < 3 - EXPECT_EQ(4u, off); + BOOST_CHECK_EQUAL(4u, off); #endif // MSGPACK_DEFAULT_API_VERSION < 3 } @@ -410,19 +401,19 @@ struct return_false_end_map_value_visitor : msgpack::null_visitor { std::size_t& m_times; }; -TEST(visitor, return_false_end_map_value) +BOOST_AUTO_TEST_CASE(return_false_end_map_value) { std::size_t times = 0; return_false_end_map_value_visitor v(times); std::size_t off = 0; char const data[] = { static_cast(0x83u), 0x01u, 0x02u, 0x03u, 0x01u, 0x02u, 0x03u }; bool ret = msgpack::parse(data, sizeof(data), off, v); - EXPECT_FALSE(ret); - EXPECT_EQ(2u, times); + BOOST_CHECK(!ret); + BOOST_CHECK_EQUAL(2u, times); #if MSGPACK_DEFAULT_API_VERSION < 3 - EXPECT_EQ(0u, off); + BOOST_CHECK_EQUAL(0u, off); #else // MSGPACK_DEFAULT_API_VERSION < 3 - EXPECT_EQ(4u, off); + BOOST_CHECK_EQUAL(4u, off); #endif // MSGPACK_DEFAULT_API_VERSION < 3 } @@ -432,14 +423,14 @@ struct return_false_start_map_visitor : msgpack::null_visitor { } }; -TEST(visitor, return_false_start_map) +BOOST_AUTO_TEST_CASE(return_false_start_map) { return_false_start_map_visitor v; std::size_t off = 0; char const data[] = { static_cast(0x83u), 0x01u, 0x02u, 0x03u, 0x01u, 0x02u, 0x03u }; bool ret = msgpack::parse(data, sizeof(data), off, v); - EXPECT_FALSE(ret); - EXPECT_EQ(0u, off); + BOOST_CHECK(!ret); + BOOST_CHECK_EQUAL(0u, off); } struct return_false_start_map0_visitor : msgpack::null_visitor { @@ -448,14 +439,14 @@ struct return_false_start_map0_visitor : msgpack::null_visitor { } }; -TEST(visitor, return_false_start_map0) +BOOST_AUTO_TEST_CASE(return_false_start_map0) { return_false_start_map0_visitor v; std::size_t off = 0; char const data[] = { static_cast(0x80u) }; bool ret = msgpack::parse(data, sizeof(data), off, v); - EXPECT_FALSE(ret); - EXPECT_EQ(0u, off); + BOOST_CHECK(!ret); + BOOST_CHECK_EQUAL(0u, off); } struct return_false_end_map_visitor : msgpack::null_visitor { @@ -464,17 +455,17 @@ struct return_false_end_map_visitor : msgpack::null_visitor { } }; -TEST(visitor, return_false_end_map) +BOOST_AUTO_TEST_CASE(return_false_end_map) { return_false_end_map_visitor v; std::size_t off = 0; char const data[] = { static_cast(0x83u), 0x01u, 0x02u, 0x03u, 0x01u, 0x02u, 0x03u }; bool ret = msgpack::parse(data, sizeof(data), off, v); - EXPECT_FALSE(ret); + BOOST_CHECK(!ret); #if MSGPACK_DEFAULT_API_VERSION < 3 - EXPECT_EQ(0u, off); + BOOST_CHECK_EQUAL(0u, off); #else // MSGPACK_DEFAULT_API_VERSION < 3 - EXPECT_EQ(6u, off); + BOOST_CHECK_EQUAL(6u, off); #endif // MSGPACK_DEFAULT_API_VERSION < 3 } @@ -484,14 +475,14 @@ struct return_false_end_map0_visitor : msgpack::null_visitor { } }; -TEST(visitor, return_false_end_map0) +BOOST_AUTO_TEST_CASE(return_false_end_map0) { return_false_end_map0_visitor v; std::size_t off = 0; char const data[] = { static_cast(0x80u) }; bool ret = msgpack::parse(data, sizeof(data), off, v); - EXPECT_FALSE(ret); - EXPECT_EQ(0u, off); + BOOST_CHECK(!ret); + BOOST_CHECK_EQUAL(0u, off); } #endif // MSGPACK_DEFAULT_API_VERSION >= 1 diff --git a/test/zone.cpp b/test/zone.cpp index 2a851107..1ef288a2 100644 --- a/test/zone.cpp +++ b/test/zone.cpp @@ -1,38 +1,30 @@ #include -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif //defined(__GNUC__) +#define BOOST_TEST_MODULE zone +#include -#include - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif //defined(__GNUC__) - -TEST(zone, allocate_align) +BOOST_AUTO_TEST_CASE(allocate_align) { msgpack::zone z; char* start = (char*)z.allocate_align(1); - EXPECT_EQ(0ul, reinterpret_cast(start) % sizeof(int)); + BOOST_CHECK_EQUAL(0ul, reinterpret_cast(start) % sizeof(int)); for (std::size_t s = 1; s < sizeof(int); ++s) { z.allocate_no_align(s); char* buf_a = (char*)z.allocate_align(1); - EXPECT_EQ(0ul, reinterpret_cast(buf_a) % sizeof(int)); + BOOST_CHECK_EQUAL(0ul, reinterpret_cast(buf_a) % sizeof(int)); } } -TEST(zone, allocate_align_custom) +BOOST_AUTO_TEST_CASE(allocate_align_custom) { msgpack::zone z; for (std::size_t align = 1; align < 64; ++align) { char* start = (char*)z.allocate_align(1, align); - EXPECT_EQ(0ul, reinterpret_cast(start) % align); + BOOST_CHECK_EQUAL(0ul, reinterpret_cast(start) % align); for (std::size_t s = 1; s < align; ++s) { z.allocate_no_align(s); char* buf_a = (char*)z.allocate_align(1, align); - EXPECT_EQ(0ul, reinterpret_cast(buf_a) % align); + BOOST_CHECK_EQUAL(0ul, reinterpret_cast(buf_a) % align); } } } @@ -54,21 +46,21 @@ private: }; -TEST(zone, allocate) +BOOST_AUTO_TEST_CASE(allocate) { msgpack::zone z; myclass* m = z.allocate(); - EXPECT_EQ(m->num, 0); - EXPECT_EQ(m->str, "default"); + BOOST_CHECK_EQUAL(m->num, 0); + BOOST_CHECK_EQUAL(m->str, "default"); } -TEST(zone, allocate_constructor) +BOOST_AUTO_TEST_CASE(allocate_constructor) { msgpack::zone z; myclass* m = z.allocate(7, "msgpack"); - EXPECT_EQ(m->num, 7); - EXPECT_EQ(m->str, "msgpack"); + BOOST_CHECK_EQUAL(m->num, 7); + BOOST_CHECK_EQUAL(m->str, "msgpack"); } @@ -78,7 +70,7 @@ static void custom_finalizer_func(void* user) delete m; } -TEST(zone, push_finalizer) +BOOST_AUTO_TEST_CASE(push_finalizer) { msgpack::zone z; myclass* m = new myclass(); @@ -86,7 +78,7 @@ TEST(zone, push_finalizer) } -TEST(zone, push_finalizer_unique_ptr) +BOOST_AUTO_TEST_CASE(push_finalizer_unique_ptr) { msgpack::zone z; msgpack::unique_ptr am(new myclass()); @@ -94,10 +86,10 @@ TEST(zone, push_finalizer_unique_ptr) } -TEST(zone, allocate_no_align) +BOOST_AUTO_TEST_CASE(allocate_no_align) { msgpack::zone z; - char* buf1 = (char*)z.allocate_no_align(4); - char* buf2 = (char*)z.allocate_no_align(4); - EXPECT_EQ(buf1+4, buf2); + char* buf1 = reinterpret_cast(z.allocate_no_align(4)); + char* buf2 = reinterpret_cast(z.allocate_no_align(4)); + BOOST_CHECK_EQUAL(reinterpret_cast(buf1+4), reinterpret_cast(buf2)); }