Niels Lohmann
717106eced
🔨 templated output_adapter and used in class serializer
2017-04-14 19:49:05 +02:00
Niels Lohmann
186a9fd44d
🔨 simplified interface for parser, lexer, and binary_reader
...
These classes are now constructed with an interface adapter. This moves
complexity from various places into the interface adapter class, or to
some factories which now implement the different flavors of input.
Furthermore, input adapters are kept in std::shared_ptr to avoid the
need of manual deletion.
2017-04-09 19:28:15 +02:00
Niels Lohmann
6f99d5b2e9
🔨 fixed test case
...
One test case for CBOR and MessagePack assumed little endianess.
2017-04-08 23:39:17 +02:00
Niels Lohmann
97a25de938
✨ proposal for #428
...
This implementation forwards the iterators to std::map::insert.
2017-04-07 18:29:09 +02:00
Niels Lohmann
d62d48fc48
🔀 merge branch 'develop' into feature/manual_lexer
2017-04-07 17:19:52 +02:00
Niels Lohmann
90273e930c
🐛 fix for #512
...
We totally forgot to implement the comparison operators other than ==
and != for scalar types. Consequently, comparing a JSON value with a
scalar type led to compile errors.
2017-04-07 15:44:41 +02:00
Niels Lohmann
b15fc13dd1
🔨 implemented MessagePack in binary_reader
2017-04-04 16:59:19 +02:00
Niels Lohmann
3a34f2d82c
Merge branch 'develop' into feature/manual_lexer
2017-04-04 15:55:40 +02:00
Niels Lohmann
89efe627fe
🔨 a lot of restructuring
...
- removed uncached input stream adapter; it was too slow anyway
- implemented a class binary_read which parses CBOR based on input
adapters
- in the CBOR parser, numbers are created via memcpy to avoid undefined
behavior
2017-04-02 18:46:21 +02:00
Théo DELRIEU
af9b21151c
add enum class default conversions
2017-04-02 13:10:15 +02:00
Niels Lohmann
3a5cf9bd0a
🔨 improved code coverage
2017-04-01 08:34:58 +02:00
Niels Lohmann
50ee0a62f5
🔨 replaced lookup-tables by switches
2017-03-31 23:24:33 +02:00
Niels Lohmann
60057a4728
🔨 fixed bugs introduced by merging from develop
2017-03-29 07:54:26 +02:00
Niels Lohmann
a690a9f2d2
Merge branch 'develop' into feature/manual_lexer
2017-03-29 00:57:09 +02:00
Niels Lohmann
c2e80a72d7
🔨 deprecated j << istream / j >> ostream functions #367
...
The implementation is non-standard. Deprecation allows a simpler API in
the future without removing any features.
2017-03-29 00:39:47 +02:00
Niels Lohmann
9578c0f700
Merge branch 'develop' into feature/manual_lexer
2017-03-28 23:47:17 +02:00
Niels Lohmann
b4dbebffcd
✅ added regression test for #464
2017-03-28 23:28:54 +02:00
Niels Lohmann
d37ca2eba8
🔨 fixed test case
2017-03-28 20:29:27 +02:00
Niels Lohmann
50e251f5f6
🔨 adjusted test case to new signature of token_type_name()
2017-03-28 20:17:00 +02:00
Niels Lohmann
bbb6bd9de5
🔨 fixing last failing test cases
2017-03-28 17:00:03 +02:00
Niels Lohmann
06e2a291b1
🔨 fixed number parsing
2017-03-26 17:26:41 +02:00
Niels Lohmann
3b069b4b4c
🔨 adjusted more expected exceptions
2017-03-26 16:19:07 +02:00
Niels Lohmann
99e0d8b339
🔨 fixed \uxxxx parsing
2017-03-26 15:29:08 +02:00
Niels Lohmann
f47cf152a8
Merge branch 'develop' into feature/manual_lexer
2017-03-26 13:14:14 +02:00
Niels Lohmann
53b501a785
🔨 cleanup
2017-03-25 23:31:03 +01:00
Niels Lohmann
cf7786887c
🔨 fixed check for is_nothrow_copy_constructible
...
We now only demand our exceptions to be is_nothrow_copy_constructible
if std::runtime_exception is.
2017-03-25 17:35:57 +01:00
Niels Lohmann
cc36c65a89
🚑 made exceptions nothrow-copy-constructible #531
...
To have nothrow-copy-constructible exceptions, we inherit from
std::runtime_error which can cope with arbitrary-length error messages.
Intermediate strings are built with static functions and then passed to
the actual constructor.
2017-03-25 16:22:52 +01:00
Niels Lohmann
40160f482a
🚧 manual lexer
...
This commit removed the re2c lexer and replaced it by a manual version.
Its integration is not yet complete: number parsing does not respect
locales or overflows. Furthermore, parsing does not need to end with
EOF. Therefore, a lot of test cases fail. The idea is to push this
branch forward so we can conduct performance comparisons. So far, a
nice side effect are better diagnosis messages in case of parse errors.
2017-03-24 19:49:02 +01:00
Niels Lohmann
31a6c0910e
🚑 fix for #519
...
Added catch branch for out_of_range exception that can occur if input
file contains a number overflow.
2017-03-17 22:18:48 +01:00
Niels Lohmann
f547679de5
🚑 fix for #516 and #518
...
We should compare the binary serializations rather than the JSON values
themselves. This fix was already done for CBOR and apparently forgotten
for MessagePack.
2017-03-17 22:18:05 +01:00
Niels Lohmann
cd43600e6f
💄 cleanup after #508
2017-03-16 19:02:05 +01:00
Niels Lohmann
773b33e016
Merge pull request #508 from theodelrieu/feature/c_array_conversion
...
add to_json method for C arrays
2017-03-16 19:00:58 +01:00
Niels Lohmann
c5711f3072
🚧 a lot of minor changes
...
- Removed unused headers.
- Added override where needed.
- Added description for parse_error.113 exception.
- Fixed some conversion warnings.
- Integrated cbor_expect_string function for CBOR maps.
- Added documentation on the supported CBOR/MessagePack features.
- Added test to check all initial bytes for CBOR input.
2017-03-16 18:39:33 +01:00
Théo DELRIEU
dbebf8de47
add to_json method for C arrays
...
If the array can be converted to basic_json::string_t, the overload
in this commit is not chosen.
2017-03-16 15:20:39 +01:00
Niels Lohmann
1de80e8af4
🔨 added user-defined exception #493
...
Replaced old std::invalid_argument exception by parse_error.111 to have
unified exceptions in case of input stream errors.
2017-03-14 21:31:36 +01:00
Niels Lohmann
63c2c62f19
🔨 changed call from "not good()" to "fail()" #493
...
Also merged develop into this feature branch.
2017-03-14 21:24:53 +01:00
Niels Lohmann
b026591e9e
🚑 added special case to fuzzers to fix #504
...
Since #329 , NaN and inf numbers do not yield an exception, but are
stored internally and are dumped as “null”. This commit adjusts the
fuzz testers to deal with this special case.
2017-03-14 21:05:38 +01:00
Niels Lohmann
bfe4788e32
🚑 fix for #500
...
Removed a check that already failed in MSVC.
2017-03-14 16:14:05 +01:00
Niels Lohmann
84072fbd6d
💄 fixed indentation
2017-03-14 16:07:28 +01:00
Niels Lohmann
c5cf32e34d
🔨 added user-defined exception 406
2017-03-12 20:59:33 +01:00
Niels Lohmann
855cdcf05c
🔀 merge branch 'develop' into feature/exceptions_3.0.0
2017-03-12 20:22:30 +01:00
Niels Lohmann
8feaf8dc94
💥 implemented new handling of NaN and INF #70 #329 #388
...
- If an overflow occurs during parsing a number from a JSON text, an
exception (std::out_of_range for the moment, to be replaced by a
user-defined exception #244 ) is thrown so that the overflow is detected
early and roundtripping is guaranteed.
- NaN and INF floating-point values can be stored in a JSON value and
are not replaced by null. That is, the basic_json class behaves like
double in this regard (no exception occurs). However, NaN and INF are
serialized to “null”.
- Adjusted test cases appropriately.
2017-03-12 18:38:05 +01:00
Niels Lohmann
87eafd8d6a
✅ added regression tests for #473
...
These tests currently pass without any adjustments to the source code.
2017-03-12 15:20:17 +01:00
Niels Lohmann
89f6068385
Merge branch 'develop' into feature/exceptions_3.0.0
2017-03-12 11:51:24 +01:00
Niels Lohmann
4d7c29923e
🚑 fix for #486
...
Implemented std::less<value_t> to allow using value_t as std::map key
in MSVC.
2017-03-12 10:40:36 +01:00
Niels Lohmann
4e49829851
🚑 fix for #493
...
Added a test to check if the input stream is good() before executing
getline on it. Also added two test cases that set the failbit and
badbit before calling file_line_buffer.
2017-03-11 19:26:12 +01:00
Niels Lohmann
ff0b18d10c
Merge branch 'feature/vector_bool' into develop
2017-03-11 17:22:14 +01:00
Niels Lohmann
c7afb34e57
🎨 cleanup after #496
...
Ran “make pretty” and added a note to the README file.
2017-03-11 16:01:26 +01:00
Niels Lohmann
f4126e4dd8
✨ added overload for std::less<value_t> #486
...
MSVC needs this overload to compile code containing a std::map that
uses nlohmann::detail::operator as key.
2017-03-11 15:44:14 +01:00
Niels Lohmann
f5f6dac800
✨ added overload for std::vector<bool> #494
...
Adds a to_json function for std::vector<bool> to allow implicit
conversion from bit vectors to basic_json.
2017-03-11 15:32:44 +01:00
Ted Lyngmo
9cfb777b65
Fix -Weffc++ warnings (GNU 6.3.1)
2017-03-11 13:56:38 +01:00
Niels Lohmann
758c4addc1
🚑 fix for #492
...
The original test case relied on an invalidated iterator. This error
did not occur before, but only with GCC with -D_GLIBCXX_DEBUG. This
commit fixes the test case. The library is unaffected by this change.
2017-03-09 18:20:26 +01:00
Niels Lohmann
9374eaa013
🔨 added user-defined exception 501
2017-03-08 19:16:53 +01:00
Niels Lohmann
c8a6ce79ea
🚑 fixing fuzzers to work with new exceptions
2017-03-08 18:37:03 +01:00
Niels Lohmann
fc9b528ec9
🔨 changed an exception
2017-03-08 18:07:21 +01:00
Niels Lohmann
8fcd01631f
✅ improved test coverage
...
Tests for parse_error.109 were missing.
2017-03-08 16:39:17 +01:00
Niels Lohmann
625cf7e3f7
🔨 added user-defined exception 112
2017-03-07 20:05:34 +01:00
Niels Lohmann
5407333224
🔨 added user-defined exception 111
2017-03-06 22:37:46 +01:00
Niels Lohmann
21ec0e7806
🔨 added user-defined exception 110
2017-03-06 21:00:13 +01:00
Niels Lohmann
a186106bde
🔨 user-defined exception 302
...
Also moved all exception classes into the detail namespace and
introduced them via “using” into basic_json.
2017-03-06 19:34:44 +01:00
Niels Lohmann
38c2e20ce8
added user-defined exceptions 404-405
2017-03-05 23:25:22 +01:00
Niels Lohmann
30331fa21f
🔨 added user-defined exception 403
2017-03-05 23:16:17 +01:00
Niels Lohmann
60da36aee2
🔨 added user-defined exceptions 401-402
2017-03-05 22:56:39 +01:00
Niels Lohmann
491c9780a7
🔨 added user-defined exception 311
2017-03-05 22:39:21 +01:00
Niels Lohmann
6751d650be
🔨 added user-defined exception 311
2017-03-05 22:31:08 +01:00
Niels Lohmann
9e560ca40c
🔨 added user-defined exceptions 313-315
2017-03-05 19:58:26 +01:00
Niels Lohmann
144cf6a4c7
🔨 added user-defined exceptions 310
2017-03-05 19:48:11 +01:00
Niels Lohmann
5cca44c161
🔨 added user-defined exceptions 309
2017-03-05 19:42:05 +01:00
Niels Lohmann
70b2c3f45e
🔨 added user-defined exceptions 308
2017-03-05 19:35:24 +01:00
Niels Lohmann
2a9393af00
🔨 added user-defined exceptions 307
2017-03-05 19:26:44 +01:00
Niels Lohmann
bb740c43fb
🔨 added user-defined exceptions 306
2017-03-05 19:15:56 +01:00
Niels Lohmann
aa842b4a27
🔨 added user-defined exceptions 305
2017-03-05 19:08:12 +01:00
Niels Lohmann
f473f74fb0
🔨 added user-defined exceptions 303-304
2017-03-05 18:56:35 +01:00
Niels Lohmann
068c7acda9
🔨 added user-defined exceptions 301
2017-03-05 18:40:09 +01:00
Niels Lohmann
0c40c8e3be
🔨 added user-defined exceptions 2xx
2017-03-03 14:34:57 +01:00
Niels Lohmann
a4274d7766
🔨 added user-defined exceptions 205-206
2017-03-03 14:00:42 +01:00
Niels Lohmann
875b2da95d
🔨 added user-defined exceptions 203-204
2017-03-03 13:38:14 +01:00
Niels Lohmann
9381f6c4da
🔨 added user-defined exceptions 201-202
...
Started implementing exceptions for invalid iterators.
2017-03-03 13:19:45 +01:00
Niels Lohmann
0c6b1f8a24
Merge branch 'develop' into feature/exceptions_3.0.0
2017-03-03 12:54:45 +01:00
Niels Lohmann
776758d7a2
🔨 added user-defined exception 109
...
This exception occurs when a JSON pointer contains an array index that
can not be converted into a number.
2017-03-03 12:54:37 +01:00
Niels Lohmann
b86d2148ef
🔨 added user-defined exceptions 106-108
...
These exceptions occur when JSON pointers are malformed.
2017-03-03 11:56:58 +01:00
Niels Lohmann
01d3a006b1
⬆️ updated Catch to v1.8.1
2017-03-02 18:13:19 +01:00
Niels Lohmann
06815d274e
🔨 added user-defined exceptions 104 and 105
...
These exceptions are thrown in case of parse errors in JSON patch
documents.
2017-03-02 17:55:13 +01:00
Niels Lohmann
c085e3bac2
🔨 started with user-defined exceptions #301 #244
...
Added class hierarchy for user-defined exceptions (#244 ). Integrated
parse exceptions 101-103. Parse exceptions include the byte count of
the last read character to locate the position of the error (#301 ).
2017-03-01 21:28:44 +01:00
Niels Lohmann
7b8fd864e2
🔥 removed deprecated constructor #480
...
The constructor basic_json(std::istream&, const parser_callback_t) has
been deprecated since version 2.0.0. This commit removes it together
with its code example, deprecation macro, and test cases. The code now
also compiles with -W-deprecated-declarations.
2017-03-01 17:49:03 +01:00
Niels Lohmann
d69242c6ba
💄 cleanup
...
- Added comments for the serializer class.
- Added test case for resizing of the indentation string.
- Using std::none_of to check if “.0” needs to be added to
floating-point number.
2017-02-28 19:20:50 +01:00
Niels Lohmann
224f99070b
⚡ micro-optimization of dump()
...
A lot of small changes to avoid memory allocations:
- The locale is only queried once rather than with every number
serialization.
- The indentation string is recycled between different calls.
- The string escape function avoids a copy if no escaping is necessary.
- The string escape and the space function use a complete switch case
instead of cascaded ifs.
Cachegrind measures some 15% performance improvement.
2017-02-28 16:28:22 +01:00
Niels Lohmann
54ef5f7b47
🔨 moved serialization functions to serializer class
...
The class is currently just a wrapper for an std::ostream and collects
all functions related to serialization. The next step should be
recycling of variables to avoid repetitive initialization for each
recursive dump call.
2017-02-27 21:22:39 +01:00
Niels Lohmann
bf4d744d1a
✅ more tests for meta() call
2017-02-26 14:34:58 +01:00
Niels Lohmann
d1b30250d6
✅ added missing tests
2017-02-26 11:50:52 +01:00
Niels Lohmann
27c65b860b
🔖 version 2.1.1
2017-02-25 16:34:38 +01:00
Niels Lohmann
a646c9c599
🔀 merge branch 'cotire' of https://github.com/tusharpm/json into tusharpm-cotire
2017-02-22 19:45:10 +01:00
Niels Lohmann
8cec55a271
🚧 fixed more warnings
2017-02-22 18:14:29 +01:00
Niels Lohmann
7d14f167b8
🚑 fix for #465
2017-02-20 22:48:27 +01:00
Niels Lohmann
1a6d7f5bca
🚧 try to fix some warnings in MSVC
2017-02-20 18:32:11 +01:00
Niels Lohmann
83f1d2c81b
✨ added start index for from_cbor and from_msgpack ( #462 )
2017-02-19 21:17:05 +01:00
Niels Lohmann
4151f2d297
✅ added test with thousands_sep
2017-02-19 20:08:01 +01:00
Tushar Maheshwari
85ce4d7b53
⚡ cmake compile time reduce using cotire
...
- Add prefix header
- Include catch.hpp
- Include json.hpp
- Replace private with public for all json_unit files
- Move `unit.cpp` to an object library
- cotire issue: strip whitespace from CMAKE_INCLUDE_SYSTEM_FLAG_CXX
2017-02-19 13:35:54 +05:30
Niels Lohmann
513eb3ab5f
🚧 clean up
2017-02-18 11:00:18 +01:00
Niels Lohmann
6408402ad2
🔀 merge #378 (for #362 and #454 )
2017-02-16 09:24:45 +01:00
Niels Lohmann
057b1e606b
🔀 merged #415 (fix for #414 )
2017-02-16 08:50:20 +01:00
Niels Lohmann
b9f3149451
🚑 fix for #452
2017-02-15 21:30:28 +01:00
Mihai STAN
6bf93b3d06
Merge remote-tracking branch 'upstream/develop' into develop
2017-02-15 15:00:25 +02:00
Niels Lohmann
22b9a301d6
Merge pull request #450 from nlohmann/TurpentineDistillery-feature/locale_independent_str_to_num
...
TurpentineDistillery feature/locale independent str to num
2017-02-14 07:18:35 +01:00
Niels Lohmann
c95ff863bf
⬆️ updated Catch to v1.7.2
2017-02-13 18:55:11 +01:00
Niels Lohmann
265c5b5207
🔨 more work on the number parser
2017-02-13 18:51:23 +01:00
Niels Lohmann
b84705d557
✅ improved test coverage
2017-02-12 20:14:43 +01:00
Niels Lohmann
c8191c8172
🔨 further cleanup
2017-02-12 18:50:17 +01:00
Niels Lohmann
c2d55109c1
🔨 make lexer distinguishes number types
2017-02-11 16:54:25 +01:00
Niels Lohmann
8d88a1da2a
🔀 merged #379 and fixed conflicts
2017-02-05 13:13:41 +01:00
Niels Lohmann
d284c86dd1
✅ uncommented some tests
2017-02-04 21:00:41 +01:00
Niels Lohmann
922fe693e1
⬆️ updated Catch to v1.7.0
2017-02-04 15:30:28 +01:00
Niels Lohmann
1cfdc2a753
🐛 fixed test compilation
2017-02-04 08:25:55 +01:00
Niels Lohmann
5976caf032
⚡ improved test compilation speed #445
2017-02-03 18:09:55 +01:00
Niels Lohmann
16af771277
✅ added roundtrip test for the Big List of Naughty Strings
2017-02-01 17:34:39 +01:00
Niels Lohmann
0164b10e10
✅ added missing tests found by mutate++
2017-01-29 17:18:58 +01:00
Niels Lohmann
d870826811
🔖 set version to 2.1.0
2017-01-28 16:03:35 +01:00
Mihai STAN
6198439f59
fix #414 - comparing to 0 literal
...
Overload comparison operators for all types that could be converted
to nullptr.
2017-01-24 22:33:37 +02:00
Niels Lohmann
030cf674ef
🚧 fixed a warning
2017-01-24 12:49:38 +01:00
Niels Lohmann
3857e55290
💄 ran "make pretty"
2017-01-24 12:43:43 +01:00
Théo DELRIEU
9f103d19d7
add implicit conversions test (operator T())
2017-01-22 14:23:24 +01:00
Théo DELRIEU
9f8b270ed9
fix some warnings
2017-01-22 14:07:28 +01:00
Théo DELRIEU
7f359017d2
rename template argument Json -> BasicJsonType
2017-01-21 19:12:40 +01:00
Théo DELRIEU
708eb9613b
disable reserve tests when exceptions are disabled
2017-01-21 19:12:40 +01:00
Théo DELRIEU
3e15b551e0
run make pretty
2017-01-21 16:14:22 +01:00
Théo DELRIEU
b56117b148
add noexcept tests
2017-01-21 16:14:22 +01:00
Théo DELRIEU
07bc82d3a7
put const to the left
2017-01-21 16:14:22 +01:00
Théo DELRIEU
f1482d1f01
more tests in unit-udt
2017-01-21 16:14:22 +01:00
Théo DELRIEU
b8012876a5
add noexcept checks, and some missing noexcepts
2017-01-21 16:14:22 +01:00
Théo DELRIEU
1554baa01d
attempting to fix coverage. testing that reserve is called
2017-01-21 16:14:22 +01:00
Théo DELRIEU
3494014ba0
new unit-udt.cpp tests
2017-01-21 16:14:22 +01:00
Théo DELRIEU
be6b417c87
tweak SFINAE checks for internal types (see commit body)
...
only check for public types (iterators, json_pointer)
for private ones (m_array.iterator, primitive_iterator) simply double
parentheses on relevant Catch checks
2017-01-21 16:14:22 +01:00
Théo DELRIEU
c847e0eea2
replace constructor by from/to_json: array_t
...
- tweaked a bit how `get<container<json>>` is handled
- added a from_json overload for forward list
2017-01-21 16:14:22 +01:00
Théo DELRIEU
6d427acdde
replace constructor by from/to_json: unscoped enum types
...
this also means that one can do: j.get<unscoped_enum>();
2017-01-21 16:14:22 +01:00
Théo DELRIEU
a32de3b528
replace constructor by from/to_json: number_unsigned_t
...
This commit forces a design change in custom JSONSerializer, which might
be temporary
2017-01-21 16:14:21 +01:00
Niels Lohmann
be1d3de49b
💄 moved changes to re2c file and ran make pretty
2017-01-21 16:14:21 +01:00
Théo DELRIEU
aa2679a8ce
fix tests, avoid instantiating JSONSerializer when it will not be used
2017-01-21 16:14:21 +01:00
Théo DELRIEU
d5ee5830ed
add more tests
2017-01-21 16:14:21 +01:00
Théo DELRIEU
1c21c87e6f
use u8 prefix in unit-udt.cpp
2017-01-21 16:14:21 +01:00
Théo DELRIEU
7e750ec1fa
fix msvc, by doubling parenthesis on catch assertions
2017-01-21 16:14:21 +01:00
Théo DELRIEU
3d405c6883
add support for enum classes
2017-01-21 16:14:21 +01:00
Théo DELRIEU
8e43d476d3
add more tests to unit-udt.cpp
2017-01-21 16:14:21 +01:00
Théo DELRIEU
1eafac7220
remove explicit keyword on udt-constructor
2017-01-21 16:14:21 +01:00
Théo Delrieu
c0c72b5b62
rewrite unit-udt: basic usage
2017-01-21 16:14:21 +01:00
Théo DELRIEU
60e6f822fa
add support for non-default-constructible udt
2017-01-21 16:14:21 +01:00
Théo DELRIEU
e5999c6c82
add a few tests
2017-01-21 16:14:21 +01:00
Théo DELRIEU
88819449c2
remove constraints on JSONSerializer instances, constrain correctly new methods
2017-01-21 16:14:21 +01:00
Théo DELRIEU
23bd2bce35
add is_compatible_* traits
2017-01-21 16:14:21 +01:00
Théo DELRIEU
178441cdfd
add basic test for custom serializer
2017-01-21 16:14:21 +01:00
Théo DELRIEU
2bc685f6b4
to_json and from_json takes both two arguments now
...
the first is the basic_json type, the second the user-defined type
2017-01-21 16:14:21 +01:00
Théo DELRIEU
837b81d672
renamed unit-constructor3.cpp to unit-udt.cpp
2017-01-21 16:14:21 +01:00
Théo DELRIEU
7dc268ef42
add first version for alternate implementation
2017-01-21 16:14:21 +01:00
Théo DELRIEU
4cdc61e493
move most SFINAE trickery in to/from_json_fn
2017-01-21 16:14:21 +01:00
Théo DELRIEU
fe628b585b
anonymous namespace renamed to detail
2017-01-21 16:14:21 +01:00
Théo Delrieu
b443edf49e
add first version support for user-defined types
2017-01-21 16:14:20 +01:00
Niels Lohmann
1ab26ab367
✨ option to switch off exceptions
2017-01-16 22:11:07 +01:00
Niels Lohmann
a7f3938391
✅ added Big List of Naughty Strings
2017-01-16 20:03:50 +01:00
Niels Lohmann
3a9ccfac22
🚧 cleanup
2017-01-12 21:35:27 +01:00
Niels Lohmann
98ad3c3ac1
Merge branch 'develop' into feature/release_information
2017-01-12 21:30:08 +01:00
Niels Lohmann
0f03543861
⬆️ upgraded to Catch 1.6.0
2017-01-11 22:23:02 +01:00
Niels Lohmann
e9bbf5aaba
🐛 forgot to remove a test case
2017-01-08 09:31:40 +01:00
Niels Lohmann
dd45ba6f89
🚧 renamed version()
to meta()
2017-01-08 09:19:44 +01:00
Alex Astashyn
c236b596c9
Merge upstream/develop into feature/locale_independent_str_to_num
2017-01-04 19:20:16 -05:00
Alex Astashyn
949061079a
Merge upstream/develop into feature/locale_independent_num_to_str
2017-01-04 18:55:19 -05:00
Niels Lohmann
e1b89dd1d6
Merge branch 'develop' into feature/release_information
2017-01-04 20:06:23 +01:00
Niels Lohmann
cdd3b5a68c
🚑 fix for #416
2017-01-03 23:52:01 +01:00
Niels Lohmann
f8d640b185
👷 better support for OSS-Fuzz
2017-01-03 22:35:31 +01:00
Niels Lohmann
245a69d554
💄 ran clang-tidy
2017-01-03 21:33:23 +01:00
Niels Lohmann
ea4d71ee21
Merge branch 'develop' into feature/release_information
2017-01-02 17:26:00 +01:00
Niels Lohmann
8b46eb8ec0
📄 it's 2017 already
2017-01-02 09:40:00 +01:00
Niels Lohmann
60b3703c62
🔖 version bump to 2.0.10
2017-01-02 09:35:57 +01:00
Niels Lohmann
d173517212
💄 clean up
2017-01-02 09:21:26 +01:00
Niels Lohmann
a3063c2419
🚧 added target to build all fuzzers
2017-01-01 21:51:36 +01:00
Niels Lohmann
09b91406c6
🔀 merge pull request #410 from Daniel599/feature/clang_sanitize
...
Feature/clang sanitize
2017-01-01 19:45:11 +01:00
Niels Lohmann
cf9bf2d913
🚑 fix for #411 and #412
2017-01-01 15:28:01 +01:00
Daniel Cohen
ff3221a375
#394 fixed memory leak in unit-allocator, found by clang's fsanitize
2016-12-30 15:21:25 +02:00
Niels Lohmann
328eb55dc4
🚧 started working on #397
2016-12-30 14:02:51 +01:00
Niels Lohmann
d7029c37aa
✅ improved test coverage
2016-12-30 13:04:33 +01:00
Niels Lohmann
f0edab2363
🚑 fix for #408
2016-12-29 17:00:02 +01:00
Niels Lohmann
383a29a924
🚑 fix for #407
2016-12-29 16:14:15 +01:00
Niels Lohmann
871cebaf84
🚑 fix for #405
2016-12-29 15:39:16 +01:00
Niels Lohmann
1dd99d04b6
Merge branch 'develop' into feature/fuzzer
2016-12-28 12:19:12 +01:00
Niels Lohmann
888f5b9f60
🚚 renamed test files to allow windows build
2016-12-28 12:18:48 +01:00
Niels Lohmann
55be721615
Merge branch 'develop' into feature/fuzzer
2016-12-28 12:11:51 +01:00
Niels Lohmann
acb7e0558d
🚑 fixed bugs detected by AFL-Fuzz
2016-12-28 12:09:15 +01:00
Niels Lohmann
1399abc583
🚧 added MessagePack fuzz target
2016-12-25 16:18:56 +01:00
Niels Lohmann
6de9d4035a
🐛 fixed AFL driver to also read binary data
2016-12-25 16:06:56 +01:00
Niels Lohmann
33be4e7f1f
🚧 cleanup
2016-12-22 12:08:36 +01:00
Niels Lohmann
a084e90f39
🔨 split AFL test in driver and test file
2016-12-22 11:09:26 +01:00
Niels Lohmann
048330b14b
⬆️ Catch v1.5.9
2016-12-22 09:37:15 +01:00
Niels Lohmann
22a6b956e8
📄 added license for Catch
2016-12-22 09:36:34 +01:00
Niels Lohmann
ad241a2260
🔨 moved third-party code into separate folder
2016-12-22 09:35:53 +01:00
Niels Lohmann
6e8791912f
🚧 added fuzzer from OSS-Fuzz
2016-12-22 09:09:40 +01:00
Niels Lohmann
69ed19e483
➕ added libFuzzer
2016-12-22 09:08:50 +01:00
Niels Lohmann
303e873ae8
🔖 bumped version to 2.0.9
2016-12-16 20:45:46 +01:00
Niels Lohmann
2f94c30bad
✅ added a regression test for #380 / #390
2016-12-13 21:46:07 +01:00
Alex Astashyn
6fba52b6da
Merged upstream/develop into feature/locale_independent_str_to_num
2016-12-12 20:27:15 -05:00
Alex Astashyn
65b9b0c429
Disabling snprintf pre-check, since can't get locale-specific behavior to manifest in AppVeyor
2016-12-12 19:50:21 -05:00
Alex Astashyn
0f8de48ddb
Disabling strtod pre-check, since can't get locale-specific behavior to manifest in AppVeyor
2016-12-12 19:48:14 -05:00
Niels Lohmann
79fa8b2f41
🚑 fix to address #389
2016-12-12 23:19:43 +01:00
Niels Lohmann
447e01427d
🚨 fixed some warnings
2016-12-12 18:21:17 +01:00
Niels Lohmann
dc6fc3e079
📝 clean up and added documentation for #358
2016-12-11 13:36:08 +01:00
Niels Lohmann
fdce38fa79
✅ fixed a test case
2016-12-11 00:39:26 +01:00
Niels Lohmann
e8c903294f
✅ more test cases for CBOR and msgpack
2016-12-11 00:05:29 +01:00
Niels Lohmann
41673e8fed
🐛 fixed CBOR code and added test cases
2016-12-10 23:12:57 +01:00
Niels Lohmann
d99c230f51
✨ implemented indefinite-length CBOR types ( #387 )
2016-12-10 18:32:56 +01:00
Alex Astashyn
01930357f7
Tweaking unit test, as digits grouping is failing to be invoked in CI
2016-12-08 22:39:38 -05:00
Alex Astashyn
1c029b97c0
Still trying to invoke locale-specific behavior in CI
2016-12-08 22:13:05 -05:00
Alex Astashyn
50f0484ad5
Added unit test for issue #378
2016-12-07 20:23:25 -05:00
Alex Astashyn
27d9740ad6
Tweaks to unit-test for issue #379
2016-12-07 19:55:07 -05:00
Niels Lohmann
81a4272444
✅ more test cases for CBOR
2016-12-07 23:14:37 +01:00
Niels Lohmann
3a0f5398a2
✅ more CBOR test cases
2016-12-07 22:50:10 +01:00
Niels Lohmann
b7e0c12966
✨ CBOR support for half-precision floats
2016-12-07 21:43:59 +01:00
Niels Lohmann
17c9b17a7e
✅ test cases from RFC 7049 #384
2016-12-07 21:25:22 +01:00
Niels Lohmann
de289ea336
💚 another approach to the AppVeyor error
2016-12-07 19:15:05 +01:00
Niels Lohmann
81c43dca6a
💚 more AppVeyor fixes
2016-12-07 16:51:15 +01:00
Niels Lohmann
3f14a09e73
💚 another try to fix the AppVeyor build
2016-12-07 16:43:55 +01:00
Niels Lohmann
74571d531c
💚 still fixing the AppVeyor error
2016-12-07 16:34:02 +01:00
Niels Lohmann
2c7946f2bc
💚 hopefully fixed an error on AppVeyor
2016-12-07 16:21:22 +01:00
Niels Lohmann
474da6b28f
✅  more msgpack test cases
2016-12-07 13:47:08 +01:00
Niels Lohmann
be973e52bb
✅ more msgpack test cases
2016-12-07 09:19:46 +01:00
Niels Lohmann
a1693bfe48
Merge branch 'develop' into feature/messagepack
2016-12-07 08:39:57 +01:00
Alex Astashyn
6774457733
Trying to coerce setlocale to make snprintf use commas as delimiter some more
2016-12-06 22:59:12 -05:00
Alex Astashyn
d2e9ce270a
Trying to coerce setlocale to make snprintf use commas as delimiter; the behavior appears to be compiler/platform-specific
2016-12-06 22:18:20 -05:00
Alex Astashyn
6e8da7d8c4
Added unit-test for issue #379 (locale-independent str-to-num)
2016-12-06 19:45:48 -05:00
Alex Astashyn
2197856395
Fixed suffixing .0 and modified the unit tests accordingly
2016-12-04 01:38:23 -05:00
Alex Astashyn
6b78b5c2be
Added strtonum for locale-independent number parsing
2016-12-03 19:05:09 -05:00
Niels Lohmann
4adb8a81bf
📝 version bump
2016-12-02 18:39:35 +01:00
Niels Lohmann
ba3c5e1a25
✅ more test cases
2016-11-29 09:49:05 +01:00
Niels Lohmann
c46b4ea990
✅ more test cases
2016-11-29 08:37:27 +01:00
Niels Lohmann
ee0f23fdc6
🚧 bug fixes and more tests
2016-11-28 23:20:03 +01:00
Niels Lohmann
aeb4f87a27
✨ added return value for emplace ( #349 )
2016-11-28 18:33:46 +01:00
Niels Lohmann
6ecff31b7f
Merge branch 'develop' into feature/emplace
2016-11-28 18:00:10 +01:00
Niels Lohmann
bc238124ee
🚧 further simplifications
2016-11-27 21:42:21 +01:00
Niels Lohmann
4c232fe12b
👷 added precondition for individual tests
2016-11-27 19:11:58 +01:00
Niels Lohmann
56843eb7ba
Merge branch 'feature/individual_tests' into feature/messagepack
2016-11-27 18:28:23 +01:00
Niels Lohmann
93589e630c
✅ CBOR roundtrip tests
2016-11-27 17:47:56 +01:00
Niels Lohmann
e1f98fbfc0
🚧 splitting tests into several binaries
2016-11-27 16:19:26 +01:00
Niels Lohmann
eef408e5fb
✅ tests for CBOR
2016-11-27 00:09:24 +01:00
Niels Lohmann
87e088990b
Merge branch 'develop' into feature/messagepack
2016-11-26 18:17:18 +01:00
Niels Lohmann
1ed510c232
Merge branch 'develop' into feature/filenotfound
2016-11-25 17:39:24 +01:00
Niels Lohmann
c39c36e6ad
💄 fixed indentation
2016-11-24 22:05:29 +01:00
Niels Lohmann
8014637ad1
✅ added a test for EOF error ( #367 )
2016-11-24 21:53:41 +01:00
Niels Lohmann
4bb41d065b
🐛 parsing erroneous files yields an exception ( #366 )
2016-11-23 16:57:01 +01:00
Niels
edc81f3bc1
💚 restored test call
2016-11-16 22:49:25 +01:00
Niels
d362a07239
💚 moved sample.json to standard test suite to run it with Valgrind
2016-11-16 22:49:16 +01:00
Niels
a9744f3937
💚 is sample.json killing AppVeyor?
2016-11-16 22:08:21 +01:00
Niels
0c9ab9427f
💚 added verbose message to check AppVeyor build
2016-11-16 22:02:38 +01:00
Niels
05e916717b
Merge branch 'develop' into feature/messagepack
2016-11-16 19:16:36 +01:00
Niels
693bfe439b
Merge branch 'develop' into feature/emplace
2016-11-16 19:16:16 +01:00
Niels
0d72767b3e
⬆️ updated to Catch v1.5.8
2016-11-16 19:15:54 +01:00
Niels
1be73b903e
proposal for emplace/emplace_back ( #349 )
2016-11-11 19:29:14 +01:00
Niels
d1e73ce954
hid an expensive test case
2016-11-11 17:31:37 +01:00
Niels
543745a10e
starting to integrate MessagePack ( #358 )
2016-11-11 17:11:13 +01:00
Niels
700977d73e
version bump
2016-11-02 20:52:15 +01:00
Niels
3716a2fbe8
Merge branch 'develop' into feature/jsontestsuite
2016-11-02 17:03:12 +01:00
Niels
737d43724f
Merge branch 'feature/issue329' into develop
2016-11-02 16:59:23 +01:00
Niels
59c8343851
cleanup
2016-11-02 15:44:46 +01:00
Niels
8f70525374
more test coverage
2016-10-30 17:46:00 +01:00
Niels
7adccde714
improved coverage and updated README
2016-10-30 17:10:11 +01:00
Niels
8d1e65f297
evaluated i-tests ( #344 )
2016-10-30 16:07:17 +01:00
Niels
7b4e6cf705
added implementation-specific tests ( #344 )
2016-10-30 12:08:29 +01:00
Niels
a8136c578a
fixed BOM handling #344
2016-10-29 21:08:30 +02:00
Niels
b820bb3b1f
fixed a lot of unicode errors ( #344 )
...
BOMs currently yield an error.
2016-10-29 19:35:17 +02:00
Niels
b03bbe724d
added n test cases ( #344 )
2016-10-29 14:02:33 +02:00
Niels
42ea4fb751
fixed a bug for short input files ( #344 )
...
For input files with less than 5 bytes, the parser had a bug so that
refilling the input buffer led to erasing it.
2016-10-29 13:32:36 +02:00
Niels
2fdba9de19
added "y" cases
2016-10-26 23:45:11 +02:00
Niels
a2808322c6
add test files from https://github.com/nst/JSONTestSuite
2016-10-26 18:57:56 +02:00
Niels
606098f45d
release 2.0.6
2016-10-15 16:47:45 +02:00
Niels
d91067220f
added missing overflow check for #329
2016-10-13 21:00:48 +02:00
Niels
470197bd0b
improve test coverage
2016-10-10 21:58:31 +02:00
Niels
2fa8ea0f74
started fixing #323
2016-10-08 14:27:28 +02:00
Vasil Dimov
b5128b1610
Fix usage examples' comments for std::multiset
2016-10-04 18:53:44 +03:00
Niels
d6005e59a5
added fuzzing results
2016-10-02 11:23:47 +02:00
Niels
3d104f1d43
version bump
2016-09-14 23:06:39 +02:00
Niels
6bbcdc1ec5
fixes #310
2016-09-14 22:48:12 +02:00
Niels
7b6cba23f3
results for #307
2016-09-12 21:23:12 +02:00
Niels
768d66560e
version bump
2016-09-11 23:36:59 +02:00
Niels
f922426ec3
fixed #304
2016-09-11 22:40:51 +02:00
Niels
2daab5a4c2
fixed #306
2016-09-11 22:30:08 +02:00
Niels
42be2edd4c
fixed test coverage
2016-09-01 00:29:42 +02:00
Niels
df9fd6237e
release 2.0.3
2016-08-31 21:27:23 +02:00
Niels
58cbf4b3ef
added another test case
2016-08-31 18:23:46 +02:00
Niels
ae7aaed4ac
Merge branch 'develop' into feature/iterator_range_parsing
2016-08-31 18:07:18 +02:00
Niels
a485aa8d27
cleanup and improvement of branch coverage
2016-08-30 23:44:15 +02:00
Thomas Braun
e0ff1a837c
unit-constructor1.cpp: Fix floating point truncation warning
2016-08-25 00:24:33 +02:00
Niels
1d66ab9f7a
fixed lexer issue which required null byte at the end of contiguous storage containers #290
2016-08-23 22:38:05 +02:00
Niels
cda84ba323
Merge branch 'develop' into feature/iterator_range_parsing
2016-08-21 23:15:27 +02:00
Niels
1e896eb91e
improved code coverage
2016-08-21 22:38:56 +02:00
Niels
aa7f5ad8b1
minor changes
2016-08-21 21:48:15 +02:00
Niels
585a39a235
improved branch coverage
2016-08-21 14:39:54 +02:00
Niels
b4571360df
more on #290
2016-08-21 12:35:40 +02:00
Niels
eef8059003
allowing parsing from contiguous containers
2016-08-20 20:29:33 +02:00
Niels
628a5eae50
reset build file
2016-08-17 22:33:26 +02:00
Niels
f40f81c87e
forgot a semicolon
2016-08-17 21:44:53 +02:00
Niels
c0922c7aac
/Wall
2016-08-17 21:43:28 +02:00
Niels
35f22e8596
checking MSVC compiler flags
2016-08-17 21:38:19 +02:00
Niels
a78eaa27b5
fixed unit tests
2016-08-17 21:31:59 +02:00
Niels
5e67f7af01
added a first version of a parser for #290
2016-08-15 22:44:14 +02:00
Niels
dfc2c1abe5
added assertion for contiguous memory
2016-08-14 23:38:20 +02:00
Niels
92ee1d56eb
cleanup
2016-08-14 21:59:41 +02:00
Niels
4871e39415
spell fix
2016-08-14 17:52:21 +02:00
Niels
7b42c973bd
fix for MSVC
2016-08-14 17:34:58 +02:00
Niels
c9e5d56c9c
fix for MSVC
2016-08-14 17:30:53 +02:00
Niels
01386b3977
cleanup
2016-08-14 17:23:15 +02:00
Niels
b76f5506d7
added a parser for continguous containers
2016-08-14 14:18:25 +02:00
Niels
46174879ef
clean up
2016-08-10 22:41:09 +02:00
Niels
d02e67d4a9
coveralls with lcov
2016-08-10 20:56:26 +02:00
Niels
b1c1fe9d39
added Clang 3.8
2016-08-10 16:22:53 +02:00
Niels
38f562af2a
reorganization into smaller test units
2016-08-04 22:51:08 +02:00
Niels
ff592c6d50
adjusted warning flags
2016-08-04 22:05:05 +02:00
Niels
91b6e223d9
adjusted capacity test cases
2016-08-04 22:04:55 +02:00
Niels
d80329034e
split test suite in one file per test case
2016-08-04 21:55:47 +02:00
Niels
be5cf0e3ba
forgot to pass CPPFLAGS
2016-08-04 07:33:44 +02:00
Niels
5541e6f6f9
split unit tests
2016-08-04 07:24:46 +02:00
Niels
a05df038cd
prepared release
2016-07-31 13:37:04 +02:00
Niels
148fed1e63
minor change
2016-07-25 18:06:59 +02:00
Niels
a01ec918ac
minor changes
2016-07-25 16:21:15 +02:00
Niels
369671f028
added more Unicode tests
2016-07-25 16:05:58 +02:00
Niels
84673b7de3
added test case from issue #283
2016-07-24 11:08:39 +02:00
Niels
e2aa2d2189
improved test coverage
2016-07-24 11:01:47 +02:00
Niels
75dbbc55cf
started to implement #283
2016-07-23 09:59:09 +02:00
Niels
ddfe86cc49
fixed a bug that was found in the discussion of #274
2016-07-22 21:40:58 +02:00
Niels
4e7501e59a
minor changes
...
- fixed a bug that did not discard strings with control characters
between 0x10 and 0x1f
- added termination proofs for two important loops
- made get_ref() constexpr
2016-07-22 15:34:45 +02:00
Niels
1286d35767
make sure precision is reset on output streams during serialization
2016-07-20 20:07:45 +02:00
Niels
28644bada0
removed std::out output from test cases
2016-07-01 17:25:56 +02:00
Niels
d2475f9010
bumped version number
2016-06-28 21:44:03 +02:00
Niels
7214243d89
reset locale (for #272 )
2016-06-28 19:18:23 +02:00
Niels
420659f187
addressing #272
2016-06-28 10:42:17 +02:00
Niels
0767290c26
off-by-one error in the documentation
2016-06-24 08:06:41 +02:00
Niels
04a80a8f60
Merge branch 'develop' into feature/undo-number-roundtrip
2016-06-23 05:57:41 +02:00
Niels
7cff6c8771
Merge branch 'develop' into feature/issue269
...
# Conflicts:
# README.md
2016-06-23 00:04:55 +02:00
Niels
6f76c9237b
overworked ChangeLog and README
2016-06-22 22:20:55 +02:00
Niels
ecf84dddb1
test case for #269
2016-06-22 20:40:15 +02:00
Niels
90b46868b5
Merge branch 'develop' into feature/undo-number-roundtrip
2016-06-19 18:27:07 +02:00
Niels
8c48ef1f73
updated to Catch v1.5.6
2016-06-19 18:25:43 +02:00
Niels
b47fdf88ee
Merge branch 'develop' into feature/undo-number-roundtrip
2016-06-19 17:59:53 +02:00
Niels
4ff27b207e
fixed two typos
2016-06-19 17:56:58 +02:00
Niels
ad7a419a03
removed roundtripping of floats ( #230 )
2016-06-19 17:13:13 +02:00
Robert Marki
639d63217e
Define CMake/CTest tests
...
Instead of copying the test executable and the JSON files used by
the tests at install time, define CMake/CTest tests for running
the json_unit executable from any build directory with the project's
source directory as its working directory.
- call enable_testing in the main lists file to allow the definition
of tests
- remove install commands from the test directory's lists file
- define two tests
- json_unit_default for running the default tests by executing
json_unit without any arguments
- json_unit_all for running all the tests by executing json_unit
with the "*" argument
- update the AppVeyor configuration file to use the new testing method
2016-05-18 11:53:49 +02:00
Chris Kitching
527a69bb64
Install the test binary and test data. Fixes #241
...
The resulting install tree, when tests are enabled, looks like this:
```
.
├── cmake
│ ├── nlohmann_jsonConfig.cmake
│ ├── nlohmann_jsonConfigVersion.cmake
│ └── nlohmann_jsonTargets.cmake
├── include
│ └── nlohmann
│ └── json.hpp
└── test
├── bin
│ └── json_unit
└── data
├── json_nlohmann_tests
│ ├── all_unicode.json
│ └── bom.json
├── json.org
│ ├── 1.json
│ ├── ...
├── json_roundtrip
│ ├── roundtrip01.json
│ ├── roundtrip02.json
│ └── ...
├── json_tests
│ ├── fail10.json
│ └── ...
└── json_testsuite
└── sample.json
```
It has the property that you can invoke the test binary from the
root of the install tree and the tests work correctly (you no
longer depend on the test binary being run inside the source
tree).
If tests are disabled, the entire `test/` subtree is omitted.
Notice how that yields exactly what you want for using this
library in other projects.
I do not believe I need to update travis due to this change, as the
evil Makefile continues to do in-tree builds. I expect I'll find
out soon enough.
2016-05-11 01:43:42 +01:00
Chris Kitching
af76508fe7
Introduce structure to the test/ directory
...
This introduces a clear separation between test data and test
binaries. Test data is moved into test/data, and the test binaries
move into test/src. A new CMake script specific to building the
tests is introduced in /test to slightly clean up the toplevel
one.
As well as tidying things up, this makes the next step trivial...
2016-05-11 01:30:08 +01:00
Chris Kitching
bf7b6d15c7
Unset execute bit on sample.json
2016-05-11 01:10:29 +01:00
Niels
9ecf83f630
working on #235
2016-05-08 20:28:20 +02:00
Niels
fadf286653
added test case for std::bad_alloc
2016-05-08 14:35:32 +02:00
Niels
85a30813c8
removed unnecessary code (numbers must not begin with "+")
2016-05-07 20:22:58 +02:00
Niels
c04275966f
improved test coverage
2016-05-07 18:33:43 +02:00
Niels
f4ecceab19
cleanup
2016-04-30 00:12:19 +02:00
Niels
1d3b4dd158
added test cases
2016-04-30 00:03:47 +02:00
Niels
5e0bf75d60
cleanup, test, and diff
2016-04-25 23:17:04 +02:00