John Keiser
bad582c2d3
Add value.raw_json_token()
2021-03-05 09:07:41 -08:00
John Keiser
f0e92e3bdd
Pass "capacity" straight to iterate, support std::string
2021-03-03 12:51:00 -08:00
John Keiser
3db1a214ce
Support user-provided buffers via promise_padded
2021-03-03 12:50:56 -08:00
John Keiser
9944db6d73
Move json_type to ondemand to prevent target mismatch inline errors
2021-03-02 18:31:17 -08:00
John Keiser
2ed24666b5
Add value.type()
2021-03-02 17:02:50 -08:00
Daniel Lemire
036151c1e3
Test that we can copy the iterators. ( #1466 )
2021-03-01 18:46:50 -05:00
Daniel Lemire
9577c54999
Provide the CMake install the necessarily information (and flags) to hand Windows DLL and add Windows installation tests ( #1457 )
...
* This gives the CMake install the necessarily information (and flags) to know
whether we have a Windows DLL and in such cases how to handle the linkage.
2021-02-26 16:17:05 -05:00
John Keiser
bcab8d3abf
Check for end object/array at top level
...
This avoids a very unlikely buffer overrun that can occur in a particular kind of invalid JSON:
- the document is invalid with an unclosed top level array or object
- the last thing in the document is a number that ends at EOF
- the padding is filled entirely with numeric digits
2021-02-22 09:35:21 -08:00
John Keiser
9d747642fe
Merge pull request #1452 from simdjson/jkeiser/safe-iter-fix
...
Fix bug reporting out of order iteration
2021-02-22 09:34:49 -08:00
John Keiser
814726e5d4
Merge pull request #1432 from simdjson/jkeiser/safe-lookup
...
Alert user when they use object indexing incorrectly
2021-02-22 09:31:59 -08:00
Daniel Lemire
81609393f1
Fixing issue 1449. ( #1451 )
2021-02-21 16:33:05 -05:00
John Keiser
74d6658f39
Make out of order iteration tests actually test errors in the loop
2021-02-21 11:43:36 -08:00
John Keiser
3076de0405
Use SIMDJSON_DEVELOPMENT_CHECKS instead of SIMDJSON_PRODUCTION
...
Don't enable in retail
2021-02-20 11:46:01 -08:00
John Keiser
4a0a0ed4c6
Split more tests into separate methods
2021-02-20 11:22:24 -08:00
Daniel Lemire
610b3ad302
Adds Visual Studio 2017 to CI (for real) and adapt our build/tests ( #1444 )
2021-02-15 19:49:12 -05:00
Daniel Lemire
4c63a929bc
This makes it possible to a have document instance (DOM) that is separate from the parser if you would like. ( #1430 )
...
* This makes it possible to a have document instance that is separate from the parser if you would like.
2021-02-10 14:44:53 -05:00
David CARLIER
6e9ada2d6c
unit test macos build fix ( #1434 )
2021-02-08 14:12:39 -05:00
John Keiser
9651efe626
Split up tests for compile times
2021-02-06 11:07:14 -08:00
John Keiser
14315ec5cd
Default SIMDJSON_PRODUCTION to OFF for bare header usage
2021-02-06 11:06:37 -08:00
John Keiser
a33bf40a7d
Add tests for sibling indexing detection
2021-02-05 16:39:52 -08:00
John Keiser
3801ea7777
Disable all OUT_OF_ORDER_ITERATION checks when SIMDJSON_API_USAGE_CHECKS
...
is off
2021-02-05 16:39:44 -08:00
John Keiser
e4626d233c
Descend into fields at the value position, not the key
2021-02-05 10:18:01 -08:00
John Keiser
9934f65987
Store start index of each depth for safety
2021-02-05 10:17:28 -08:00
John Keiser
b2de2dfd1b
Merge pull request #1416 from simdjson/jkeiser/safe-iterators-2
...
Add safety checks for out of order array/object iteration+indexing
2021-02-05 09:47:03 -08:00
John Keiser
3f2639a655
Merge pull request #1414 from simdjson/jkeiser/array-assert
...
Fix #1409 (assert when trying to get one value as multiple types)
2021-02-05 09:45:49 -08:00
Daniel Lemire
5449365658
This should make issue 1370 easier to track. ( #1429 )
...
* This should make issue 1370 easier to track.
* Avoiding exceptions.
2021-02-02 16:12:16 -05:00
Daniel Lemire
777202e1f1
Why would you use a reference when looping? ( #1422 )
...
* Why would you use a reference?
* I missed a few cases.
2021-02-01 12:30:36 -05:00
John Keiser
1bfbb6448a
Check out-of-order error in object index
2021-01-26 20:49:14 -08:00
John Keiser
fe726b0f80
Split up ondemand_dom_api_tests for sanitize build times
2021-01-26 19:42:37 -08:00
John Keiser
18ecc0032d
Reenable test that is now working
2021-01-26 15:15:09 -08:00
John Keiser
1a1532c8cc
Return INCORRECT_TYPE when numbers fail to parse
...
Also add tests for trying to get multiple types in a row
2021-01-26 14:59:13 -08:00
John Keiser
e6d2b7759a
Fix assertion when getting array after failing to get a scalar
...
Also remove distinction between & and && for array start, acting like
other types
2021-01-26 14:09:54 -08:00
Daniel Lemire
2a714f4e37
Hide the std::pair inheritance in our result instances ( #1396 )
...
* Fixing issue 1243
* The tie must go.
* Having std::pair be a protected inheritance breaks on demand.
* Putting it back.
* You really want to use emplace.
* Fixing one botched test.
* Prettier test.
* Using safer code.
* Fixing unsafe code.
* Simplifying the fuzzer.
* Trying another way.
* Ok. It should work without exceptions.
* Removing trailing spaces.
2021-01-18 12:00:02 -05:00
Daniel Lemire
73063e2dab
This adds a test to explain better the issue 1341: Support conversion of simdjson_result lvalue to dom::element ( #1397 )
...
* This adds a test to explain better the issue.
* Guarding it since it can throw.
2021-01-16 15:08:27 -05:00
John Keiser
55faf4c5bc
Recommend simdjson::ondemand over simdjson::builtin::ondemand ( #1380 )
...
Co-authored-by: Daniel Lemire <lemire@gmail.com>
2021-01-14 17:33:49 -05:00
Daniel Lemire
990da22249
Merge branch 'master' into jkeiser/ondemand-scalar-order
2021-01-13 14:21:16 -05:00
ihsinme
84b0e84447
fix function was exited without releasing ( #1389 )
...
* Update jsoncheck.cpp
* Update minefieldcheck.cpp
* Update jsoncheck.cpp
* Update minefieldcheck.cpp
2021-01-12 18:08:27 -05:00
Nicolai Grodzitski
095691160b
Add element representation trivially_copyable property test ( #1377 )
...
* Add element representation trivially_copyable property test
Releates to issue #1374
* Change test label
2021-01-11 19:06:59 -05:00
John Keiser
3279c2f15b
Remove unnecessary "try_get_XXX" methods
...
Also don't distinguish between & and && (instead, advance the first time
you encounter a scalar no matter what)
2021-01-11 15:19:26 -08:00
John Keiser
0f515785c6
Support reading scalars out of order
2021-01-11 15:17:46 -08:00
Daniel Lemire
7dbe4caf3f
Taking a float and adding hundreds of zeros, you may get a truncated value that is just one over the desired value (bug fix) ( #1388 )
...
* Found a bug where if take some float and add many zeros, you may get a truncated value that is just one over the desired value.
2021-01-11 17:07:25 -05:00
John Keiser
0039c5b981
Disallow parser.iterate("1"_padded), as it won't work
2021-01-01 19:18:00 -08:00
John Keiser
17f4f82827
Ondemand usage docs (and associated tests)
...
Also disallowed parsing a temporary padded_string, since the JSON *must*
live through the whole parse.
2021-01-01 19:17:58 -08:00
John Keiser
158a3c53d8
Merge pull request #1351 from simdjson/jkeiser/unordered-lookup
...
Make `object["field"]` order-insensitive in On Demand
2020-12-24 13:33:09 -08:00
John Keiser
92443772d2
Enable all acceptance tests on mingw
2020-12-23 09:14:45 -08:00
John Keiser
041d59cc17
Create acceptance_tests, all_tests, etc. make targets
...
And use them for mingw build and test
2020-12-23 09:14:45 -08:00
John Keiser
a405173d59
Break up ondemand_basictests into smaller executables
...
(Allows for faster compilation speeds)
2020-12-23 09:14:44 -08:00
John Keiser
ad4f718e0c
Make assert test succeed (not run anything) in Release builds
2020-12-21 10:52:01 -08:00
John Keiser
a1cf588d5f
Fix GCC 7 warning when inlining does its job
2020-12-21 09:19:07 -08:00
John Keiser
195acc3e45
Add find_field / find_field_unordered to object
2020-12-20 11:39:50 -08:00