Commit Graph

165 Commits

Author SHA1 Message Date
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
Krzysztof Woś
b9c3b8d688 Exit with an error if re2c is not available
Instead of overwriting src/json.hpp with an empty file
2017-03-20 16:00:58 +09:00
Niels Lohmann
483a58f625
🚨 added pedantic flags for GCC
With GCC 7, there are even more diagnostic flags.
2017-03-16 18:35:45 +01:00
Niels Lohmann
21ec0e7806
🔨 added user-defined exception 110 2017-03-06 21:00:13 +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
8cec55a271
🚧 fixed more warnings 2017-02-22 18:14:29 +01:00
Niels Lohmann
c8191c8172
🔨 further cleanup 2017-02-12 18:50:17 +01:00
Niels Lohmann
db33629990 💄 cleanup after #410 2017-01-01 21:34:58 +01:00
Daniel Cohen
010ea126f3 going to try clang_sanitize with libstdc++ with g++-6 implementation
Conflicts:
	.travis.yml
	Makefile
2016-12-30 14:24:22 +02:00
Niels Lohmann
e3b036348b 🚧 added targets for parallel AFL fuzzing 2016-12-25 16:36:43 +01:00
Niels Lohmann
1399abc583 🚧 added MessagePack fuzz target 2016-12-25 16:18:56 +01:00
Niels Lohmann
e4cc62e653 🐛 fixed Makefile to work with proper CBOR files 2016-12-25 16:07:10 +01:00
Niels Lohmann
f87f4c06f9 🚧 cleanup 2016-12-22 12:10:52 +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
e1f98fbfc0 🚧 splitting tests into several binaries 2016-11-27 16:19:26 +01:00
Niels
ed611119d9 📈 reducing benchmark variance (#365) 2016-11-23 08:47:40 +01:00
Niels
b820bb3b1f fixed a lot of unicode errors (#344)
BOMs currently yield an error.
2016-10-29 19:35:17 +02:00
Niels
29c5f32d42 fixed performance degradation (#272) 2016-08-29 22:36:33 +02:00
Niels
d2564c6100 added cppcheck target for travis 2016-08-18 18:29:19 +02:00
Niels
bd75ef9f27 added check-fast flag 2016-08-04 22:05:16 +02:00
Niels
d80329034e split test suite in one file per test case 2016-08-04 21:55:47 +02:00
Niels
5541e6f6f9 split unit tests 2016-08-04 07:24:46 +02:00
Niels
263e6af48d switch off assertions for benchmarks 2016-07-31 23:03:14 +02:00
Niels
a05df038cd prepared release 2016-07-31 13:37:04 +02:00
Niels
4c98c971b8 added benchmarks for numbers 2016-07-20 23:06:45 +02:00
Niels
6542ae5766 fixed re2c warnings 2016-06-23 22:49:48 +02:00
Niels
04e1e7b586 cleanup 2016-05-29 14:56:08 +02:00
Niels
aa8aa3ba9f overworked coverity stuffy 2016-05-29 14:06:43 +02: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
Niels
76a5a776eb cleanup after #234 2016-04-16 12:19:10 +02:00
Niels
f160f33fb5 update from master 2016-02-14 21:44:00 +01:00
Niels
153e105164 cleanup after #207 2016-02-14 18:38:29 +01:00
Niels
a69b1a6f0b added noexcept and constexpr 2016-02-14 16:42:48 +01:00
Michael Macnair
9e500b49ac Add support for afl-fuzz testing
"make fuzz" creates a simple executable that de-serialises stdin
and re-serialises to stdout.
"make fuzz_testcases" extracts the smaller json test cases into
a testcases directory.

The library can then be fuzzed as follows:
    CC=afl-clang-fast make fuzz
    make fuzz_testcases
    mkdir out
    afl-fuzz -i testcases -o out ./fuzz
2016-02-12 09:35:08 +00:00
Niels
ff6f723195 removed token 2016-01-26 23:30:51 +01:00
Niels
3dfa56795f added note 2016-01-26 23:27:07 +01:00
Niels
1c80c2231f linked releases in ChangeLog 2016-01-26 23:10:52 +01:00
Niels
89b07bd3af added (generated) changelog 2016-01-26 22:59:57 +01:00
Niels
5bc1b65676 clean up (for #154) 2015-12-14 16:58:49 +01:00
Niels
258f04c561 fixed #154 (no more warnings for incomplete switches) 2015-12-14 16:32:37 +01:00
Niels
bb0d01e597 better compiler matrix 2015-08-21 19:05:47 +02:00
Niels
c85dbef98f more documentation 2015-06-21 22:42:32 +02:00
Niels
91c330ae01 reorganized repo 2015-06-21 21:24:03 +02:00
Niels
4bb5126502 more documentation 2015-06-21 18:30:08 +02:00
Niels
d972483b33 overworked documentation configuration 2015-06-21 13:39:10 +02:00
Niels
f6040ea3bc minor change 2015-06-21 13:16:52 +02:00
Niels
e0fa56f84f clean up 2015-06-21 13:14:39 +02:00
Niels
332b10998a clean up 2015-06-21 13:12:17 +02:00
Niels
022c11bf86 broke Makefile 2015-06-21 12:48:18 +02:00
Niels
d200abfb5f automatic commit 2015-06-21 12:47:35 +02:00
Niels
e289eada49 added target to update Doxygen 2015-06-21 12:45:46 +02:00
Niels
c40e85920f more documentation 2015-06-21 09:44:12 +02:00
Niels
bb13c931b3 more documentation 2015-06-21 02:14:01 +02:00
Niels
e63c508172 overworked doxygen 2015-06-21 00:59:33 +02:00
Niels
9dbb4402fb improved performance for dump() 2015-06-03 23:34:10 +02:00
Niels
cb873a42ed added Benchpress benchmarks 2015-06-02 23:57:45 +02:00
Niels
1068ad106b fixed Makefile 2015-04-27 22:35:45 +02:00
Niels
ae2676e7f0 fixed Makefile 2015-04-26 22:25:38 +02:00
Niels
f874b5f0f8 clean up
- removed m_final member
- parse_internal now takes a reference to a basic_json object to fill
with data
- header is automatically regenerated if re2c file is changed
2015-04-26 21:43:47 +02:00
Niels
a372937424 fixed some small issues 2015-04-26 13:37:01 +02:00
Daniel Kopecek
ad6ad4ae1e Fix compilation of json_unit with GCC 5
Addressing:
```
+ make json_unit
g++ -std=c++11  -Wall -Wextra -pedantic -Weffc++ -Wcast-align -Wcast-qual -Wctor-dtor-privacy -Wdisabled-optimization -Wformat=2 -Winit-self -Wmissing-declarations -Wmissing-include-dirs -Wold-style-cast -Woverloaded-virtual -Wredundant-decls -Wshadow -Wsign-conversion -Wsign-promo -Wstrict-overflow=5 -Wswitch -Wundef -Wno-unused -Wnon-virtual-dtor -Wreorder -Wdeprecated -Wfloat-equal  -I src -I test -Dprivate=public test/unit.cpp  -o json_unit
In file included from test/catch.hpp:65:0,
                 from test/unit.cpp:11:
/usr/include/c++/5.0.0/sstream:300:7: error: 'struct std::__cxx11::basic_stringbuf<_CharT, _Traits, _Alloc>::__xfer_bufptrs' redeclared with different access
       struct __xfer_bufptrs
```
2015-04-14 16:02:49 +02:00
Niels
43417c350b fixed #42 (removed equality comparisons for floats) 2015-03-23 23:03:48 +01:00
Niels
f2957dc3bf fixed #45 (added count function for keys in objects) 2015-03-22 19:07:43 +01:00
Niels
d87e770767 forgot Makefile 2015-02-13 22:12:27 +01:00