Commit graph

420 commits

Author SHA1 Message Date
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
Niels
fb54e212b6 clean up and added tests 2016-04-24 19:03:33 +02:00
Niels
09e9f6dcd4 implemented "move" 2016-04-24 17:43:27 +02:00
Niels
855cf2307b extended "add" to cope with arrays 2016-04-24 16:51:06 +02:00
Niels
397ada22d3 implemented remove 2016-04-20 16:52:00 +02:00
Niels
fa03cf0c63 replace and copy 2016-04-20 15:41:33 +02:00
Niels
70fc5835cb started implementing JSON Patch (RFC 6902) 2016-04-18 22:41:36 +02:00
Niels
1dee40a969 fixed test case 2016-04-17 22:34:39 +02:00
Niels
6268287940 improved documentation and test coverage 2016-04-17 22:08:21 +02:00
Niels
7034ae2486 improved test coverage 2016-04-17 19:12:12 +02:00
Niels
0835eb293f improved RFC compliance and code coverage 2016-04-17 18:54:54 +02:00
Niels
40e899a819 cleanup and documentation 2016-04-17 17:39:35 +02:00
Niels
f834965b44 implemented deflatten function 2016-04-16 20:45:40 +02:00
Niels
007359675b added a flatten function 2016-04-16 16:39:20 +02:00
Niels
3401954f5b cleaned up API 2016-04-16 14:02:14 +02:00
Niels
3a3e064287 Merge branch 'develop' into feature/json-pointer 2016-04-16 12:19:31 +02:00
Niels
76a5a776eb cleanup after #234 2016-04-16 12:19:10 +02:00
Niels
94af8abdff overworked reference token parsing 2016-04-13 23:23:54 +02:00
Niels
2cb925c186 adding support for escaped reference tokens 2016-04-13 17:41:19 +02:00
Robert Marki
2197f5f0a6 Make the indirection and dereference operators of iterator const
fixes #233
2016-04-13 13:49:53 +02:00
Niels
726051e9b7 very first draft of a JSON pointer API 2016-04-11 23:17:03 +02:00
Niels
a744c62696 made tests independent of "C" locale 2016-04-05 22:28:27 +02:00
Niels
31bccc83b9 fixed locale problems 2016-04-05 21:55:51 +02:00
Niels
9c233be567 merged #201 2016-04-03 14:08:38 +02:00
Niels
2f63e5fb45 added copyright information to files to make release more self-contained 2016-03-25 17:41:36 +01:00
Niels
f965c4c35b improved code coverage 2016-02-14 22:56:51 +01:00
Niels
3a92559fa9 cleanup 2016-02-14 22:24:45 +01:00
Niels
7f4736b546 added serialization to fuzz testing 2016-02-14 21:36:56 +01:00
Niels
a3eecdc383 updated Catch to v1.3.4 2016-02-14 21:36:43 +01:00
Niels
153e105164 cleanup after #207 2016-02-14 18:38:29 +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
8b1a777d36 reverted change wrt. Erasable concept 2016-02-05 22:37:28 +01:00
Niels
2ff2e10660 checking Erasable concept 2016-02-05 22:30:37 +01:00
Niels
2c720b26ab added a constructor from an input stream 2016-02-05 19:24:42 +01:00
Niels
104c4b5286 improve code coverage 2016-01-31 15:04:38 +01:00
Niels
22127a4b85 moved documentation to index markdown file 2016-01-30 22:05:01 +01:00
Trevor Welsby
561accb068 Fixed issue #199 2016-01-30 12:41:12 +10:00
Niels
707732a53e clean up after #193 2016-01-26 19:50:49 +01:00
Niels
e46cc6327f Merge pull request #193 from twelsby/issue178
Issue #178 - Extending support to full uint64_t/int64_t range and unsigned type (updated)
2016-01-26 19:40:16 +01:00
Trevor Welsby
a4a88b1b7d Issue #195 - update Travis to Trusty due to gcc/clang strtod() bug 2016-01-26 08:36:18 +10:00
Trevor Welsby
281492c581 Merge upstream commits and resolve conflicts 2016-01-25 02:42:20 +10:00
Niels
54a4139157 cleanup after #191 2016-01-24 17:33:46 +01:00
Trevor Welsby
4620960b72 Disable problematic test for GCC/clang, remove debug dump from unit.cpp 2016-01-25 02:22:46 +10:00
Trevor Welsby
19918b948d Fix typo in preprocessor defined/!defined 2016-01-25 02:07:49 +10:00
Trevor Welsby
421affd06e Merge upstream commits and resolve conflicts 2016-01-25 02:01:01 +10:00
Trevor Welsby
4d6985d4e2 Disable problematic test for GCC/clang, remove debug dump from unit.cpp 2016-01-25 01:53:32 +10:00
Trevor Welsby
d7ef2ccffd Issue #178 - fully support int64_t/uint64_t numbers, add unsigned type 2016-01-25 01:04:37 +10:00
Niels
8a0490a011 cleanup 2016-01-24 13:04:55 +01:00
Niels
e00b00fea8 Merge pull request #190 from twelsby/issue185
fixed #185 - remove approx() and use #pragma to kill warnings
2016-01-24 12:55:40 +01:00
Niels
600ad330c5 cleanup after PR #189 2016-01-24 11:00:54 +01:00
Trevor Welsby
f79d52b973 DEBUG ONLY: DUMP INFO FROM TRAVIS 2016-01-24 19:15:30 +10:00
Trevor Welsby
a1c6f16bd3 Fix Issue #186 - add overload wrappers for strto(f|d|ld) 2016-01-24 17:00:11 +10:00
Trevor Welsby
3a1403409f Issue #185 - remove approx() and use #pragma to kill warnings 2016-01-23 17:45:30 +10:00
Trevor Welsby
bd0f3001c6 Fix typo in new unit.hpp comments 2016-01-23 17:31:58 +10:00
Trevor Welsby
7e3245786c Fixed issue #171 - added extra operator[] template overloads 2016-01-23 17:03:45 +10:00
Niels
a04bd4f851 cleanup after #184 2016-01-20 21:14:58 +01:00
dariomt
e1645a09e9 Merge branch 'master' of https://github.com/nlohmann/json 2016-01-18 10:08:58 +01:00
Niels
7371c71d2a using CHECK_THROWS_WITH to check exceptions (#160) 2015-12-27 15:30:30 +01:00
Niels
d6b8830e03 more work on exceptions (#160) 2015-12-26 13:17:32 +01:00
Niels
dc8ab92552 more tests for exceptions (#160) 2015-12-25 13:04:40 +01:00
Niels
76e5e29eda overworked exceptions and tests (#160) 2015-12-25 11:46:18 +01:00
Niels
70493a10d1 iterator_wrapper for const objects (#83) 2015-12-23 08:21:29 +01:00
Niels
00f9296db5 some cleanup for #83 2015-12-22 18:07:51 +01:00
Niels
67c2d90a21 working on #160 2015-12-22 13:27:40 +01:00
Niels
4351698c83 re-adding const version operator[] (#135, #159)
It was a good idea to implement a const version of operator[] it in the
first place. I was a pity that this implementation was flawed. It was a
mistake to remove the const version completely. This commit
re-introduces the const version. My apologies for all the inconvenience.
2015-12-21 08:42:42 +01:00
Niels
9def0186be upgraded Catch to v1.3.1 2015-12-20 15:42:01 +01:00
Niels
457bfc2401 work on #144 2015-12-20 15:30:07 +01:00
Niels
cd04a7d3e9 fix for #133
added value() function to get object value at given key or a default
value if key does not exist
2015-12-15 08:38:54 +01:00
Niels
258f04c561 fixed #154 (no more warnings for incomplete switches) 2015-12-14 16:32:37 +01:00
Niels
a70a7a8001 fixed #135: operator[] now only works on nonconst JSON objects 2015-12-13 11:26:55 +01:00
Niels
9da8770f3a ignore UTF-8 byte order mark (fixes #152) 2015-12-07 22:27:53 +01:00
Robert Marki
ec7a1d8347 Fix character skipping after a surrogate pair
In a string the first character following a surrogate pair is skipped by the
lexer, but the rest of the string is parsed as usual.
2015-11-13 13:13:46 +01:00
Niels
746c1a7142 cleanup 2015-10-17 12:51:59 +02:00
dariomt
4b8a822f33 Merge branch 'get_ref' 2015-10-16 16:42:03 +02:00
dariomt
04cc7d5a05 doh! disable test correctly only for MSVC 2015-10-16 16:36:34 +02:00
dariomt
bd2783f45c Added get_ref()
Same as get_ptr() but for references.
If the type is incompatible it throws (get_ptr() returns null).
Implemented in terms of get_ptr().
2015-10-16 15:23:57 +02:00
dariomt
9d45aafc2c disabled "CopyAssignable" test for MSVC in Debug mode, see #125
STL iterators used by json::iterator don't pass this test in Debug mode.
The test does pass in Release mode, so I felt the best thing to do was selectively disable that test.
2015-10-07 18:31:08 +02:00
Niels
b58a93b8dd merged #111 2015-08-14 14:45:13 +02:00
Niels
fadccc34eb fixed iterator_wrapper 2015-08-13 10:08:55 +02:00
Niels
66ec58639b removed failing tests 2015-08-06 23:02:52 +02:00
Niels
b0eb34394c added test cases for #83 2015-08-06 22:36:08 +02:00
Niels
c910853304 fixed build 2015-08-02 21:49:42 +02:00
Niels
b00e627c30 fixed build 2015-08-02 21:47:11 +02:00
Niels
9355dce063 fixed build 2015-08-02 21:40:25 +02:00
Niels
e64dc532ab fixed build 2015-08-02 21:35:07 +02:00
Niels
b5a05e1121 add a test for the iterator_wrapper 2015-08-02 21:27:02 +02:00
Niels
359cf7993f closed #75
minor changes, but the core idea remains the same
2015-07-26 18:41:58 +02:00
Niels
5993ff9976 updated catch 2015-07-26 10:41:38 +02:00
Niels
5084159048 added changes from #105: MSVC fixes
- additionally, switch off optimization flags to maybe allow build to
complete on AppVeyor
2015-07-16 18:45:19 +02:00
Niels
1c8d5dc211 added another insert function 2015-07-12 22:47:08 +02:00
Niels
092bf39f53 added test case 2015-07-12 20:40:46 +02:00
Niels
186aefb8f2 added first insert functions 2015-07-12 18:28:23 +02:00
Niels
b2efd50a03 more documentation 2015-07-12 17:08:51 +02:00
Niels
19d550c044 new implementation for (const_)reverse_iterator to cope with issue #93 2015-07-07 23:31:43 +02:00
Niels
12d174d424 fixed #100 2015-07-06 23:21:54 +02:00
Niels
2bc5d893c8 refactored generic iterator into a new class primitive_iterator_t 2015-07-05 22:22:15 +02:00
Niels
82a6995306 fixed #101 2015-07-01 23:08:54 +02:00
Niels
abd741708d more tests 2015-06-30 00:12:18 +02:00
Niels
3f6b10733b addressed static analysis warnings #94 2015-06-28 14:02:47 +02:00
Niels
c58c5aa8c9 fixed #97
- added functions is_structured() and is_primitive()
- updated documentation
- updated test cases
2015-06-27 18:43:11 +02:00
Niels
3ffedea5c4 minor changes 2015-06-25 00:40:16 +02:00
Niels
6e6dd5f45d added test cases for the last uncovered lines 2015-06-24 15:46:50 +02:00
Niels
40312fb07b worked on #91
- implemented `get_ptr` function to return pointer to value member
- overworked `get` function to support pointer types
- added test cases
- added documentation (see
http://nlohmann.github.io/json/classnlohmann_1_1basic__json.html) with
examples
2015-06-24 15:16:32 +02:00
Niels
457572184c more documentation
In this commit, also the semantics for values skipped via the parser
callback has changed. Now, the top-level value is returned as “null”
instead of “discarded”.
2015-06-24 12:15:51 +02:00
Niels
bd8150c58e updated Catch 2015-06-20 15:47:26 +02:00
Niels
64c467e940 fix warnings possible loss of data (from #88) 2015-06-20 14:15:15 +02:00
Niels
51edad3962 fixed #89 without breaking #71 2015-06-15 19:45:25 +02:00
Niels
8e9a711996 closes #90 2015-06-15 16:37:49 +02:00
Niels
1375162562 exclude Unicode tests from Valgrind to avoid timeout 2015-06-15 05:46:12 +02:00
Niels
2e9a13bd88 added extensive Unicode tests 2015-06-14 23:17:49 +02:00
Niels
6fb829062c some maintenance
- unified used exception types
- removed any camel case names
2015-06-14 19:35:20 +02:00
Niels
bc55e496de test suite is not portable :-( 2015-06-13 13:01:10 +02:00
Niels
bd0cb65b7a fixed more float parsing cases 2015-06-13 12:42:18 +02:00
Niels
29512ae989 added test case for #82 2015-06-04 20:07:33 +02:00
Niels
9dbb4402fb improved performance for dump() 2015-06-03 23:34:10 +02:00
Niels
e2035df957 added unit test for issue #76 2015-05-30 16:47:21 +02:00
Niels
5ed80d308d some parsing performance improvements 2015-05-09 22:49:21 +02:00
Niels
abb8653115 more test cases 2015-05-09 16:58:06 +02:00
Niels
03634cacbc cleanup 2015-05-09 15:38:58 +02:00
Niels
9cdd278f45 overworked code for pull request #71 2015-05-09 15:29:20 +02:00
Niels
2b4e461702 fixed string definition 2015-05-09 15:09:52 +02:00
Niels
1f381d496d overworked coverage 2015-05-09 14:54:33 +02:00
Niels
bb142d6cae added test cases 2015-05-09 14:37:22 +02:00
Niels
869035a6c9 added compliance test cases 2015-05-09 13:56:51 +02:00
Niels
9f9d293bad valgrind still makes problems 2015-05-06 21:32:41 +02:00
Niels
bef256600c added test cases 2015-05-06 20:46:04 +02:00
Niels
2cfc93fc76 overflows are handled wrong by Valgrind 2015-05-06 20:21:06 +02:00
Niels
17609f244d fixed #70 2015-05-06 19:52:12 +02:00
Niels
2b825760b5 removed failing test case 2015-05-03 21:37:14 +02:00
Niels
07dd3af848 another try 2015-05-03 21:28:57 +02:00
Niels
370929ac08 overworked test case 2015-05-03 21:10:22 +02:00
Niels
c458bf18e6 more test cases 2015-05-03 20:59:11 +02:00
Niels
106705ed73 more tests 2015-05-03 20:42:24 +02:00
Niels
10bbb77491 test case for filter function 2015-05-03 20:18:16 +02:00
Niels
1143094e4c testing the callback function 2015-05-03 20:07:31 +02:00
Niels
093b97efc4 more tests 2015-05-03 19:55:45 +02:00
Niels
f66e603686 more test cases 2015-05-03 18:59:58 +02:00
Niels
ab1ff9de53 added more test cases 2015-05-03 18:27:43 +02:00