mirror of
https://github.com/msgpack/msgpack-c.git
synced 2025-10-21 15:51:44 +02:00
Compare commits
42 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
306d59d52f | ||
![]() |
0299d94105 | ||
![]() |
51528a4389 | ||
![]() |
445880108a | ||
![]() |
b5af8ae8bc | ||
![]() |
03551d31fd | ||
![]() |
6f24d240e1 | ||
![]() |
985184b647 | ||
![]() |
96493f581d | ||
![]() |
c1cb968c04 | ||
![]() |
eba6304a3a | ||
![]() |
ef0927a6f0 | ||
![]() |
bf2504e7bb | ||
![]() |
724d1aad39 | ||
![]() |
a5c8a2c845 | ||
![]() |
4e027b72de | ||
![]() |
c31fafbcd1 | ||
![]() |
68cc50a3de | ||
![]() |
9f37918bb5 | ||
![]() |
b8b54a2fef | ||
![]() |
f2c1991ede | ||
![]() |
5ab83b10b4 | ||
![]() |
9785991158 | ||
![]() |
68d085aa45 | ||
![]() |
d1af4a3cdb | ||
![]() |
5f287d1361 | ||
![]() |
76d768c5a4 | ||
![]() |
37744bd6a8 | ||
![]() |
8957d6ec07 | ||
![]() |
3a41b24ff2 | ||
![]() |
d03a9b91f3 | ||
![]() |
366f06d4ac | ||
![]() |
fe4312c427 | ||
![]() |
cd67366b7f | ||
![]() |
80f60009f5 | ||
![]() |
4fd5056ea5 | ||
![]() |
7fc51afd59 | ||
![]() |
8160ede5e2 | ||
![]() |
6e8503f1c0 | ||
![]() |
2f543923d2 | ||
![]() |
b3de6f83cb | ||
![]() |
01f3d24fee |
10
.github/workflows/coverage.yml
vendored
10
.github/workflows/coverage.yml
vendored
@@ -42,12 +42,14 @@ jobs:
|
||||
CMAKE_LIBRARY_PATH="${BASE}/build" GTEST_ROOT="${BASE}/usr" CMAKE_PREFIX_PATH="${BASE}/usr/gcc/lib64/cmake" cmake -DMSGPACK_32BIT=OFF -DBUILD_SHARED_LIBS=ON -DMSGPACK_CHAR_SIGN=signed -DMSGPACK_BUILD_EXAMPLES=ON -DMSGPACK_BUILD_TESTS=ON -DCMAKE_BUILD_TYPE=Debug -DMSGPACK_GEN_COVERAGE=ON ..
|
||||
make -j4
|
||||
make test
|
||||
- name: Upload coverage to Codecov
|
||||
working-directory: build
|
||||
- name: Generate coverage
|
||||
run: |
|
||||
# Create lcov report
|
||||
lcov --capture --directory . --output-file coverage.info
|
||||
lcov --remove coverage.info '/usr/*' --output-file coverage.info # filter system-files
|
||||
lcov --list coverage.info # debug info
|
||||
# Uploading report to CodeCov
|
||||
bash <(curl -s https://codecov.io/bash) -f coverage.info || echo "Codecov did not collect coverage reports"
|
||||
- name: Upload coverage to Codecov
|
||||
uses: codecov/codecov-action@v5
|
||||
with:
|
||||
files: build/coverage.info
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
|
42
.github/workflows/gha.yml
vendored
42
.github/workflows/gha.yml
vendored
@@ -18,6 +18,9 @@ jobs:
|
||||
pattern: [0, 1, 2, 3]
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: install gtest
|
||||
run: |
|
||||
brew install --force googletest
|
||||
- name: build and test
|
||||
env:
|
||||
CC: clang
|
||||
@@ -48,25 +51,11 @@ jobs:
|
||||
export CHAR_SIGN="unsigned"
|
||||
fi
|
||||
|
||||
# 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
|
||||
$CXX -m${ARCH} src/gtest_main.cc -I. -Iinclude -c
|
||||
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 ..
|
||||
|
||||
# build and test
|
||||
CMAKE_CXX_COMPILER="${CXX}" CMAKE_C_COMPILER="${CC}" GTEST_ROOT="${BASE}/usr" CFLAGS="-Werror -g -fsanitize=undefined -fno-sanitize-recover=all" CXXFLAGS="-Werror -g -ggdb3 -fsanitize=undefined -fno-sanitize-recover=all" ${ACTION}
|
||||
CMAKE_CXX_COMPILER="${CXX}" CMAKE_C_COMPILER="${CC}" CFLAGS="-Werror -g -fsanitize=undefined -fno-sanitize-recover=all" CXXFLAGS="-Werror -g -ggdb3 -fsanitize=undefined -fno-sanitize-recover=all" ${ACTION}
|
||||
|
||||
linux:
|
||||
runs-on: ubuntu-18.04
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
@@ -76,7 +65,7 @@ jobs:
|
||||
- name: install build depends
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install g++-multilib clang-8 valgrind
|
||||
sudo apt-get install g++-multilib clang valgrind
|
||||
- name: build and test
|
||||
shell: bash
|
||||
run: |
|
||||
@@ -161,17 +150,12 @@ jobs:
|
||||
fi
|
||||
|
||||
# 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
|
||||
wget https://github.com/google/googletest/archive/v1.13.0.zip -O googletest-1.13.0.zip
|
||||
unzip -q googletest-1.13.0.zip
|
||||
cd googletest-1.13.0
|
||||
cmake -S . -DCMAKE_CXX_FLAGS="-m$ARCH" --install-prefix="$BASE/usr"
|
||||
cmake --build . --verbose
|
||||
cmake --install . --verbose
|
||||
cd ..
|
||||
|
||||
# install zlib
|
||||
@@ -180,7 +164,7 @@ jobs:
|
||||
fi
|
||||
|
||||
# build and test
|
||||
CMAKE_CXX_COMPILER="${CXX}" CMAKE_C_COMPILER="${CC}" GTEST_ROOT="${BASE}/usr" CFLAGS="-Werror -g -fsanitize=undefined -fno-sanitize-recover=all" CXXFLAGS="-Werror -g -ggdb3 -fsanitize=undefined -fno-sanitize-recover=all" ${ACTION}
|
||||
CMAKE_CXX_COMPILER="${CXX}" CMAKE_C_COMPILER="${CC}" GTEST_ROOT="${BASE}/usr" CFLAGS="-Werror -g -gdwarf-4 -fsanitize=undefined -fno-sanitize-recover=all" CXXFLAGS="-Werror -g -ggdb3 -gdwarf-4 -fsanitize=undefined -fno-sanitize-recover=all" ${ACTION}
|
||||
|
||||
windows:
|
||||
runs-on: windows-2019
|
||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@@ -19,7 +19,7 @@ Makefile.in
|
||||
/config.log
|
||||
/config.status
|
||||
/libtool
|
||||
/msgpack.pc
|
||||
/msgpack-c.pc
|
||||
/src/msgpack/version.h
|
||||
/src/msgpack/version.hpp
|
||||
/stamp-h1
|
||||
|
20
CHANGELOG.md
20
CHANGELOG.md
@@ -1,3 +1,23 @@
|
||||
# 2024-08-17 version 6.1.0
|
||||
* Add object initializer functions (#1137)
|
||||
* Fix cmake warnings (#1133, #1137)
|
||||
|
||||
# 2024-06-24 version 6.0.2
|
||||
* Fix header file installation to respect `CMAKE_INSTALL_INCLUDEDIR` (#1125)
|
||||
* Support absolute path for `CMAKE_INSTALL_*DIR` (#1121)
|
||||
* Removed invalid ctest option. (#1120)
|
||||
* Support relative path for `CMAKE_INSTALL_*DIR{ (#1119)
|
||||
|
||||
# 2024-04-02 version 6.0.1
|
||||
* Improve CI environment (#1061, #1091, #1109)
|
||||
* Improve build system (#1060, #1069, #1108)
|
||||
|
||||
# 2023-03-02 version 6.0.0
|
||||
* Remove C++ requirement if test is disabled (#1055)
|
||||
## << breaking changes >>
|
||||
* Change CMake package name of C library to msgpack-c (#1053)
|
||||
Unified all C package, library, cmake, tarball name become msgpack-c.
|
||||
|
||||
# 2023-01-10 version 5.0.0
|
||||
* Add additional address sanitizer for CI. (#1023)
|
||||
## << breaking changes >>
|
||||
|
130
CMakeLists.txt
130
CMakeLists.txt
@@ -1,11 +1,26 @@
|
||||
CMAKE_MINIMUM_REQUIRED (VERSION 2.8.12)
|
||||
if(${CMAKE_VERSION} VERSION_GREATER "3.4")
|
||||
CMAKE_MINIMUM_REQUIRED (VERSION 3.5)
|
||||
else()
|
||||
CMAKE_MINIMUM_REQUIRED (VERSION 2.8.12)
|
||||
IF ((CMAKE_VERSION VERSION_GREATER 3.1) OR
|
||||
(CMAKE_VERSION VERSION_EQUAL 3.1))
|
||||
CMAKE_POLICY(SET CMP0054 NEW)
|
||||
ENDIF ()
|
||||
endif()
|
||||
|
||||
IF ((CMAKE_VERSION VERSION_GREATER 3.1) OR
|
||||
(CMAKE_VERSION VERSION_EQUAL 3.1))
|
||||
CMAKE_POLICY(SET CMP0054 NEW)
|
||||
IF ((CMAKE_VERSION VERSION_GREATER 3.27) OR
|
||||
(CMAKE_VERSION VERSION_EQUAL 3.27))
|
||||
CMAKE_POLICY(SET CMP0145 OLD)
|
||||
ENDIF ()
|
||||
|
||||
PROJECT (msgpackc)
|
||||
OPTION (MSGPACK_BUILD_TESTS "Build msgpack tests." OFF)
|
||||
OPTION (MSGPACK_GEN_COVERAGE "Enable running gcov to get a test coverage report." OFF)
|
||||
|
||||
if(MSGPACK_BUILD_TESTS)
|
||||
PROJECT (msgpack-c)
|
||||
else()
|
||||
PROJECT (msgpack-c C)
|
||||
endif()
|
||||
|
||||
FILE (READ ${CMAKE_CURRENT_SOURCE_DIR}/include/msgpack/version_master.h contents)
|
||||
STRING (REGEX MATCH "#define MSGPACK_VERSION_MAJOR *([0-9a-zA-Z_]*)" NULL_OUT ${contents})
|
||||
@@ -17,10 +32,19 @@ SET (VERSION_REVISION ${CMAKE_MATCH_1})
|
||||
SET (VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_REVISION})
|
||||
|
||||
LIST (APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/")
|
||||
include(GNUInstallDirs)
|
||||
SET (prefix ${CMAKE_INSTALL_PREFIX})
|
||||
SET (exec_prefix "\${prefix}")
|
||||
SET (libdir "\${exec_prefix}/lib")
|
||||
SET (includedir "\${prefix}/include")
|
||||
SET (exec_prefix ${CMAKE_INSTALL_PREFIX})
|
||||
IF (IS_ABSOLUTE ${CMAKE_INSTALL_LIBDIR})
|
||||
SET (libdir ${CMAKE_INSTALL_LIBDIR})
|
||||
ELSE ()
|
||||
SET (libdir "\${prefix}/${CMAKE_INSTALL_LIBDIR}")
|
||||
ENDIF ()
|
||||
IF (IS_ABSOLUTE ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
SET (includedir ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
ELSE ()
|
||||
SET (includedir "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}")
|
||||
ENDIF ()
|
||||
|
||||
OPTION (MSGPACK_32BIT "32bit compile" OFF)
|
||||
|
||||
@@ -31,7 +55,7 @@ IF (BIGENDIAN)
|
||||
SET(MSGPACK_ENDIAN_LITTLE_BYTE 0)
|
||||
ELSE ()
|
||||
SET(MSGPACK_ENDIAN_BIG_BYTE 0)
|
||||
SET(MSGPACK_ENDIAN_LITTLE_BYTE 1)
|
||||
SET(MSGPACK_ENDIAN_LITTLE_BYTE 1)
|
||||
ENDIF ()
|
||||
|
||||
CONFIGURE_FILE (
|
||||
@@ -74,14 +98,6 @@ IF (MSGPACK_CHAR_SIGN)
|
||||
SET (CMAKE_C_FLAGS "-f${MSGPACK_CHAR_SIGN}-char ${CMAKE_C_FLAGS}")
|
||||
ENDIF ()
|
||||
|
||||
FIND_PACKAGE (GTest)
|
||||
FIND_PACKAGE (ZLIB)
|
||||
FIND_PACKAGE (Threads)
|
||||
IF (GTEST_FOUND AND ZLIB_FOUND AND THREADS_FOUND)
|
||||
OPTION (MSGPACK_BUILD_TESTS "Build msgpack tests." ON)
|
||||
OPTION (MSGPACK_GEN_COVERAGE "Enable running gcov to get a test coverage report." OFF)
|
||||
ENDIF ()
|
||||
|
||||
IF (DEFINED BUILD_SHARED_LIBS)
|
||||
IF (BUILD_SHARED_LIBS)
|
||||
IF (DEFINED MSGPACK_ENABLE_SHARED AND NOT MSGPACK_ENABLE_SHARED)
|
||||
@@ -115,20 +131,20 @@ ENDIF ()
|
||||
INCLUDE (Files.cmake)
|
||||
|
||||
CONFIGURE_FILE (
|
||||
msgpack.pc.in
|
||||
msgpack.pc
|
||||
msgpack-c.pc.in
|
||||
msgpack-c.pc
|
||||
@ONLY
|
||||
)
|
||||
|
||||
IF (MSGPACK_ENABLE_SHARED OR MSGPACK_ENABLE_STATIC)
|
||||
ADD_LIBRARY (msgpackc
|
||||
${msgpackc_SOURCES}
|
||||
${msgpackc_HEADERS}
|
||||
ADD_LIBRARY (msgpack-c
|
||||
${msgpack-c_SOURCES}
|
||||
${msgpack-c_HEADERS}
|
||||
)
|
||||
|
||||
SET_TARGET_PROPERTIES (msgpackc PROPERTIES SOVERSION 2 VERSION 2.0.0)
|
||||
SET_TARGET_PROPERTIES (msgpack-c PROPERTIES SOVERSION 2 VERSION 2.0.0)
|
||||
|
||||
TARGET_INCLUDE_DIRECTORIES (msgpackc
|
||||
TARGET_INCLUDE_DIRECTORIES (msgpack-c
|
||||
PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include>
|
||||
@@ -141,12 +157,12 @@ ENDIF ()
|
||||
|
||||
|
||||
IF (MSGPACK_ENABLE_SHARED AND MSGPACK_ENABLE_STATIC)
|
||||
ADD_LIBRARY (msgpackc-static STATIC
|
||||
${msgpackc_SOURCES}
|
||||
${msgpackc_HEADERS}
|
||||
ADD_LIBRARY (msgpack-c-static STATIC
|
||||
${msgpack-c_SOURCES}
|
||||
${msgpack-c_HEADERS}
|
||||
)
|
||||
|
||||
TARGET_INCLUDE_DIRECTORIES (msgpackc-static
|
||||
TARGET_INCLUDE_DIRECTORIES (msgpack-c-static
|
||||
PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include>
|
||||
@@ -156,13 +172,13 @@ IF (MSGPACK_ENABLE_SHARED AND MSGPACK_ENABLE_STATIC)
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
)
|
||||
|
||||
SET_TARGET_PROPERTIES (msgpackc-static PROPERTIES OUTPUT_NAME "msgpackc")
|
||||
SET_TARGET_PROPERTIES (msgpack-c-static PROPERTIES OUTPUT_NAME "msgpack-c")
|
||||
|
||||
IF (MSGPACK_ENABLE_SHARED)
|
||||
IF (MSVC)
|
||||
SET_TARGET_PROPERTIES (msgpackc PROPERTIES IMPORT_SUFFIX "_import.lib")
|
||||
SET_TARGET_PROPERTIES (msgpack-c PROPERTIES IMPORT_SUFFIX "_import.lib")
|
||||
ELSEIF (MINGW)
|
||||
SET_TARGET_PROPERTIES (msgpackc PROPERTIES IMPORT_SUFFIX ".dll.a")
|
||||
SET_TARGET_PROPERTIES (msgpack-c PROPERTIES IMPORT_SUFFIX ".dll.a")
|
||||
ENDIF ()
|
||||
ENDIF ()
|
||||
ENDIF ()
|
||||
@@ -194,19 +210,19 @@ ENDIF ()
|
||||
|
||||
IF ("${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "GNU")
|
||||
IF (MSGPACK_ENABLE_SHARED OR MSGPACK_ENABLE_STATIC)
|
||||
SET_PROPERTY (TARGET msgpackc APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra -DPIC")
|
||||
SET_PROPERTY (TARGET msgpack-c APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra -DPIC")
|
||||
ENDIF ()
|
||||
IF (MSGPACK_ENABLE_SHARED AND MSGPACK_ENABLE_STATIC)
|
||||
SET_PROPERTY (TARGET msgpackc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra" )
|
||||
SET_PROPERTY (TARGET msgpack-c-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra" )
|
||||
ENDIF ()
|
||||
ENDIF ()
|
||||
|
||||
IF ("${CMAKE_C_COMPILER_ID}" STREQUAL "Clang")
|
||||
IF (MSGPACK_ENABLE_SHARED OR MSGPACK_ENABLE_STATIC)
|
||||
SET_PROPERTY (TARGET msgpackc APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags")
|
||||
SET_PROPERTY (TARGET msgpack-c APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags")
|
||||
ENDIF ()
|
||||
IF (MSGPACK_ENABLE_SHARED AND MSGPACK_ENABLE_STATIC)
|
||||
SET_PROPERTY (TARGET msgpackc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags")
|
||||
SET_PROPERTY (TARGET msgpack-c-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags")
|
||||
ENDIF ()
|
||||
ENDIF ()
|
||||
|
||||
@@ -227,7 +243,7 @@ IF ("${CMAKE_C_COMPILER_ID}" STREQUAL "MSVC")
|
||||
ENDIF ()
|
||||
|
||||
IF ("${CMAKE_C_COMPILER_ID}" STREQUAL "MSVC90" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "MSVC10")
|
||||
SET_SOURCE_FILES_PROPERTIES(${msgpackc_SOURCES} PROPERTIES LANGUAGE C)
|
||||
SET_SOURCE_FILES_PROPERTIES(${msgpack-c_SOURCES} PROPERTIES LANGUAGE C)
|
||||
ENDIF ()
|
||||
|
||||
IF ("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "sparc")
|
||||
@@ -247,28 +263,30 @@ IF (MSGPACK_BUILD_EXAMPLES)
|
||||
ENDIF ()
|
||||
|
||||
IF (MSGPACK_ENABLE_SHARED OR MSGPACK_ENABLE_STATIC)
|
||||
SET (MSGPACK_INSTALLTARGETS msgpackc)
|
||||
SET (MSGPACK_INSTALLTARGETS msgpack-c)
|
||||
ENDIF ()
|
||||
|
||||
IF (MSGPACK_ENABLE_SHARED AND MSGPACK_ENABLE_STATIC)
|
||||
LIST (APPEND MSGPACK_INSTALLTARGETS msgpackc-static)
|
||||
LIST (APPEND MSGPACK_INSTALLTARGETS msgpack-c-static)
|
||||
ENDIF ()
|
||||
|
||||
INSTALL (TARGETS ${MSGPACK_INSTALLTARGETS} EXPORT msgpackc-targets
|
||||
INSTALL (TARGETS ${MSGPACK_INSTALLTARGETS} EXPORT msgpack-c-targets
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
)
|
||||
FOREACH (file ${msgpackc_common_HEADERS})
|
||||
GET_FILENAME_COMPONENT (dir ${file} PATH)
|
||||
INSTALL (FILES ${file} DESTINATION ${CMAKE_INSTALL_PREFIX}/${dir})
|
||||
FOREACH (file ${msgpack-c_common_HEADERS})
|
||||
GET_FILENAME_COMPONENT(dir ${file} DIRECTORY)
|
||||
STRING(REPLACE "include" "${CMAKE_INSTALL_INCLUDEDIR}" header_path ${dir})
|
||||
INSTALL (FILES ${file} DESTINATION ${header_path})
|
||||
ENDFOREACH ()
|
||||
FOREACH (file ${msgpackc_configured_HEADERS})
|
||||
GET_FILENAME_COMPONENT (dir ${file} PATH)
|
||||
INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR}/${file} DESTINATION ${CMAKE_INSTALL_PREFIX}/${dir})
|
||||
FOREACH (file ${msgpack-c_configured_HEADERS})
|
||||
GET_FILENAME_COMPONENT(dir ${file} DIRECTORY)
|
||||
STRING(REPLACE "include" "${CMAKE_INSTALL_INCLUDEDIR}" header_path ${dir})
|
||||
INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR}/${file} DESTINATION ${header_path})
|
||||
ENDFOREACH ()
|
||||
IF (NOT MSVC)
|
||||
INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR}/msgpack.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
||||
INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR}/msgpack-c.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
||||
ENDIF ()
|
||||
|
||||
# Doxygen
|
||||
@@ -298,36 +316,36 @@ ENDIF ()
|
||||
|
||||
INCLUDE (CMakePackageConfigHelpers)
|
||||
|
||||
SET (CMAKE_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/msgpackc")
|
||||
SET (CMAKE_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/msgpack-c")
|
||||
|
||||
WRITE_BASIC_PACKAGE_VERSION_FILE (
|
||||
msgpackc-config-version.cmake
|
||||
msgpack-c-config-version.cmake
|
||||
VERSION ${VERSION}
|
||||
COMPATIBILITY SameMajorVersion
|
||||
)
|
||||
|
||||
IF (NOT CMAKE_VERSION VERSION_LESS 3.0)
|
||||
EXPORT (EXPORT msgpackc-targets
|
||||
FILE "${CMAKE_CURRENT_BINARY_DIR}/msgpackc-targets.cmake"
|
||||
EXPORT (EXPORT msgpack-c-targets
|
||||
FILE "${CMAKE_CURRENT_BINARY_DIR}/msgpack-c-targets.cmake"
|
||||
)
|
||||
ENDIF ()
|
||||
|
||||
CONFIGURE_PACKAGE_CONFIG_FILE (msgpackc-config.cmake.in
|
||||
msgpackc-config.cmake
|
||||
CONFIGURE_PACKAGE_CONFIG_FILE (msgpack-c-config.cmake.in
|
||||
msgpack-c-config.cmake
|
||||
INSTALL_DESTINATION "${CMAKE_INSTALL_CMAKEDIR}"
|
||||
)
|
||||
|
||||
INSTALL (EXPORT msgpackc-targets
|
||||
INSTALL (EXPORT msgpack-c-targets
|
||||
FILE
|
||||
msgpackc-targets.cmake
|
||||
msgpack-c-targets.cmake
|
||||
DESTINATION
|
||||
"${CMAKE_INSTALL_CMAKEDIR}"
|
||||
)
|
||||
|
||||
INSTALL (
|
||||
FILES
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/msgpackc-config.cmake"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/msgpackc-config-version.cmake"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/msgpack-c-config.cmake"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/msgpack-c-config-version.cmake"
|
||||
DESTINATION
|
||||
"${CMAKE_INSTALL_CMAKEDIR}"
|
||||
)
|
||||
|
12
Files.cmake
12
Files.cmake
@@ -1,5 +1,5 @@
|
||||
# Source files
|
||||
SET (msgpackc_SOURCES
|
||||
SET (msgpack-c_SOURCES
|
||||
src/objectc.c
|
||||
src/unpack.c
|
||||
src/version.c
|
||||
@@ -8,7 +8,7 @@ SET (msgpackc_SOURCES
|
||||
)
|
||||
|
||||
# Header files
|
||||
SET (msgpackc_common_HEADERS
|
||||
SET (msgpack-c_common_HEADERS
|
||||
include/msgpack.h
|
||||
include/msgpack/fbuffer.h
|
||||
include/msgpack/gcc_atomic.h
|
||||
@@ -29,13 +29,13 @@ SET (msgpackc_common_HEADERS
|
||||
)
|
||||
|
||||
# Header files will configured
|
||||
SET (msgpackc_configured_HEADERS
|
||||
SET (msgpack-c_configured_HEADERS
|
||||
include/msgpack/pack_template.h
|
||||
include/msgpack/sysdep.h
|
||||
)
|
||||
|
||||
# All header files
|
||||
LIST (APPEND msgpackc_HEADERS
|
||||
${msgpackc_common_HEADERS}
|
||||
${msgpackc_configured_HEADERS}
|
||||
LIST (APPEND msgpack-c_HEADERS
|
||||
${msgpack-c_common_HEADERS}
|
||||
${msgpack-c_configured_HEADERS}
|
||||
)
|
||||
|
@@ -183,7 +183,7 @@ int main(void) {
|
||||
}
|
||||
|
||||
/* results:
|
||||
* $ gcc stream.cc -lmsgpackc -o stream
|
||||
* $ gcc stream.cc -lmsgpack-c -o stream
|
||||
* $ ./stream
|
||||
* 1
|
||||
* 2
|
||||
|
@@ -1,8 +1,8 @@
|
||||
`msgpack` for C
|
||||
===================
|
||||
|
||||
Version 5.0.0 [](https://github.com/msgpack/msgpack-c/actions) [](https://ci.appveyor.com/project/redboltz/msgpack-c/branch/c_master)
|
||||
[](https://codecov.io/gh/msgpack/msgpack-c/branch/c_master)
|
||||
Version 6.1.0 [](https://github.com/msgpack/msgpack-c/actions) [](https://ci.appveyor.com/project/redboltz/msgpack-c/branch/c_master)
|
||||
[](https://app.codecov.io/gh/msgpack/msgpack-c/tree/c_master)
|
||||
|
||||
It's like JSON but smaller and faster.
|
||||
|
||||
|
14
appveyor.yml
14
appveyor.yml
@@ -1,4 +1,4 @@
|
||||
version: 5.0.0.{build}
|
||||
version: 6.1.0.{build}
|
||||
|
||||
branches:
|
||||
only:
|
||||
@@ -22,10 +22,10 @@ build_script:
|
||||
- cmake --build . --config Release
|
||||
- cd ..
|
||||
- cd ..
|
||||
- appveyor DownloadFile http://zlib.net/zlib-1.2.13.tar.gz -FileName zlib-1.2.13.tar.gz
|
||||
- 7z x zlib-1.2.13.tar.gz > NUL
|
||||
- 7z x zlib-1.2.13.tar > NUL
|
||||
- cd zlib-1.2.13
|
||||
- appveyor DownloadFile http://zlib.net/zlib-1.3.1.tar.gz -FileName zlib-1.3.1.tar.gz
|
||||
- 7z x zlib-1.3.1.tar.gz > NUL
|
||||
- 7z x zlib-1.3.1.tar > NUL
|
||||
- cd zlib-1.3.1
|
||||
- md build
|
||||
- cd build
|
||||
- cmake -G %msvc% ..
|
||||
@@ -35,9 +35,9 @@ build_script:
|
||||
- cd ..
|
||||
- md build
|
||||
- cd build
|
||||
- cmake -G %msvc% -DGTEST_LIBRARY=%APPVEYOR_BUILD_FOLDER%\googletest-release-1.7.0\build\Release\gtest.lib -DGTEST_MAIN_LIBRARY=%APPVEYOR_BUILD_FOLDER%\googletest-release-1.7.0\build\Release\gtest_main.lib -DGTEST_INCLUDE_DIR=%APPVEYOR_BUILD_FOLDER%\googletest-release-1.7.0\include -DZLIB_LIBRARY=%APPVEYOR_BUILD_FOLDER%\zlib-1.2.13\build\Release\zlib.lib -DZLIB_INCLUDE_DIR=%APPVEYOR_BUILD_FOLDER%\zlib-1.2.13 -DCMAKE_CXX_FLAGS='"/D_VARIADIC_MAX=10 /EHsc"' ..
|
||||
- cmake -G %msvc% -DGTEST_LIBRARY=%APPVEYOR_BUILD_FOLDER%\googletest-release-1.7.0\build\Release\gtest.lib -DGTEST_MAIN_LIBRARY=%APPVEYOR_BUILD_FOLDER%\googletest-release-1.7.0\build\Release\gtest_main.lib -DGTEST_INCLUDE_DIR=%APPVEYOR_BUILD_FOLDER%\googletest-release-1.7.0\include -DZLIB_LIBRARY=%APPVEYOR_BUILD_FOLDER%\zlib-1.3.1\build\Release\zlib.lib -DZLIB_INCLUDE_DIR=%APPVEYOR_BUILD_FOLDER%\zlib-1.3.1 -DCMAKE_CXX_FLAGS='"/D_VARIADIC_MAX=10 /EHsc"' ..
|
||||
- cmake --build . --config Release -v
|
||||
|
||||
test_script:
|
||||
- set PATH=%PATH%;%APPVEYOR_BUILD_FOLDER%\googletest-release-1.7.0\build\Release;%APPVEYOR_BUILD_FOLDER%\zlib-1.2.13\build\Release;%APPVEYOR_BUILD_FOLDER%\build\release
|
||||
- set PATH=%PATH%;%APPVEYOR_BUILD_FOLDER%\googletest-release-1.7.0\build\Release;%APPVEYOR_BUILD_FOLDER%\zlib-1.3\build\Release;%APPVEYOR_BUILD_FOLDER%\build\release
|
||||
- ctest -V
|
||||
|
@@ -20,12 +20,13 @@ 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_32BIT=${BIT32} -DBUILD_SHARED_LIBS=${SHARED} -DMSGPACK_CHAR_SIGN=${CHAR_SIGN} -DCMAKE_CXX_FLAGS="${ARCH_FLAG} ${CXXFLAGS} ${SAN}" -DCMAKE_C_FLAGS="${CFLAGS} ${SAN}" ..
|
||||
cmake -DMSGPACK_BUILD_TESTS=ON -DMSGPACK_32BIT=${BIT32} -DBUILD_SHARED_LIBS=${SHARED} -DMSGPACK_CHAR_SIGN=${CHAR_SIGN} -DCMAKE_CXX_FLAGS="${ARCH_FLAG} ${CXXFLAGS} ${SAN}" -DCMAKE_C_FLAGS="${CFLAGS} ${SAN}" ${ZLIB32} ..
|
||||
|
||||
ret=$?
|
||||
if [ $ret -ne 0 ]
|
||||
@@ -33,7 +34,7 @@ then
|
||||
exit $ret
|
||||
fi
|
||||
|
||||
make
|
||||
make VERBOSE=1
|
||||
|
||||
ret=$?
|
||||
if [ $ret -ne 0 ]
|
||||
@@ -60,17 +61,8 @@ fi
|
||||
|
||||
if [ "${ARCH}" != "32" ] && [ `uname` = "Linux" ]
|
||||
then
|
||||
ctest -T memcheck | tee memcheck.log
|
||||
|
||||
ret=${PIPESTATUS[0]}
|
||||
if [ $ret -ne 0 ]
|
||||
then
|
||||
exit $ret
|
||||
fi
|
||||
cat memcheck.log | grep "Memory Leak" > /dev/null
|
||||
ret=$?
|
||||
if [ $ret -eq 0 ]
|
||||
then
|
||||
if ! ctest -T memcheck; then
|
||||
find Testing/Temporary -name "MemoryChecker.*.log" -exec cat {} +
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
@@ -27,10 +27,6 @@ comment:
|
||||
|
||||
ignore:
|
||||
- "test"
|
||||
- "fuzz"
|
||||
- "erb"
|
||||
- "ci"
|
||||
- "cmake"
|
||||
- "examle"
|
||||
- "external"
|
||||
- "usr"
|
||||
- "example"
|
||||
|
@@ -19,7 +19,7 @@ FOREACH (source_file ${exec_PROGRAMS})
|
||||
${source_file}
|
||||
)
|
||||
TARGET_LINK_LIBRARIES (${source_file_we}
|
||||
msgpackc
|
||||
msgpack-c
|
||||
)
|
||||
IF ("${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "GNU")
|
||||
SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra")
|
||||
|
@@ -1,17 +1,17 @@
|
||||
cmake_minimum_required (VERSION 3.0)
|
||||
cmake_minimum_required (VERSION 3.5)
|
||||
project (example)
|
||||
|
||||
if(EXAMPLE_MSGPACK_EMBEDDED)
|
||||
add_subdirectory(msgpack-c)
|
||||
set(msgpackc_DIR ${CMAKE_CURRENT_BINARY_DIR}/msgpack-c)
|
||||
set(msgpack-c_DIR ${CMAKE_CURRENT_BINARY_DIR}/msgpack-c)
|
||||
endif()
|
||||
|
||||
find_package(msgpackc REQUIRED)
|
||||
find_package(msgpack-c REQUIRED)
|
||||
|
||||
add_executable (${PROJECT_NAME} ${CMAKE_CURRENT_LIST_DIR}/../simple_c.c)
|
||||
target_link_libraries(${PROJECT_NAME} msgpackc)
|
||||
target_link_libraries(${PROJECT_NAME} msgpack-c)
|
||||
|
||||
if(TARGET msgpackc-static)
|
||||
if(TARGET msgpack-c-static)
|
||||
add_executable (${PROJECT_NAME}-static ${CMAKE_CURRENT_LIST_DIR}/../simple_c.c)
|
||||
target_link_libraries(${PROJECT_NAME}-static msgpackc-static)
|
||||
target_link_libraries(${PROJECT_NAME}-static msgpack-c-static)
|
||||
endif()
|
||||
|
@@ -97,6 +97,39 @@ typedef struct msgpack_object_kv {
|
||||
msgpack_object val;
|
||||
} msgpack_object_kv;
|
||||
|
||||
MSGPACK_DLLEXPORT
|
||||
void msgpack_object_init_nil(msgpack_object* d);
|
||||
|
||||
MSGPACK_DLLEXPORT
|
||||
void msgpack_object_init_boolean(msgpack_object* d, bool v);
|
||||
|
||||
MSGPACK_DLLEXPORT
|
||||
void msgpack_object_init_unsigned_integer(msgpack_object* d, uint64_t v);
|
||||
|
||||
MSGPACK_DLLEXPORT
|
||||
void msgpack_object_init_signed_integer(msgpack_object* d, int64_t v);
|
||||
|
||||
MSGPACK_DLLEXPORT
|
||||
void msgpack_object_init_float32(msgpack_object* d, float v);
|
||||
|
||||
MSGPACK_DLLEXPORT
|
||||
void msgpack_object_init_float64(msgpack_object* d, double v);
|
||||
|
||||
MSGPACK_DLLEXPORT
|
||||
void msgpack_object_init_str(msgpack_object* d, const char* data, uint32_t size);
|
||||
|
||||
MSGPACK_DLLEXPORT
|
||||
void msgpack_object_init_bin(msgpack_object* d, const char* data, uint32_t size);
|
||||
|
||||
MSGPACK_DLLEXPORT
|
||||
void msgpack_object_init_ext(msgpack_object* d, int8_t type, const char* data, uint32_t size);
|
||||
|
||||
MSGPACK_DLLEXPORT
|
||||
void msgpack_object_init_array(msgpack_object* d, msgpack_object* data, uint32_t size);
|
||||
|
||||
MSGPACK_DLLEXPORT
|
||||
void msgpack_object_init_map(msgpack_object* d, msgpack_object_kv* data, uint32_t size);
|
||||
|
||||
#if !defined(_KERNEL_MODE)
|
||||
MSGPACK_DLLEXPORT
|
||||
void msgpack_object_print(FILE* out, msgpack_object o);
|
||||
|
@@ -1,3 +1,3 @@
|
||||
#define MSGPACK_VERSION_MAJOR 5
|
||||
#define MSGPACK_VERSION_MINOR 0
|
||||
#define MSGPACK_VERSION_MAJOR 6
|
||||
#define MSGPACK_VERSION_MINOR 1
|
||||
#define MSGPACK_VERSION_REVISION 0
|
||||
|
@@ -24,7 +24,7 @@ tar --append --file=$filename $prefix/CMakeLists.txt
|
||||
tar --append --file=$filename $prefix/Files.cmake
|
||||
tar --append --file=$filename $prefix/NOTICE
|
||||
tar --append --file=$filename $prefix/Doxyfile
|
||||
tar --append --file=$filename $prefix/msgpack.pc.in
|
||||
tar --append --file=$filename $prefix/msgpack-c.pc.in
|
||||
tar --append --file=$filename $prefix/AUTHORS
|
||||
tar --append --file=$filename $prefix/README.md
|
||||
tar --append --file=$filename $prefix/LICENSE_1_0.txt
|
||||
@@ -32,7 +32,7 @@ tar --append --file=$filename $prefix/ChangeLog
|
||||
tar --append --file=$filename $prefix/NEWS
|
||||
tar --append --file=$filename $prefix/COPYING
|
||||
tar --append --file=$filename $prefix/README
|
||||
tar --append --file=$filename $prefix/msgpackc-config.cmake.in
|
||||
tar --append --file=$filename $prefix/msgpack-c-config.cmake.in
|
||||
|
||||
rm -f $prefix
|
||||
|
||||
|
19
msgpack-c-config.cmake.in
Normal file
19
msgpack-c-config.cmake.in
Normal file
@@ -0,0 +1,19 @@
|
||||
#.rst:
|
||||
# msgpack
|
||||
# -------
|
||||
#
|
||||
# The following import targets are created
|
||||
#
|
||||
# ::
|
||||
#
|
||||
# msgpack-c
|
||||
# msgpack-c-static (optional)
|
||||
#
|
||||
|
||||
@PACKAGE_INIT@
|
||||
|
||||
include(CMakeFindDependencyMacro)
|
||||
|
||||
if(NOT TARGET msgpack-c AND NOT TARGET msgpack-c-static)
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/msgpack-c-targets.cmake")
|
||||
endif()
|
@@ -6,5 +6,5 @@ includedir=@includedir@
|
||||
Name: MessagePack
|
||||
Description: Binary-based efficient object serialization library
|
||||
Version: @VERSION@
|
||||
Libs: -L${libdir} -lmsgpackc
|
||||
Libs: -L${libdir} -lmsgpack-c
|
||||
Cflags: -I${includedir}
|
@@ -1,19 +0,0 @@
|
||||
#.rst:
|
||||
# msgpack
|
||||
# -------
|
||||
#
|
||||
# The following import targets are created
|
||||
#
|
||||
# ::
|
||||
#
|
||||
# msgpackc
|
||||
# msgpackc-static (optional)
|
||||
#
|
||||
|
||||
@PACKAGE_INIT@
|
||||
|
||||
include(CMakeFindDependencyMacro)
|
||||
|
||||
if(NOT TARGET msgpackc AND NOT TARGET msgpackc-static)
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/msgpackc-targets.cmake")
|
||||
endif()
|
@@ -125,6 +125,72 @@ int msgpack_pack_object(msgpack_packer* pk, msgpack_object d)
|
||||
}
|
||||
}
|
||||
|
||||
void msgpack_object_init_nil(msgpack_object* d) {
|
||||
d->type = MSGPACK_OBJECT_NIL;
|
||||
}
|
||||
|
||||
void msgpack_object_init_boolean(msgpack_object* d, bool v) {
|
||||
d->type = MSGPACK_OBJECT_BOOLEAN;
|
||||
d->via.boolean = v;
|
||||
}
|
||||
|
||||
void msgpack_object_init_unsigned_integer(msgpack_object* d, uint64_t v) {
|
||||
d->type = MSGPACK_OBJECT_POSITIVE_INTEGER;
|
||||
d->via.u64 = v;
|
||||
}
|
||||
|
||||
void msgpack_object_init_signed_integer(msgpack_object* d, int64_t v) {
|
||||
if (v < 0) {
|
||||
d->type = MSGPACK_OBJECT_NEGATIVE_INTEGER;
|
||||
d->via.i64 = v;
|
||||
}
|
||||
else {
|
||||
d->type = MSGPACK_OBJECT_POSITIVE_INTEGER;
|
||||
d->via.u64 = v;
|
||||
}
|
||||
}
|
||||
|
||||
void msgpack_object_init_float32(msgpack_object* d, float v) {
|
||||
d->type = MSGPACK_OBJECT_FLOAT32;
|
||||
d->via.f64 = v;
|
||||
}
|
||||
|
||||
void msgpack_object_init_float64(msgpack_object* d, double v) {
|
||||
d->type = MSGPACK_OBJECT_FLOAT64;
|
||||
d->via.f64 = v;
|
||||
}
|
||||
|
||||
void msgpack_object_init_str(msgpack_object* d, const char* data, uint32_t size) {
|
||||
d->type = MSGPACK_OBJECT_STR;
|
||||
d->via.str.ptr = data;
|
||||
d->via.str.size = size;
|
||||
}
|
||||
|
||||
void msgpack_object_init_bin(msgpack_object* d, const char* data, uint32_t size) {
|
||||
d->type = MSGPACK_OBJECT_BIN;
|
||||
d->via.bin.ptr = data;
|
||||
d->via.bin.size = size;
|
||||
}
|
||||
|
||||
void msgpack_object_init_ext(msgpack_object* d, int8_t type, const char* data, uint32_t size) {
|
||||
d->type = MSGPACK_OBJECT_EXT;
|
||||
d->via.ext.type = type;
|
||||
d->via.ext.ptr = data;
|
||||
d->via.ext.size = size;
|
||||
}
|
||||
|
||||
void msgpack_object_init_array(msgpack_object* d, msgpack_object* data, uint32_t size) {
|
||||
d->type = MSGPACK_OBJECT_ARRAY;
|
||||
d->via.array.ptr = data;
|
||||
d->via.array.size = size;
|
||||
}
|
||||
|
||||
void msgpack_object_init_map(msgpack_object* d, msgpack_object_kv* data, uint32_t size) {
|
||||
d->type = MSGPACK_OBJECT_MAP;
|
||||
d->via.map.ptr = data;
|
||||
d->via.map.size = size;
|
||||
}
|
||||
|
||||
#if !defined(_KERNEL_MODE)
|
||||
|
||||
static void msgpack_object_bin_print(FILE* out, const char *ptr, size_t size)
|
||||
|
@@ -23,7 +23,7 @@ FOREACH (source_file ${check_PROGRAMS})
|
||||
)
|
||||
|
||||
TARGET_LINK_LIBRARIES (${source_file_we}
|
||||
msgpackc
|
||||
msgpack-c
|
||||
${GTEST_BOTH_LIBRARIES}
|
||||
${ZLIB_LIBRARIES}
|
||||
${CMAKE_THREAD_LIBS_INIT}
|
||||
|
@@ -1612,6 +1612,111 @@ TEST(MSGPACKC, object_bin_print_buffer_overflow) {
|
||||
EXPECT_STREQ("\"test\"", buffer);
|
||||
}
|
||||
|
||||
TEST(MSGPACKC, init_msgpack_obj_nil) {
|
||||
msgpack_object obj;
|
||||
msgpack_object_init_nil(&obj);
|
||||
EXPECT_EQ(MSGPACK_OBJECT_NIL, obj.type);
|
||||
}
|
||||
|
||||
TEST(MSGPACKC, init_msgpack_obj_boolean) {
|
||||
msgpack_object obj;
|
||||
msgpack_object_init_boolean(&obj, true);
|
||||
EXPECT_EQ(MSGPACK_OBJECT_BOOLEAN, obj.type);
|
||||
EXPECT_EQ(true, obj.via.boolean);
|
||||
}
|
||||
|
||||
TEST(MSGPACKC, init_msgpack_obj_unsigned_integer) {
|
||||
msgpack_object obj;
|
||||
msgpack_object_init_unsigned_integer(&obj, 123);
|
||||
EXPECT_EQ(MSGPACK_OBJECT_POSITIVE_INTEGER, obj.type);
|
||||
EXPECT_EQ(static_cast<uint64_t>(123), obj.via.u64);
|
||||
}
|
||||
|
||||
TEST(MSGPACKC, init_msgpack_obj_signed_integer1) {
|
||||
msgpack_object obj;
|
||||
msgpack_object_init_signed_integer(&obj, -123);
|
||||
EXPECT_EQ(MSGPACK_OBJECT_NEGATIVE_INTEGER, obj.type);
|
||||
EXPECT_EQ(-123, obj.via.i64);
|
||||
}
|
||||
|
||||
TEST(MSGPACKC, init_msgpack_obj_signed_integer2) {
|
||||
msgpack_object obj;
|
||||
msgpack_object_init_signed_integer(&obj, 123);
|
||||
EXPECT_EQ(MSGPACK_OBJECT_POSITIVE_INTEGER, obj.type);
|
||||
EXPECT_EQ(static_cast<uint64_t>(123), obj.via.u64);
|
||||
}
|
||||
|
||||
TEST(MSGPACKC, init_msgpack_obj_float32) {
|
||||
msgpack_object obj;
|
||||
float val = 1.23f;
|
||||
msgpack_object_init_float32(&obj, val);
|
||||
EXPECT_EQ(MSGPACK_OBJECT_FLOAT32, obj.type);
|
||||
EXPECT_TRUE(fabs(obj.via.f64 - val) <= kEPS);
|
||||
}
|
||||
|
||||
TEST(MSGPACKC, init_msgpack_obj_float64) {
|
||||
msgpack_object obj;
|
||||
double val = 1.23;
|
||||
msgpack_object_init_float64(&obj, val);
|
||||
EXPECT_EQ(MSGPACK_OBJECT_FLOAT64, obj.type);
|
||||
EXPECT_TRUE(fabs(obj.via.f64 - val) <= kEPS);
|
||||
}
|
||||
|
||||
|
||||
TEST(MSGPACKC, init_msgpack_obj_string) {
|
||||
msgpack_object obj;
|
||||
char buffer[] = "test";
|
||||
msgpack_object_init_str(&obj, buffer, (uint32_t)strlen(buffer));
|
||||
EXPECT_EQ(MSGPACK_OBJECT_STR, obj.type);
|
||||
EXPECT_STREQ(buffer, obj.via.str.ptr);
|
||||
}
|
||||
|
||||
TEST(MSGPACKC, init_msgpack_obj_bin) {
|
||||
msgpack_object obj;
|
||||
char buffer[] = "test";
|
||||
msgpack_object_init_bin(&obj, buffer, (uint32_t)strlen(buffer));
|
||||
EXPECT_EQ(MSGPACK_OBJECT_BIN, obj.type);
|
||||
EXPECT_STREQ(buffer, obj.via.bin.ptr);
|
||||
}
|
||||
|
||||
TEST(MSGPACKC, init_msgpack_obj_ext) {
|
||||
msgpack_object obj;
|
||||
char buffer[] = "test";
|
||||
msgpack_object_init_ext(&obj, 1, buffer, (uint32_t)strlen(buffer));
|
||||
EXPECT_EQ(MSGPACK_OBJECT_EXT, obj.type);
|
||||
EXPECT_EQ(1, obj.via.ext.type);
|
||||
EXPECT_STREQ(buffer, obj.via.ext.ptr);
|
||||
}
|
||||
|
||||
#define BUFFER_SIZE 4
|
||||
TEST(MSGPACKC, init_msgpack_obj_array) {
|
||||
msgpack_object obj;
|
||||
char buffer[][7] = {"test_1", "test_2", "test_3", "test_4"};
|
||||
msgpack_object array[BUFFER_SIZE];
|
||||
for(size_t i = 0; i < BUFFER_SIZE; i++) {
|
||||
msgpack_object_init_str(&array[i], buffer[i], (uint32_t)strlen(buffer[i]));
|
||||
}
|
||||
msgpack_object_init_array(&obj, array, BUFFER_SIZE);
|
||||
EXPECT_EQ(MSGPACK_OBJECT_ARRAY, obj.type);
|
||||
for(size_t i = 0; i < BUFFER_SIZE; i++) {
|
||||
EXPECT_STREQ(buffer[i], obj.via.array.ptr[i].via.str.ptr);
|
||||
}
|
||||
}
|
||||
|
||||
TEST(MSGPACKC, init_msgpack_obj_map) {
|
||||
msgpack_object obj;
|
||||
char key_str[] = "test_key";
|
||||
char value_str[] = "test_value";
|
||||
msgpack_object key,value;
|
||||
msgpack_object_init_str(&key, key_str, (uint32_t)strlen(key_str));
|
||||
msgpack_object_init_str(&value, value_str, (uint32_t)strlen(value_str));
|
||||
msgpack_object_kv map = { key, value };
|
||||
msgpack_object_init_map(&obj, &map, 1);
|
||||
EXPECT_EQ(MSGPACK_OBJECT_MAP, obj.type);
|
||||
EXPECT_STREQ(key_str, obj.via.map.ptr->key.via.str.ptr);
|
||||
EXPECT_STREQ(value_str, obj.via.map.ptr->val.via.str.ptr);
|
||||
}
|
||||
|
||||
/* test for vrefbuffer */
|
||||
#define GEN_TEST_VREFBUFFER_PREPARE(...) \
|
||||
msgpack_vrefbuffer vbuf; \
|
||||
|
Reference in New Issue
Block a user