Compare commits

...

90 Commits
v6.20.0 ... 6.x

Author SHA1 Message Date
617c0329df Replace problematic symbols in idf_component.yml
Fixes #2131
2024-09-26 09:21:51 +02:00
57354de831 Make string support even more generic
Closes #2084
2024-05-01 14:04:04 +02:00
c99af48e97 CI: update runner for the lint job
Ported from ece4d030a8
2024-05-01 14:04:00 +02:00
0741bd9e68 Fix typo in "endianness"
Ported from 0d43e51d48
Closes #2071
2024-03-26 13:46:27 +01:00
8d3d9c718d Remove final from JsonArray, JsonObject, and JsonVariant
`final` breaks ThingsBoard ಠ_ಠ
https://github.com/thingsboard/thingsboard-client-sdk/blob/v0.12.2/src/RPC_Response.h#L10

See #2056.
This reverts commit 5ed9daae91.
2024-02-18 20:01:04 +01:00
5ed9daae91 Mark JsonArray, JsonObject, and JsonVariant as final
See #2056
Ported from 483a2c9
2024-02-18 11:25:49 +01:00
0e7262a77b Improve error messages when using char or char*
See #2043
Ported from 650d537b5d
2024-01-26 18:45:12 +01:00
40ee05c065 Set version to 6.21.5 2024-01-10 21:27:06 +01:00
632cb279f1 CI: publish package to PlatformIO registry
Ported from 44d2d47863
2024-01-10 21:24:35 +01:00
6e641ae0b0 Remove unused files in the PlatformIO package
Ported from 3571db6290
2024-01-10 21:23:38 +01:00
5d1d2721d1 Fix volatile bool serialized as 1 or 0
Fixes #2029
2024-01-10 13:30:26 +01:00
3e1be980d9 Fix function returns incomplete class type on IAR (issue #2001) 2023-12-07 14:43:53 +01:00
38441691cd Set version to 6.21.4 2023-12-07 10:10:23 +01:00
6ed87029e2 Fix no instance of overloaded function... on IAR (fixes #2001) 2023-12-06 17:36:39 +01:00
7517ecb91b Force inline ZeroTerminatedRamString::size()
Resolves #1990
2023-11-06 09:50:11 +01:00
49e2a8d421 Fix 'std::string_view' has not been declared (issue #1967) 2023-09-13 18:13:19 +02:00
259855a87b Fix 'std::string' has not been declared (issue #1967) 2023-09-13 18:13:18 +02:00
aebf042bae Test custom converter for char (#1963) 2023-08-24 09:43:23 +02:00
9794ba24b2 Remove duplicate comment block in wandbox's JsonGeneratorExample.cpp 2023-07-23 17:59:27 +02:00
4b00783345 Set version to 6.21.3 2023-07-23 17:49:42 +02:00
371fa4667e Scripts: call wandbox/publish.sh from get-release-page.sh 2023-07-23 17:47:32 +02:00
7eec01cdd6 Show a link to the doc when user passes an unsupported input type 2023-07-23 16:39:24 +02:00
6c5fde2a55 Fix ARDUINOJSON_BIN2ALPHA_0110() 2023-07-12 14:54:58 +02:00
433fb4b961 Include ARDUINOJSON_SLOT_OFFSET_SIZE in the namespace name 2023-07-12 14:54:19 +02:00
afbcc2106e Fix double call to size() in serializeMsgPack() 2023-07-12 11:54:20 +02:00
7b1c012f80 Fix double lookup in to<JsonVariant>()
Ported from 23b01a89b1
2023-07-05 21:10:47 +02:00
ecbc8e85d4 Wandbox: upgrade to GCC 5.5.0 2023-06-19 09:03:28 +02:00
4d00ed9efc Fix build on ESP32 (caused by espressif/arduino-esp32#7941)
Ported from 6b4dd3ff2f
2023-05-06 10:42:17 +02:00
cd5566cd40 Add a test for #1922 2023-05-06 10:32:33 +02:00
52d8a65cbc Fix compatibility with the Blynk libary (fixes #1914) 2023-04-18 15:13:41 +02:00
420221f078 Set version to 6.21.2 2023-04-12 14:35:25 +02:00
082ae69e86 Set default for ARDUINOJSON_ENABLE_PROGMEM to 1 on AVR 2023-04-12 11:42:02 +02:00
976a6d7594 CI: check build configuration on AVR 2023-04-12 11:22:50 +02:00
40daf56b5a Allow using PROGMEM outside of Arduino (fixes #1903) 2023-04-07 18:19:33 +02:00
31ce648e63 Change naming convention from _member to member_ (fixes #1905) 2023-04-07 09:02:23 +02:00
4ba9c1b0c0 Add Dev Container configs 2023-03-27 18:59:21 +02:00
19c5bb7f15 Pass -v to particle command line 2023-03-27 14:22:15 +02:00
cb850bc1b1 Set version to 6.21.1 2023-03-27 14:05:53 +02:00
481e4d2ffb Add timeouts for particle commands 2023-03-27 14:05:10 +02:00
9e9015f4b9 Fix compatibility with GCC 5.2 (fixes #1897) 2023-03-27 11:00:20 +02:00
74601b2585 CI: restore build on GCC 5 2023-03-27 08:48:44 +02:00
9bb3f4051d Double speed of DynamicJsonDocument::garbageCollect() 2023-03-20 12:32:52 +01:00
5edd435fe9 Add a constructor to VariantData 2023-03-20 10:14:54 +01:00
de9239caab Set version to 6.21.0 2023-03-14 21:05:56 +01:00
c89a2025ce Make string support generic (issue #1807) 2023-03-13 12:19:05 +01:00
42ae8c3037 Remove negativeBinaryPowersOfTenPlusOne 2023-02-22 15:42:10 +01:00
319ececf26 Keep only one implementation of make_float() 2023-02-22 15:42:10 +01:00
886254c41e Reduce size of make_float() 2023-02-22 15:42:10 +01:00
4e7099dc73 Add pgm_ptr<T> 2023-02-22 15:42:10 +01:00
26948cb83a Use 64-bits literals to forge 64-bits literals 2023-02-22 11:40:15 +01:00
0f8698e655 Replace ARDUINOJSON_EXPANDX with variadic macros (#1820) 2023-02-22 11:24:51 +01:00
b2b995edb3 Use delete instead of hiding copy constructors and assignments (#1820) 2023-02-17 10:59:57 +01:00
33a4773fbd Set clang-format standard to C++11 (#1820) 2023-02-16 11:51:02 +01:00
daa87e12dc Update copyright notice 2023-02-16 11:45:01 +01:00
5abf512276 Reduce number of overloads of deserializeJson() and deserializeMsgPack() (#1820) 2023-02-16 11:17:15 +01:00
0dd4a68913 Use only letters to encode configuration in the namespace 2023-02-14 10:04:49 +01:00
8971127b66 Fix build on GCC 6 2023-02-14 10:04:49 +01:00
1b66a217bf Replace ARDUINOJSON_NAMESPACE with an inline namespace (#1820) 2023-02-14 10:04:48 +01:00
34dd46110b Remove safe bool idiom (#1820) 2023-02-13 11:12:41 +01:00
8f7211a50f Remove ARDUINOJSON_HAS_NULLPTR (#1820) 2023-02-10 17:02:52 +01:00
2be4ee732a Remove ARDUINOJSON_HAS_RVALUE_REFERENCES (#1820) 2023-02-10 17:02:52 +01:00
3bdedc9a2f Remove ARDUINOJSON_HAS_LONG_LONG (#1820) 2023-02-10 17:02:52 +01:00
f699954f4d Remove support for __int64 (#1820) 2023-02-10 17:02:52 +01:00
407fc2cd45 Drop support for C++98/C++03 (closes #1820) 2023-02-10 17:02:52 +01:00
91fe6dcae8 Fix clang-tidy warning "Called C++ object pointer is null" 2023-02-10 17:02:51 +01:00
62dea9d364 Reformat CMake files 2023-02-10 17:02:51 +01:00
e0bdc4bff1 Remove unused variables (fixes #1858) 2023-02-10 17:02:51 +01:00
007b4f3362 Update Catch library to 2.13.10 (#1820) 2023-02-10 17:02:51 +01:00
94b2b3f9ce Run all tests with C++11 enabled (#1820) 2023-02-10 17:02:51 +01:00
c2de812cbd Set minimum Clang version to 3.8 (#1820) 2023-02-10 17:02:51 +01:00
669ee4dfe3 Set minimum GCC version to 6 (#1820) 2023-02-10 17:02:33 +01:00
e054cba610 Set minimum Visual Studio version to 2017 (#1820) 2023-02-10 14:49:24 +01:00
3d8287265c Remove unused NOEXCEPT macro 2023-02-09 19:06:36 +01:00
de7afc2015 Minor improvements in the release workflow 2023-02-08 16:51:47 +01:00
ae0499fd57 Update idf_component.yml 2023-02-08 16:46:15 +01:00
b33966c755 Set version to 6.20.1 2023-02-08 16:42:04 +01:00
d2cd13bf2e CI: automatically publish Particle library 2023-02-08 16:40:06 +01:00
06b2263329 README: reduce the size of the logo 2023-02-08 16:40:06 +01:00
d4bb839ce9 CI: remove the draft flag on the GitHub Release 2023-02-08 16:40:04 +01:00
6013a1a56f Fix the name of the license file 2023-02-08 16:40:01 +01:00
34b38e07c7 Deduce template argument of pgm_read() 2023-01-26 18:10:41 +01:00
1ec16ca94f Use pgm_read() instead of ARDUINOJSON_READ_STATIC_ARRAY 2023-01-26 14:55:46 +01:00
b350a96643 Remove explicit exclusion of as<char*>() and as<char>() (#1860)
If you try to call them, you'll now get the same error message as any unsupported type.
You could also add a custom converter for `char*` and `char`.
2023-01-18 22:10:37 +01:00
bf93779b4f Update catch.hpp (fixes #1856)
See also catchorg/Catch2#2627
2023-01-17 13:53:47 +01:00
dd0f7019ef CI: Update runner to get GCC 11.3 (resolves #1859) 2023-01-17 13:53:47 +01:00
175e5b3062 Add missing semicolon (fixes #1857) 2023-01-17 08:59:45 +01:00
7885155634 Add to IDF Component Registry (closes #1844) 2023-01-14 09:26:12 +01:00
1909ffe0f9 Remove link to Discord server 2023-01-13 08:52:33 +01:00
3345255f16 Fix comma tests. 2023-01-13 08:21:54 +01:00
c49adfd6da Test custom converter for std::array (issue #1840) 2022-12-31 10:48:20 +01:00
393 changed files with 19158 additions and 12498 deletions

View File

@ -1,7 +1,7 @@
# http://clang.llvm.org/docs/ClangFormatStyleOptions.html
BasedOnStyle: Google
Standard: Cpp03
Standard: c++11
AllowShortFunctionsOnASingleLine: Empty
IncludeBlocks: Preserve
IndentPPDirectives: AfterHash

View File

@ -0,0 +1,18 @@
{
"name": "Clang 10",
"image": "conanio/clang10",
"runArgs": [
"--name=ArduinoJson-clang10"
],
"customizations": {
"vscode": {
"extensions": [
"ms-vscode.cmake-tools"
],
"settings": {
"cmake.generator": "Unix Makefiles",
"cmake.buildDirectory": "/tmp/build"
}
}
}
}

View File

@ -0,0 +1,18 @@
{
"name": "Clang 5",
"image": "conanio/clang50",
"runArgs": [
"--name=ArduinoJson-clang5"
],
"customizations": {
"vscode": {
"extensions": [
"ms-vscode.cmake-tools"
],
"settings": {
"cmake.generator": "Unix Makefiles",
"cmake.buildDirectory": "/tmp/build"
}
}
}
}

View File

@ -0,0 +1,18 @@
{
"name": "Clang 6",
"image": "conanio/clang60",
"runArgs": [
"--name=ArduinoJson-clang6"
],
"customizations": {
"vscode": {
"extensions": [
"ms-vscode.cmake-tools"
],
"settings": {
"cmake.generator": "Unix Makefiles",
"cmake.buildDirectory": "/tmp/build"
}
}
}
}

View File

@ -0,0 +1,18 @@
{
"name": "Clang 7",
"image": "conanio/clang7",
"runArgs": [
"--name=ArduinoJson-clang7"
],
"customizations": {
"vscode": {
"extensions": [
"ms-vscode.cmake-tools"
],
"settings": {
"cmake.generator": "Unix Makefiles",
"cmake.buildDirectory": "/tmp/build"
}
}
}
}

View File

@ -0,0 +1,18 @@
{
"name": "Clang 8",
"image": "conanio/clang8",
"runArgs": [
"--name=ArduinoJson-clang8"
],
"customizations": {
"vscode": {
"extensions": [
"ms-vscode.cmake-tools"
],
"settings": {
"cmake.generator": "Unix Makefiles",
"cmake.buildDirectory": "/tmp/build"
}
}
}
}

View File

@ -0,0 +1,18 @@
{
"name": "Clang 9",
"image": "conanio/clang9",
"runArgs": [
"--name=ArduinoJson-clang9"
],
"customizations": {
"vscode": {
"extensions": [
"ms-vscode.cmake-tools"
],
"settings": {
"cmake.generator": "Unix Makefiles",
"cmake.buildDirectory": "/tmp/build"
}
}
}
}

View File

@ -0,0 +1,18 @@
{
"name": "GCC 10",
"image": "conanio/gcc10",
"runArgs": [
"--name=ArduinoJson-gcc10"
],
"customizations": {
"vscode": {
"extensions": [
"ms-vscode.cmake-tools"
],
"settings": {
"cmake.generator": "Unix Makefiles",
"cmake.buildDirectory": "/tmp/build"
}
}
}
}

View File

@ -0,0 +1,18 @@
{
"name": "GCC 11",
"image": "conanio/gcc11",
"runArgs": [
"--name=ArduinoJson-gcc11"
],
"customizations": {
"vscode": {
"extensions": [
"ms-vscode.cmake-tools"
],
"settings": {
"cmake.generator": "Unix Makefiles",
"cmake.buildDirectory": "/tmp/build"
}
}
}
}

View File

@ -0,0 +1,18 @@
{
"name": "GCC 5",
"image": "conanio/gcc5",
"runArgs": [
"--name=ArduinoJson-gcc5"
],
"customizations": {
"vscode": {
"extensions": [
"ms-vscode.cmake-tools"
],
"settings": {
"cmake.generator": "Unix Makefiles",
"cmake.buildDirectory": "/tmp/build"
}
}
}
}

View File

@ -0,0 +1,18 @@
{
"name": "GCC 6",
"image": "conanio/gcc6",
"runArgs": [
"--name=ArduinoJson-gcc6"
],
"customizations": {
"vscode": {
"extensions": [
"ms-vscode.cmake-tools"
],
"settings": {
"cmake.generator": "Unix Makefiles",
"cmake.buildDirectory": "/tmp/build"
}
}
}
}

View File

@ -0,0 +1,18 @@
{
"name": "GCC 7",
"image": "conanio/gcc7",
"runArgs": [
"--name=ArduinoJson-gcc7"
],
"customizations": {
"vscode": {
"extensions": [
"ms-vscode.cmake-tools"
],
"settings": {
"cmake.generator": "Unix Makefiles",
"cmake.buildDirectory": "/tmp/build"
}
}
}
}

View File

@ -0,0 +1,18 @@
{
"name": "GCC 8",
"image": "conanio/gcc8",
"runArgs": [
"--name=ArduinoJson-gcc8"
],
"customizations": {
"vscode": {
"extensions": [
"ms-vscode.cmake-tools"
],
"settings": {
"cmake.generator": "Unix Makefiles",
"cmake.buildDirectory": "/tmp/build"
}
}
}
}

View File

@ -0,0 +1,18 @@
{
"name": "GCC 9",
"image": "conanio/gcc9",
"runArgs": [
"--name=ArduinoJson-gcc9"
],
"customizations": {
"vscode": {
"extensions": [
"ms-vscode.cmake-tools"
],
"settings": {
"cmake.generator": "Unix Makefiles",
"cmake.buildDirectory": "/tmp/build"
}
}
}
}

3
.gitattributes vendored
View File

@ -1 +1,2 @@
*.sh text eol=lf
* text=auto
*.sh text eol=lf

View File

@ -5,7 +5,7 @@ on: [push, pull_request]
jobs:
lint:
name: Lint
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
steps:
- name: Install
run: sudo apt-get install -y clang-format
@ -28,16 +28,11 @@ jobs:
gcc:
name: GCC
needs: lint
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
include:
- gcc: "4.4"
- gcc: "4.6"
- gcc: "4.7"
- gcc: "4.8"
- gcc: "4.9"
- gcc: "5"
- gcc: "6"
- gcc: "7"
@ -52,9 +47,9 @@ jobs:
steps:
- name: Install
run: |
sudo add-apt-repository -yn 'deb http://archive.ubuntu.com/ubuntu/ trusty main universe'
sudo add-apt-repository -yn 'deb http://archive.ubuntu.com/ubuntu/ xenial main universe'
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5 3B4FE6ACC0B21F32
sudo add-apt-repository -yn 'deb http://archive.ubuntu.com/ubuntu/ bionic main universe'
sudo add-apt-repository -yn 'deb http://archive.ubuntu.com/ubuntu/ focal main universe'
sudo apt-get update
sudo apt-get install -y gcc-${{ matrix.gcc }} g++-${{ matrix.gcc }}
- name: Checkout
@ -84,12 +79,6 @@ jobs:
fail-fast: false
matrix:
include:
- clang: "3.5"
cxxflags: "-stdlib=libc++"
- clang: "3.6"
cxxflags: "-stdlib=libc++"
- clang: "3.7"
cxxflags: "-stdlib=libc++"
- clang: "3.8"
cxxflags: "-stdlib=libc++"
- clang: "3.9"
@ -108,8 +97,6 @@ jobs:
steps:
- name: Install
run: |
sudo add-apt-repository -yn 'deb http://archive.ubuntu.com/ubuntu/ trusty main'
sudo add-apt-repository -yn 'deb http://archive.ubuntu.com/ubuntu/ trusty universe'
sudo add-apt-repository -yn 'deb http://archive.ubuntu.com/ubuntu/ xenial main'
sudo add-apt-repository -yn 'deb http://archive.ubuntu.com/ubuntu/ xenial universe'
sudo add-apt-repository -yn 'deb http://archive.ubuntu.com/ubuntu/ bionic main'
@ -145,9 +132,11 @@ jobs:
- name: Install
run: |
sudo apt-get update
sudo apt-get install -y g++-multilib
sudo apt-get install -y g++-multilib gcc-avr avr-libc
- name: Checkout
uses: actions/checkout@v3
- name: AVR
run: avr-g++ -std=c++11 -Isrc extras/conf_test/avr.cpp
- name: GCC 32-bit
run: g++ -std=c++11 -m32 -Isrc extras/conf_test/x86.cpp
- name: GCC 64-bit

View File

@ -16,7 +16,7 @@ jobs:
echo "tag=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
echo "version=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Write release body
id: body
run: |
@ -45,7 +45,51 @@ jobs:
uses: ncipollo/release-action@v1
with:
bodyFile: ${{ steps.body.outputs.filename }}
draft: true
name: ArduinoJson ${{ steps.init.outputs.version }}
artifacts: ${{ steps.amalgamate_h.outputs.filename }},${{ steps.amalgamate_hpp.outputs.filename }},${{ steps.arduino.outputs.filename }}
token: ${{ secrets.GITHUB_TOKEN }}
idf:
name: IDF Component Registry
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Upload component to the component registry
uses: espressif/upload-components-ci-action@v1
with:
name: ArduinoJson
namespace: bblanchon
api_token: ${{ secrets.IDF_COMPONENT_API_TOKEN }}
particle:
name: Particle
runs-on: ubuntu-latest
steps:
- name: Install
run: npm install -g particle-cli
- name: Checkout
uses: actions/checkout@v3
- name: Login
run: particle login --token ${{ secrets.PARTICLE_TOKEN }}
timeout-minutes: 1
- name: Publish
run: bash -eux extras/scripts/publish-particle-library.sh
timeout-minutes: 5
platformio:
name: PlatformIO
runs-on: ubuntu-latest
steps:
- name: Set up Python 3.x
uses: actions/setup-python@v4
with:
python-version: "3.x"
- name: Install PlatformIO
run: pip install platformio
- name: Checkout
uses: actions/checkout@v3
- name: Publish
run: pio pkg publish --no-interactive --no-notify
env:
PLATFORMIO_AUTH_TOKEN: ${{ secrets.PLATFORMIO_AUTH_TOKEN }}

3
.gitignore vendored
View File

@ -15,3 +15,6 @@
# Used by CI for Particle
/src/*.ino
/project.properties
# Used by IDF
/dist/

View File

@ -1,3 +1,4 @@
.devcontainer/
.github/
examples/
extras/
extras/

View File

@ -1,6 +1,5 @@
{
"C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools",
"cmake.generator": "Ninja",
"git.inputValidationLength": 80,
"git.inputValidationSubjectLength": 72,
"files.insertFinalNewline": true,
@ -10,5 +9,9 @@
},
"C_Cpp.default.includePath": [
"/src"
]
],
"[cmake]": {
"editor.detectIndentation": false,
"editor.insertSpaces": false,
}
}

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#include "src/ArduinoJson.h"

View File

@ -1,6 +1,62 @@
ArduinoJson: change log
=======================
HEAD
----
* Improve error messages when using `char` or `char*` (issue #2043)
* Make string support even more generic (PR #2084 by @d-a-v)
v6.21.5 (2024-01-10)
-------
* Fix warning `function returns incomplete class type` on IAR (issue #2001)
* Fix `volatile bool` serialized as `1` or `0` instead of `true` or `false` (issue #2029)
* Remove unused files in the PlatformIO package
v6.21.4 (2023-12-07)
-------
* Fix error `'std::string' has not been declared` (issue #1967)
* Fix error `'std::string_view' has not been declared` (issue #1967)
* Fix error `no instance of overloaded function...` on recent IAR compilers (issue #2001)
v6.21.3 (2023-07-23)
-------
* Fix compatibility with the Blynk libary (issue #1914)
* Fix double lookup in `to<JsonVariant>()`
* Fix double call to `size()` in `serializeMsgPack()`
* Include `ARDUINOJSON_SLOT_OFFSET_SIZE` in the namespace name
* Show a link to the documentation when user passes an unsupported input type
v6.21.2 (2023-04-12)
-------
* Fix compatibility with the Zephyr Project (issue #1905)
* Allow using PROGMEM outside of Arduino (issue #1903)
* Set default for `ARDUINOJSON_ENABLE_PROGMEM` to `1` on AVR
v6.21.1 (2023-03-27)
-------
* Double speed of `DynamicJsonDocument::garbageCollect()`
* Fix compatibility with GCC 5.2 (issue #1897)
v6.21.0 (2023-03-14)
-------
* Drop support for C++98/C++03. Minimum required is C++11.
* Remove `ARDUINOJSON_NAMESPACE`; use `ArduinoJson` instead.
* Make string support generic (issue #1807)
v6.20.1 (2023-02-08)
-------
* Remove explicit exclusion of `as<char*>()` and `as<char>()` (issue #1860)
If you try to call them, you'll now get the same error message as any unsupported type.
You could also add a custom converter for `char*` and `char`.
v6.20.0 (2022-12-26)
-------

View File

@ -1,19 +1,19 @@
# ArduinoJson - https://arduinojson.org
# Copyright © 2014-2022, Benoit BLANCHON
# Copyright © 2014-2023, Benoit BLANCHON
# MIT License
cmake_minimum_required(VERSION 3.15)
if(ESP_PLATFORM)
# Build ArduinoJson as an ESP-IDF component
idf_component_register(INCLUDE_DIRS src)
return()
# Build ArduinoJson as an ESP-IDF component
idf_component_register(INCLUDE_DIRS src)
return()
endif()
project(ArduinoJson VERSION 6.20.0)
project(ArduinoJson VERSION 6.21.5)
if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
include(CTest)
include(CTest)
endif()
add_subdirectory(src)

View File

@ -1,10 +1,10 @@
The MIT License (MIT)
---------------------
Copyright © 2014-2022, Benoit BLANCHON
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
The MIT License (MIT)
---------------------
Copyright © 2014-2023, Benoit BLANCHON
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@ -1,17 +1,18 @@
<p align="center">
<a href="https://arduinojson.org/"><img alt="ArduinoJson" src="logo.svg" /></a>
<a href="https://arduinojson.org/"><img alt="ArduinoJson" src="https://arduinojson.org/images/logo.svg" width="200" /></a>
</p>
---
[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/bblanchon/ArduinoJson/ci.yml?branch=6.x)](https://github.com/bblanchon/ArduinoJson/actions?query=workflow%3A%22Continuous+Integration%22+branch%3A6.x)
[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/bblanchon/ArduinoJson/ci.yml?branch=6.x&logo=github)](https://github.com/bblanchon/ArduinoJson/actions?query=workflow%3A%22Continuous+Integration%22+branch%3A6.x)
[![Continuous Integration](https://ci.appveyor.com/api/projects/status/m7s53wav1l0abssg/branch/6.x?svg=true)](https://ci.appveyor.com/project/bblanchon/arduinojson/branch/6.x)
[![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/arduinojson.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:arduinojson)
[![Coveralls branch](https://img.shields.io/coveralls/github/bblanchon/ArduinoJson/6.x?logo=coveralls)](https://coveralls.io/github/bblanchon/ArduinoJson?branch=6.x)
[![Arduino Library Manager](https://img.shields.io/static/v1?label=Arduino&message=v6.20.0&logo=arduino&logoColor=white&color=blue)](https://www.ardu-badge.com/ArduinoJson/6.20.0)
[![PlatformIO Registry](https://badges.registry.platformio.org/packages/bblanchon/library/ArduinoJson.svg?version=6.20.0)](https://registry.platformio.org/packages/libraries/bblanchon/ArduinoJson?version=6.20.0)
[![GitHub stars](https://img.shields.io/github/stars/bblanchon/ArduinoJson?style=flat&logo=github)](https://github.com/bblanchon/ArduinoJson/stargazers)
[![GitHub Sponsors](https://img.shields.io/github/sponsors/bblanchon?logo=github)](https://github.com/sponsors/bblanchon)
[![Arduino Library Manager](https://img.shields.io/static/v1?label=Arduino&message=v6.21.5&logo=arduino&logoColor=white&color=blue)](https://www.ardu-badge.com/ArduinoJson/6.21.5)
[![PlatformIO Registry](https://badges.registry.platformio.org/packages/bblanchon/library/ArduinoJson.svg?version=6.21.5)](https://registry.platformio.org/packages/libraries/bblanchon/ArduinoJson?version=6.21.5)
[![ESP IDF](https://img.shields.io/static/v1?label=ESP+IDF&message=v6.21.5&logo=cpu&logoColor=white&color=blue)](https://components.espressif.com/components/bblanchon/arduinojson)
[![GitHub stars](https://img.shields.io/github/stars/bblanchon/ArduinoJson?style=flat&logo=github&color=orange)](https://github.com/bblanchon/ArduinoJson/stargazers)
[![GitHub Sponsors](https://img.shields.io/github/sponsors/bblanchon?logo=github&color=orange)](https://github.com/sponsors/bblanchon)
ArduinoJson is a C++ JSON library for Arduino and IoT (Internet Of Things).
@ -45,7 +46,8 @@ ArduinoJson is a C++ JSON library for Arduino and IoT (Internet Of Things).
* Supports [custom converters](https://arduinojson.org/news/2021/05/04/version-6-18-0/)
* Portable
* Usable on any C++ project (not limited to Arduino)
* Compatible with C++98, C++11, C++14 and C++17
* Compatible with C++11, C++14 and C++17
* Support for C++98/C++03 available on [ArduinoJson 6.20.x](https://github.com/bblanchon/ArduinoJson/tree/6.20.x)
* Zero warnings with `-Wall -Wextra -pedantic` and `/W4`
* [Header-only library](https://en.wikipedia.org/wiki/Header-only)
* Works with virtually any board
@ -82,9 +84,9 @@ ArduinoJson is a C++ JSON library for Arduino and IoT (Internet Of Things).
* Well tested
* [Unit test coverage close to 100%](https://coveralls.io/github/bblanchon/ArduinoJson?branch=6.x)
* Continuously tested on
* [Visual Studio 2010, 2012, 2013, 2015, 2017, 2019, 2022](https://ci.appveyor.com/project/bblanchon/arduinojson/branch/6.x)
* [GCC 4.4, 4.6, 4.7, 4.8, 4.9, 5, 6, 7, 8, 9, 10, 11](https://github.com/bblanchon/ArduinoJson/actions?query=workflow%3A%22Continuous+Integration%22)
* [Clang 3.5, 3.6, 3.7, 3.8, 3.9, 4.0, 5.0, 6.0, 7, 8, 9, 10](https://github.com/bblanchon/ArduinoJson/actions?query=workflow%3A%22Continuous+Integration%22)
* [Visual Studio 2017, 2019, 2022](https://ci.appveyor.com/project/bblanchon/arduinojson/branch/6.x)
* [GCC 5, 6, 7, 8, 9, 10, 11](https://github.com/bblanchon/ArduinoJson/actions?query=workflow%3A%22Continuous+Integration%22)
* [Clang 3.8, 3.9, 4.0, 5.0, 6.0, 7, 8, 9, 10](https://github.com/bblanchon/ArduinoJson/actions?query=workflow%3A%22Continuous+Integration%22)
* [Continuously fuzzed with Google OSS Fuzz](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:arduinojson)
* Passes all default checks of [clang-tidy](https://releases.llvm.org/10.0.0/tools/clang/tools/extra/docs/clang-tidy/)
* Well documented
@ -99,7 +101,6 @@ ArduinoJson is a C++ JSON library for Arduino and IoT (Internet Of Things).
* Most popular of all Arduino libraries on [GitHub](https://github.com/search?o=desc&q=arduino+library&s=stars&type=Repositories)
* [Used in hundreds of projects](https://www.hackster.io/search?i=projects&q=arduinojson)
* [Responsive support](https://github.com/bblanchon/ArduinoJson/issues?q=is%3Aissue+is%3Aclosed)
* [Discord server](https://discord.gg/DzN6hHHD4h)
## Quickstart

View File

@ -1,4 +1,4 @@
version: 6.20.0.{build}
version: 6.21.5.{build}
environment:
matrix:
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022
@ -7,15 +7,6 @@ environment:
CMAKE_GENERATOR: Visual Studio 16 2019
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
CMAKE_GENERATOR: Visual Studio 15 2017
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
CMAKE_GENERATOR: Visual Studio 14 2015
- CMAKE_GENERATOR: Visual Studio 12 2013
- CMAKE_GENERATOR: Visual Studio 11 2012
- CMAKE_GENERATOR: Visual Studio 10 2010
- CMAKE_GENERATOR: Ninja
MINGW: MinGW # MinGW 32-bit 5.3.0
- CMAKE_GENERATOR: Ninja
MINGW32: i686-5.3.0-posix-dwarf-rt_v4-rev0 # MinGW-w64 5.3.0
- CMAKE_GENERATOR: Ninja
MINGW32: i686-6.3.0-posix-dwarf-rt_v5-rev1 # MinGW-w64 6.3.0 i686
- CMAKE_GENERATOR: Ninja

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
//
// This example shows how to store your project configuration in a file.

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
//
// This example shows how to use DeserializationOption::Filter
@ -14,7 +14,7 @@ void setup() {
while (!Serial) continue;
// The huge input: an extract from OpenWeatherMap response
const __FlashStringHelper* input_json = F(
auto input_json = F(
"{\"cod\":\"200\",\"message\":0,\"list\":[{\"dt\":1581498000,\"main\":{"
"\"temp\":3.23,\"feels_like\":-3.63,\"temp_min\":3.23,\"temp_max\":4.62,"
"\"pressure\":1014,\"sea_level\":1014,\"grnd_level\":1010,\"humidity\":"

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
//
// This example shows how to generate a JSON document with ArduinoJson.

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
//
// This example shows how to parse a JSON document in an HTTP response.

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
//
// This example shows how to deserialize a JSON document with ArduinoJson.

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
//
// This example shows how to implement an HTTP server that sends a JSON document

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
//
// This example shows how to send a JSON document to a UDP socket.

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
//
// This example shows how to deserialize a MessagePack document with

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
//
// This example shows the different ways you can use Flash strings with

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
//
// This example shows the different ways you can use String with ArduinoJson.

View File

@ -27,11 +27,10 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)")
if(${COVERAGE})
set(CMAKE_CXX_FLAGS "-fprofile-arcs -ftest-coverage")
endif()
endif()
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
if((CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.8) AND (NOT ${COVERAGE}))
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
if((CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.8) AND(NOT ${COVERAGE}))
add_compile_options(-g -Og)
else()
add_compile_options(-g -O0)
@ -65,7 +64,7 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
endif()
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
if((CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.0) AND (NOT ${COVERAGE}))
if((CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.0) AND(NOT ${COVERAGE}))
add_compile_options(-g -Og)
else()
add_compile_options(-g -O0)
@ -73,7 +72,7 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
endif()
if(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
if((CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 9.0) AND (NOT ${COVERAGE}))
if((CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 9.0) AND(NOT ${COVERAGE}))
add_compile_options(-g -Og)
else()
add_compile_options(-g -O0)
@ -85,17 +84,12 @@ if(MSVC)
add_compile_options(
/W4 # Set warning level
/WX # Treats all compiler warnings as errors.
/Zc:__cplusplus # Enable updated __cplusplus macro
)
if (NOT MSVC_VERSION LESS 1910) # >= Visual Studio 2017
add_compile_options(
/Zc:__cplusplus # Enable updated __cplusplus macro
)
endif()
endif()
if(MINGW)
# Static link on MinGW to avoid linking with the wrong DLLs when multiple
# Static link on MinGW to avoid linking with the wrong DLLs when multiple
# versions are installed.
add_link_options(-static)
endif()

View File

@ -1,5 +1,5 @@
# ArduinoJson - https://arduinojson.org
# Copyright © 2014-2022, Benoit BLANCHON
# Copyright © 2014-2023, Benoit BLANCHON
# MIT License
cmake_minimum_required(VERSION 3.5)

View File

@ -1,6 +1,8 @@
# ArduinoJson - https://arduinojson.org
# Copyright © 2014-2022, Benoit BLANCHON
# Copyright © 2014-2023, Benoit BLANCHON
# MIT License
idf_component_register(SRCS "main.cpp"
INCLUDE_DIRS "")
idf_component_register(
SRCS "main.cpp"
INCLUDE_DIRS ""
)

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>

View File

@ -1,5 +1,7 @@
#include <ArduinoJson.h>
static_assert(ARDUINOJSON_ENABLE_PROGMEM == 1, "ARDUINOJSON_ENABLE_PROGMEM");
static_assert(ARDUINOJSON_USE_LONG_LONG == 0, "ARDUINOJSON_USE_LONG_LONG");
static_assert(ARDUINOJSON_SLOT_OFFSET_SIZE == 1,
@ -9,7 +11,7 @@ static_assert(ARDUINOJSON_LITTLE_ENDIAN == 1, "ARDUINOJSON_LITTLE_ENDIAN");
static_assert(ARDUINOJSON_USE_DOUBLE == 1, "ARDUINOJSON_USE_DOUBLE");
static_assert(sizeof(ARDUINOJSON_NAMESPACE::VariantSlot) == 8,
static_assert(sizeof(ArduinoJson::detail::VariantSlot) == 8,
"sizeof(VariantSlot)");
void setup() {}

View File

@ -9,7 +9,7 @@ static_assert(ARDUINOJSON_LITTLE_ENDIAN == 1, "ARDUINOJSON_LITTLE_ENDIAN");
static_assert(ARDUINOJSON_USE_DOUBLE == 1, "ARDUINOJSON_USE_DOUBLE");
static_assert(sizeof(ARDUINOJSON_NAMESPACE::VariantSlot) == 16,
static_assert(sizeof(ArduinoJson::detail::VariantSlot) == 16,
"sizeof(VariantSlot)");
void setup() {}

View File

@ -9,7 +9,7 @@ static_assert(ARDUINOJSON_LITTLE_ENDIAN == 1, "ARDUINOJSON_LITTLE_ENDIAN");
static_assert(ARDUINOJSON_USE_DOUBLE == 1, "ARDUINOJSON_USE_DOUBLE");
static_assert(sizeof(ARDUINOJSON_NAMESPACE::VariantSlot) == 32,
static_assert(sizeof(ArduinoJson::detail::VariantSlot) == 32,
"sizeof(VariantSlot)");
int main() {}

View File

@ -9,7 +9,7 @@ static_assert(ARDUINOJSON_LITTLE_ENDIAN == 1, "ARDUINOJSON_LITTLE_ENDIAN");
static_assert(ARDUINOJSON_USE_DOUBLE == 1, "ARDUINOJSON_USE_DOUBLE");
static_assert(sizeof(ARDUINOJSON_NAMESPACE::VariantSlot) == 16,
static_assert(sizeof(ArduinoJson::detail::VariantSlot) == 16,
"sizeof(VariantSlot)");
int main() {}

View File

@ -1,7 +1,10 @@
# ArduinoJson - https://arduinojson.org
# Copyright © 2014-2022, Benoit BLANCHON
# Copyright © 2014-2023, Benoit BLANCHON
# MIT License
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
if(MSVC)
add_compile_options(-D_CRT_SECURE_NO_WARNINGS)
endif()
@ -22,7 +25,7 @@ target_link_libraries(json_reproducer
ArduinoJson
)
macro(add_fuzzer name)
macro(add_fuzzer name)
set(FUZZER "${name}_fuzzer")
set(CORPUS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/${name}_corpus")
set(SEED_CORPUS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/${name}_seed_corpus")
@ -33,27 +36,23 @@ macro(add_fuzzer name)
ArduinoJson
)
set_target_properties("${FUZZER}"
PROPERTIES
COMPILE_FLAGS
"-fprofile-instr-generate -fcoverage-mapping -fsanitize=fuzzer -fno-sanitize-recover=all"
LINK_FLAGS
"-fprofile-instr-generate -fcoverage-mapping -fsanitize=fuzzer -fno-sanitize-recover=all"
PROPERTIES
COMPILE_FLAGS "-fprofile-instr-generate -fcoverage-mapping -fsanitize=fuzzer -fno-sanitize-recover=all"
LINK_FLAGS "-fprofile-instr-generate -fcoverage-mapping -fsanitize=fuzzer -fno-sanitize-recover=all"
)
add_test(
NAME
"${FUZZER}"
COMMAND
"${FUZZER}" "${CORPUS_DIR}" "${SEED_CORPUS_DIR}" -max_total_time=5 -timeout=1
NAME "${FUZZER}"
COMMAND "${FUZZER}" "${CORPUS_DIR}" "${SEED_CORPUS_DIR}" -max_total_time=5 -timeout=1
)
set_tests_properties("${FUZZER}"
PROPERTIES
LABELS "Fuzzing"
LABELS "Fuzzing"
)
endmacro()
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 6)
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 6)
add_fuzzer(json)
add_fuzzer(msgpack)
endif()

View File

@ -1,6 +1,6 @@
# CAUTION: this file is invoked by https://github.com/google/oss-fuzz
CXXFLAGS += -I../../src -DARDUINOJSON_DEBUG=1
CXXFLAGS += -I../../src -DARDUINOJSON_DEBUG=1 -std=c++11
all: \
$(OUT)/json_fuzzer \

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
// This file is NOT use by Google's OSS fuzz

View File

@ -18,6 +18,6 @@ rm -f "$OUTPUT"
src \
keywords.txt \
library.properties \
LICENSE.md \
LICENSE.txt \
README.md \
ArduinoJson.h

View File

@ -53,7 +53,8 @@ process()
}
simplify_namespaces() {
perl -p0i -e 's|\} // namespace ARDUINOJSON_NAMESPACE\r?\nnamespace ARDUINOJSON_NAMESPACE \{\r?\n||igs' "$1"
perl -p0i -e 's|ARDUINOJSON_END_PUBLIC_NAMESPACE\r?\nARDUINOJSON_BEGIN_PUBLIC_NAMESPACE\r?\n||igs' "$1"
perl -p0i -e 's|ARDUINOJSON_END_PRIVATE_NAMESPACE\r?\nARDUINOJSON_BEGIN_PRIVATE_NAMESPACE\r?\n||igs' "$1"
rm -f "$1.bak"
}

View File

@ -4,14 +4,14 @@ set -eu
VERSION="$1"
CHANGELOG="$2"
FRONTMATTER="$3"
ARDUINOJSON_H="$3"
cat << END
---
branch: v6
version: $VERSION
date: '$(date +'%Y-%m-%d')'
$(cat "$FRONTMATTER")
$(extras/scripts/wandbox/publish.sh "$ARDUINOJSON_H")
---
$(awk '/\* /{ FOUND=1; print; next } { if (FOUND) exit}' "$CHANGELOG")

View File

@ -9,10 +9,10 @@ trap 'rm -rf "$WORK_DIR"' EXIT
cp "$SOURCE_DIR/README.md" "$WORK_DIR/README.md"
cp "$SOURCE_DIR/CHANGELOG.md" "$WORK_DIR/CHANGELOG.md"
cp "$SOURCE_DIR/library.properties" "$WORK_DIR/library.properties"
cp "$SOURCE_DIR/LICENSE.md" "$WORK_DIR/LICENSE.txt"
cp "$SOURCE_DIR/LICENSE.txt" "$WORK_DIR/LICENSE.txt"
cp -r "$SOURCE_DIR/src" "$WORK_DIR/"
cp -r "$SOURCE_DIR/examples" "$WORK_DIR/"
cd "$WORK_DIR"
particle library upload
particle library publish
particle library upload -v
particle library publish -v

View File

@ -38,17 +38,21 @@ update_version_in_source () {
sed -i~ -bE "s/version: .*$/version: $VERSION.{build}/" appveyor.yml
rm appveyor.yml~
sed -i~ -bE "s/^version: .*$/version: \"$VERSION\"/" idf_component.yml
rm idf_component.yml~
sed -i~ -bE \
-e "s/ARDUINOJSON_VERSION .*$/ARDUINOJSON_VERSION \"$VERSION\"/" \
-e "s/ARDUINOJSON_VERSION_MAJOR .*$/ARDUINOJSON_VERSION_MAJOR $MAJOR/" \
-e "s/ARDUINOJSON_VERSION_MINOR .*$/ARDUINOJSON_VERSION_MINOR $MINOR/" \
-e "s/ARDUINOJSON_VERSION_REVISION .*$/ARDUINOJSON_VERSION_REVISION $REVISION/" \
-e "s/ARDUINOJSON_VERSION_MACRO .*$/ARDUINOJSON_VERSION_MACRO V$MAJOR$MINOR$REVISION/" \
src/ArduinoJson/version.hpp
rm src/ArduinoJson/version.hpp*~
}
commit_new_version () {
git add src/ArduinoJson/version.hpp README.md CHANGELOG.md library.json library.properties appveyor.yml CMakeLists.txt
git add src/ArduinoJson/version.hpp README.md CHANGELOG.md library.json library.properties appveyor.yml CMakeLists.txt idf_component.yml
git commit -m "Set version to $VERSION"
}
@ -69,7 +73,6 @@ push
extras/scripts/build-arduino-package.sh . "../ArduinoJson-$TAG.zip"
extras/scripts/build-single-header.sh "src/ArduinoJson.h" "../ArduinoJson-$TAG.h"
extras/scripts/build-single-header.sh "src/ArduinoJson.hpp" "../ArduinoJson-$TAG.hpp"
extras/scripts/wandbox/publish.sh "../ArduinoJson-$TAG.h" > "../ArduinoJson-$TAG-wandbox.txt" || echo "Wandbox failed!"
extras/scripts/get-release-page.sh "$VERSION" "CHANGELOG.md" "../ArduinoJson-$TAG-wandbox.txt" > "../ArduinoJson-$TAG.md"
extras/scripts/get-release-page.sh "$VERSION" "CHANGELOG.md" "../ArduinoJson-$TAG.h" > "../ArduinoJson-$TAG.md"
echo "You can now copy ../ArduinoJson-$TAG.md into arduinojson.org/collections/_versions/$VERSION.md"

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
//
// This example shows how to generate a JSON document with ArduinoJson.
@ -20,11 +20,6 @@ int main() {
//
// DynamicJsonDocument doc(200);
// StaticJsonObject allocates memory on the stack, it can be
// replaced by DynamicJsonDocument which allocates in the heap.
//
// DynamicJsonDocument doc(200);
// Add values in the document
//
doc["sensor"] = "gps";

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
//
// This example shows how to deserialize a JSON document with ArduinoJson.

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
//
// This example shows how to generate a JSON document with ArduinoJson.

View File

@ -14,8 +14,8 @@ compile() {
{
"code":$(read_string "$FILE_PATH"),
"codes": [{"file":"ArduinoJson.h","code":$(read_string "$ARDUINOJSON_H")}],
"options": "warning",
"compiler": "gcc-4.9.4",
"options": "warning,c++11",
"compiler": "gcc-5.5.0",
"save": true
}
END

View File

@ -1,8 +1,8 @@
# ArduinoJson - https://arduinojson.org
# Copyright © 2014-2022, Benoit BLANCHON
# Copyright © 2014-2023, Benoit BLANCHON
# MIT License
set(CMAKE_CXX_STANDARD 98)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_subdirectory(catch)
@ -10,7 +10,6 @@ add_subdirectory(catch)
link_libraries(ArduinoJson catch)
include_directories(Helpers)
add_subdirectory(Cpp11)
add_subdirectory(Cpp17)
add_subdirectory(Cpp20)
add_subdirectory(FailingBuilds)

View File

@ -1,36 +0,0 @@
# ArduinoJson - https://arduinojson.org
# Copyright © 2014-2022, Benoit BLANCHON
# MIT License
if("cxx_nullptr" IN_LIST CMAKE_CXX_COMPILE_FEATURES)
list(APPEND SOURCES nullptr.cpp)
add_definitions(-DARDUINOJSON_HAS_NULLPTR=1)
endif()
if("cxx_auto_type" IN_LIST CMAKE_CXX_COMPILE_FEATURES AND "cxx_constexpr" IN_LIST CMAKE_CXX_COMPILE_FEATURES)
list(APPEND SOURCES issue1120.cpp)
endif()
if("cxx_long_long_type" IN_LIST CMAKE_CXX_COMPILE_FEATURES)
list(APPEND SOURCES use_long_long_0.cpp use_long_long_1.cpp)
endif()
if("cxx_range_for" IN_LIST CMAKE_CXX_COMPILE_FEATURES AND "cxx_generalized_initializers" IN_LIST CMAKE_CXX_COMPILE_FEATURES)
list(APPEND SOURCES stl_containers.cpp)
endif()
if(NOT SOURCES)
return()
endif()
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_executable(Cpp11Tests ${SOURCES})
add_test(Cpp11 Cpp11Tests)
set_tests_properties(Cpp11
PROPERTIES
LABELS "Catch"
)

View File

@ -1,72 +0,0 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>
#include <stdint.h>
#include <catch.hpp>
#include <string>
#include <vector>
namespace ARDUINOJSON_NAMESPACE {
template <typename T>
struct Converter<std::vector<T> > {
static void toJson(const std::vector<T>& src, JsonVariant dst) {
JsonArray array = dst.to<JsonArray>();
for (T item : src)
array.add(item);
}
static std::vector<T> fromJson(JsonVariantConst src) {
std::vector<T> dst;
for (T item : src.as<JsonArrayConst>())
dst.push_back(item);
return dst;
}
static bool checkJson(JsonVariantConst src) {
JsonArrayConst array = src;
bool result = array;
for (JsonVariantConst item : array) {
if (!result)
break;
result = item.is<T>();
}
return result;
}
};
} // namespace ARDUINOJSON_NAMESPACE
TEST_CASE("vector<int>") {
SECTION("toJson") {
std::vector<int> v = {1, 2};
StaticJsonDocument<128> doc;
doc.set(v);
REQUIRE(doc.as<std::string>() == "[1,2]");
}
SECTION("fromJson") {
StaticJsonDocument<128> doc;
doc.add(1);
doc.add(2);
auto v = doc.as<std::vector<int> >();
REQUIRE(v.size() == 2);
CHECK(v[0] == 1);
CHECK(v[1] == 2);
}
SECTION("checkJson") {
StaticJsonDocument<128> doc;
CHECK(doc.is<std::vector<int> >() == false);
doc.add(1);
doc.add(2);
CHECK(doc.is<std::vector<int> >() == true);
doc.add("foo");
CHECK(doc.is<std::vector<int> >() == false);
}
}

View File

@ -1,5 +1,5 @@
# ArduinoJson - https://arduinojson.org
# Copyright © 2014-2022, Benoit BLANCHON
# Copyright © 2014-2023, Benoit BLANCHON
# MIT License
if(MSVC_VERSION LESS 1910)
@ -25,5 +25,5 @@ add_test(Cpp17 Cpp17Tests)
set_tests_properties(Cpp17
PROPERTIES
LABELS "Catch"
LABELS "Catch"
)

View File

@ -1,7 +1,15 @@
#include <ArduinoJson.h>
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
// we expect ArduinoJson.h to include <string_view>
// but we don't want it to included accidentally
#undef ARDUINO
#define ARDUINOJSON_ENABLE_STD_STREAM 0
#define ARDUINOJSON_ENABLE_STD_STRING 0
#include <ArduinoJson.h>
#include <catch.hpp>
#include <string_view>
#if !ARDUINOJSON_ENABLE_STRING_VIEW
# error ARDUINOJSON_ENABLE_STRING_VIEW must be set to 1
@ -19,7 +27,7 @@ TEST_CASE("string_view") {
SECTION("JsonDocument::set()") {
doc.set(std::string_view("123", 2));
REQUIRE(doc.as<std::string>() == "12");
REQUIRE(doc.as<std::string_view>() == "12");
}
SECTION("JsonDocument::operator[]() const") {
@ -86,7 +94,7 @@ TEST_CASE("string_view") {
}
}
using ARDUINOJSON_NAMESPACE::adaptString;
using ArduinoJson::detail::adaptString;
TEST_CASE("StringViewAdapter") {
std::string_view str("bravoXXX", 5);

View File

@ -1,5 +1,5 @@
# ArduinoJson - https://arduinojson.org
# Copyright © 2014-2022, Benoit BLANCHON
# Copyright © 2014-2023, Benoit BLANCHON
# MIT License
if(MSVC_VERSION LESS 1910)
@ -25,5 +25,5 @@ add_test(Cpp20 Cpp20Tests)
set_tests_properties(Cpp20
PROPERTIES
LABELS "Catch"
LABELS "Catch"
)

View File

@ -1,29 +1,25 @@
# ArduinoJson - https://arduinojson.org
# Copyright © 2014-2022, Benoit BLANCHON
# Copyright © 2014-2023, Benoit BLANCHON
# MIT License
macro(build_should_fail target)
set_target_properties(${target}
PROPERTIES
EXCLUDE_FROM_ALL TRUE
EXCLUDE_FROM_DEFAULT_BUILD TRUE
EXCLUDE_FROM_ALL TRUE
EXCLUDE_FROM_DEFAULT_BUILD TRUE
)
add_test(
NAME
${target}
COMMAND
${CMAKE_COMMAND} --build . --target ${target} --config $<CONFIGURATION>
WORKING_DIRECTORY
${CMAKE_BINARY_DIR}
NAME ${target}
COMMAND ${CMAKE_COMMAND} --build . --target ${target} --config $<CONFIGURATION>
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
)
set_tests_properties(${target}
set_tests_properties(${target}
PROPERTIES
WILL_FAIL TRUE
LABELS "WillFail;Catch"
WILL_FAIL TRUE
LABELS "WillFail;Catch"
)
endmacro()
add_executable(Issue978 Issue978.cpp)
build_should_fail(Issue978)
@ -31,11 +27,9 @@ add_executable(Issue1189 Issue1189.cpp)
build_should_fail(Issue1189)
add_executable(read_long_long read_long_long.cpp)
set_property(TARGET read_long_long PROPERTY CXX_STANDARD 11)
build_should_fail(read_long_long)
add_executable(write_long_long write_long_long.cpp)
set_property(TARGET write_long_long PROPERTY CXX_STANDARD 11)
build_should_fail(write_long_long)
add_executable(delete_jsondocument delete_jsondocument.cpp)

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#define ARDUINOJSON_USE_LONG_LONG 0
@ -9,10 +9,6 @@
# error This test requires sizeof(long) < 8
#endif
#if !ARDUINOJSON_HAS_LONG_LONG
# error This test requires C++11
#endif
ARDUINOJSON_ASSERT_INTEGER_TYPE_IS_SUPPORTED(long long)
int main() {
DynamicJsonDocument doc(1024);

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#define ARDUINOJSON_USE_LONG_LONG 0
@ -9,10 +9,6 @@
# error This test requires sizeof(long) < 8
#endif
#if !ARDUINOJSON_HAS_LONG_LONG
# error This test requires C++11
#endif
int main() {
DynamicJsonDocument doc(1024);
doc["dummy"] = static_cast<long long>(42);

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#pragma once
@ -7,6 +7,7 @@
#include "api/Print.h"
#include "api/Stream.h"
#include "api/String.h"
#include "progmem_emulation.hpp"
#include "avr/pgmspace.h"
#define ARDUINO
#define ARDUINO_H_INCLUDED 1

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#pragma once
@ -7,20 +7,18 @@
#include <sstream>
class CustomReader {
std::stringstream _stream;
std::stringstream stream_;
public:
CustomReader(const char* input) : _stream(input) {}
CustomReader(const char* input) : stream_(input) {}
CustomReader(const CustomReader&) = delete;
int read() {
return _stream.get();
return stream_.get();
}
size_t readBytes(char* buffer, size_t length) {
_stream.read(buffer, static_cast<std::streamsize>(length));
return static_cast<size_t>(_stream.gcount());
stream_.read(buffer, static_cast<std::streamsize>(length));
return static_cast<size_t>(stream_.gcount());
}
private:
CustomReader(const CustomReader&);
};

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#pragma once

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#pragma once

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#pragma once

View File

@ -1,7 +1,9 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#pragma once
#include <stdint.h> // uint8_t
#define PROGMEM
@ -23,7 +25,7 @@ inline uint8_t pgm_read_byte(const void* p) {
return *reinterpret_cast<const uint8_t*>(convertFlashToPtr(p));
}
#define ARDUINOJSON_DEFINE_PROGMEM_ARRAY(type, name, value) \
static type const ARDUINOJSON_CONCAT2(name, _progmem)[] = value; \
static type const* name = reinterpret_cast<type const*>( \
#define ARDUINOJSON_DEFINE_PROGMEM_ARRAY(type, name, ...) \
static type const ARDUINOJSON_CONCAT2(name, _progmem)[] = __VA_ARGS__; \
static type const* name = reinterpret_cast<type const*>( \
convertPtrToFlash(ARDUINOJSON_CONCAT2(name, _progmem)));

View File

@ -1,5 +1,5 @@
# ArduinoJson - https://arduinojson.org
# Copyright © 2014-2022, Benoit BLANCHON
# Copyright © 2014-2023, Benoit BLANCHON
# MIT License
add_executable(IntegrationTests
@ -9,10 +9,10 @@ add_executable(IntegrationTests
openweathermap.cpp
)
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 6)
target_compile_options(IntegrationTests
PUBLIC
-fsingle-precision-constant # issue 544
-fsingle-precision-constant # issue 544
)
endif()
@ -20,5 +20,5 @@ add_test(IntegrationTests IntegrationTests)
set_tests_properties(IntegrationTests
PROPERTIES
LABELS "Catch"
LABELS "Catch"
)

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>

View File

@ -1,5 +1,5 @@
# ArduinoJson - https://arduinojson.org
# Copyright © 2014-2022, Benoit BLANCHON
# Copyright © 2014-2023, Benoit BLANCHON
# MIT License
add_executable(JsonArrayTests
@ -24,5 +24,5 @@ add_test(JsonArray JsonArrayTests)
set_tests_properties(JsonArray
PROPERTIES
LABELS "Catch"
LABELS "Catch"
)

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>
@ -165,7 +165,7 @@ TEST_CASE("copyArray()") {
char json[32] = "";
int source[][3] = {{1, 2, 3}, {4, 5, 6}};
CAPTURE(SIZE)
CAPTURE(SIZE);
bool ok = copyArray(source, array);
CAPTURE(doc.memoryUsage());

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>

View File

@ -1,5 +1,5 @@
# ArduinoJson - https://arduinojson.org
# Copyright © 2014-2022, Benoit BLANCHON
# Copyright © 2014-2023, Benoit BLANCHON
# MIT License
add_executable(JsonDeserializerTests
@ -24,5 +24,5 @@ add_test(JsonDeserializer JsonDeserializerTests)
set_tests_properties(JsonDeserializer
PROPERTIES
LABELS "Catch"
LABELS "Catch"
)

View File

@ -1,10 +1,12 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>
#include <catch.hpp>
#include <sstream>
void testStringification(DeserializationError error, std::string expected) {
REQUIRE(error.c_str() == expected);
}

View File

@ -1,5 +1,5 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>

Some files were not shown because too many files have changed in this diff Show More