922 Commits

Author SHA1 Message Date
Max Bruckner
5f783fff11 cJSON_Utils: Add gcc pragma to use default visibility for system headers 2017-03-03 00:45:50 +01:00
Max Bruckner
7969af6434 Merge pull request #124 from DaveGamble/print-bool-return
Print functions: Return boolean values instead of pointers
2017-03-03 00:42:01 +01:00
Max Bruckner
0bb1843925 print_value: return as soon as possible 2017-03-03 00:40:02 +01:00
Max Bruckner
5ea4fad263 print_string: return boolean instead of pointer 2017-03-03 00:33:11 +01:00
Max Bruckner
1749de02f8 print_number: return boolean instead of pointer 2017-03-03 00:26:58 +01:00
Max Bruckner
748f4bfd4f print_object: return boolean instead of pointer 2017-03-03 00:21:34 +01:00
Max Bruckner
bea1d102fd print_array: return boolean instead of pointer 2017-03-03 00:16:54 +01:00
Max Bruckner
d441fa05b3 print_value: return boolean instead of pointer 2017-03-03 00:11:43 +01:00
Max Bruckner
3fe72cf2b8 fuzzing: afl.c: Fix printing usage 2017-03-02 23:57:05 +01:00
Max Bruckner
d8d0ae66d3 print_number: Fix incorrect output pointer 2017-03-02 23:57:01 +01:00
Max Bruckner
9d07917feb utf16_literal_to_utf8: Eliminate Duff's Device
This fixes -Wimplicit-fallthrough warnings with GCC7.
2017-03-02 13:46:31 +01:00
Max Bruckner
2c45ad7816 Squashed 'tests/unity/' changes from 2988e98..1f52255
1f52255 Merge pull request #267 from FSMaxB/fix-wconversion
7bce0b4 Fix warning with ubsan and -Wconversion
b5da224 Merge pull request #266 from FSMaxB/fix-double-promotion
1bf22d3 Fix warnings with -Wdouble-promotion

git-subtree-dir: tests/unity
git-subtree-split: 1f522558a6c4577aa937341bf856ba3b1436768a
2017-03-01 23:20:30 +01:00
Max Bruckner
ad5abf4c5b Update unity with fixes for compiler warnings 2017-03-01 23:20:30 +01:00
Max Bruckner
6405fd15e3 CMake: Set default visibility to hidden and dllexport on windows 2017-03-01 23:19:35 +01:00
Max Bruckner
b44c917be9 tests/common: use CJSON_PUBLIC 2017-03-01 23:16:19 +01:00
Max Bruckner
2d3520e0b9 Use own cJSON_bool boolean type in the header 2017-03-01 22:50:12 +01:00
Max Bruckner
2e118df0cd tests/common.h: Remove unused prototype 2017-03-01 22:47:45 +01:00
Max Bruckner
412f4f7d62 Use CJSON_PUBLIC for typecheck functions 2017-03-01 22:47:45 +01:00
Max Bruckner
0aea75fbda Merge pull request #123 from DaveGamble/trim-numbers
Remove traling zeroes when printing floating point numbers
2017-03-01 18:38:48 +01:00
Max Bruckner
0c0dd4a5b0 tests: test trim_trailing_zeroes 2017-03-01 18:29:01 +01:00
Max Bruckner
dd4cb5400f print_number: Remove unnecessary integer handling 2017-03-01 13:28:27 +01:00
Max Bruckner
1ea72f8260 print_number: Remove trailing zeroes (for doubles) 2017-03-01 13:22:32 +01:00
Max Bruckner
e78bc42362 print_number: Return buffer + offset instead of beginning of the number 2017-03-01 13:00:52 +01:00
Max Bruckner
6f271e511f print_number: Use sprintf's return value
This is used to update the buffer offset and determine success
2017-03-01 12:56:32 +01:00
Max Bruckner
bee069b4e7 Merge pull request #122 from DaveGamble/more-compiler-flags
Add more compiler flags
2017-03-01 12:30:12 +01:00
Max Bruckner
1e0bd24f2c Revert "unity: make it work with -Wconversion"
This reverts commit 12acc57967aef0c859e2a0a877b7a1530faad068.
2017-03-01 11:57:07 +01:00
Max Bruckner
5cf56fa4fa Add -Wparentheses compile option 2017-03-01 11:57:07 +01:00
Max Bruckner
3f349a4258 Add -Wdouble-promotion compiler flag 2017-03-01 11:57:07 +01:00
Max Bruckner
40e3781e9b CMake: Disable -Werror for Unity 2017-03-01 11:57:07 +01:00
Max Bruckner
b056d7cb74 Add -Wcomma compiler flag 2017-03-01 11:57:06 +01:00
Max Bruckner
1f422b586a Squashed 'tests/unity/' changes from 1782bab..2988e98
2988e98 Merge pull request #262 from codehearts/patch-2
1732698 Fixed incorrect TEST_PROTECT explanation in readme
3817375 Merge pull request #260 from jeremyhannon/parseUnityFixtureOutputToJUnitFormat
9d5159f Merge pull request #261 from codehearts/patch-1
65ce727 Fixed typo for TEST_PROTECT in readme
4dc04d3 Enhance parseOutput.rb to support Unity fixture output

git-subtree-dir: tests/unity
git-subtree-split: 2988e980fbc2252fa4290b608517d4ae25cd9a46
2017-03-01 09:23:18 +01:00
Max Bruckner
899529e866 Update unity 2017-03-01 09:23:18 +01:00
Max Bruckner
2837aac23e Contributors: Add Mike Jerris 2017-02-28 23:04:29 +01:00
Max Bruckner
c66d95d116 Release bugfix release 1.3.2 v1.3.2 2017-02-28 21:43:02 +01:00
Max Bruckner
cb6df3ffad Merge pull request #121 from ffontaine/master
Do not build unity library if tests are disabled
2017-02-28 21:34:29 +01:00
Fabrice Fontaine
695d8a01a9 Do not build unity library if tests are disabled
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2017-02-28 20:48:04 +01:00
Max Bruckner
024f690289 Merge pull request #116 from mjerris/fschanges
add CJSON_DECLARE macros to support gcc visibility and windows dllexport
2017-02-27 21:51:55 +01:00
Mike Jerris
039b1cc653 add CJSON_PUBLIC macro to public functions to support visibility and dllimport/dllexport 2017-02-27 13:47:06 -06:00
Max Bruckner
c0ff1fef9b Release 1.3.1 v1.3.1 2017-02-26 22:04:22 +01:00
Max Bruckner
2302f4f0b2 Merge pull request #120 from DaveGamble/typecheck-functions
Typecheck functions
2017-02-26 22:00:28 +01:00
Max Bruckner
c45dc12fd7 Tests for typecheck functions 2017-02-26 21:54:01 +01:00
Max Bruckner
ed8dc53699 cJSON_Utils: Use new typecheck functions 2017-02-26 21:26:34 +01:00
Max Bruckner
c26d53f0d7 Helper function to check the type of an item
This is necessary, because you can get it wrong if you do it manually.
(when you forget the & 0xFF in the comparison)
2017-02-26 14:30:50 +01:00
Max Bruckner
29f312dd69 Merge pull request #118 from mjerris/parser
prevent read beyond end of buffer when string ends with malformed utf
2017-02-26 13:12:26 +01:00
Mike Jerris
72e6e23523 prevent read beyond end of buffer when string ends with malformed utf 2017-02-23 08:59:25 -06:00
Max Bruckner
501046247d fix clang-sanitizer warnings 2017-02-21 15:08:36 +01:00
Max Bruckner
68cd0d4a11 cJSON.c: Pass allocation functions through internal functions
This is the first step in removing the global allocator functions. Every
internal function now only accesses its locally available set of
allocators.
2017-02-21 14:50:49 +01:00
Max Bruckner
56b819bfbc tests: test cJSON_GetObjectItem and cJSON_GetObjectItemCaseSensitive 2017-02-21 11:17:08 +01:00
Max Bruckner
605422c60a cJSON: New function cJSON_GetObjectItemCaseSensitive 2017-02-21 11:17:08 +01:00
Max Bruckner
cbbcc91498 tests: cJSON_ArrayForEach 2017-02-21 09:17:49 +01:00
Max Bruckner
b47d0e34ca cJSON_ArrayForEach: Fix handling of NULL pointers 2017-02-21 09:17:34 +01:00
Max Bruckner
bc12c69b54 Merge pull request #114 from DaveGamble/simplify-print
Simplify print functions
2017-02-20 23:09:06 +01:00
Max Bruckner
1d42c9bc60 print_object: simplify code 2017-02-20 23:07:24 +01:00
Max Bruckner
b71db93e03 print_object: rename variables 2017-02-20 23:07:24 +01:00
Max Bruckner
6d5a7c8c40 print_array: simplify code 2017-02-20 23:07:24 +01:00
Max Bruckner
8c1ed3ab82 update: rename to update_offset and change offset directly 2017-02-20 23:07:24 +01:00
Max Bruckner
f16dd7e028 print_array: rename variables 2017-02-20 23:07:24 +01:00
Max Bruckner
08770fc246 print_value: rename variables 2017-02-20 23:07:23 +01:00
Max Bruckner
0ca8587acc print_string_ptr: simplify code 2017-02-20 23:07:23 +01:00
Max Bruckner
88e38d042f tests: print_string: test if NULL is printed as empty string 2017-02-20 23:07:23 +01:00
Max Bruckner
6a746a230a print_string: Add more const 2017-02-20 23:07:23 +01:00
Max Bruckner
1e999352d3 print_string_ptr: rename variables 2017-02-20 23:07:23 +01:00
Max Bruckner
6815d96617 print_number: rename variables 2017-02-20 23:07:22 +01:00
Max Bruckner
61921498d0 print_number: remove special case for 0
Now that printbuffer is used for everything, it's not needed anymore.
2017-02-20 23:07:22 +01:00
Max Bruckner
4758d62fd4 Merge pull request #113 from DaveGamble/printbuffer-only
Always print with printbuffer
2017-02-20 23:06:58 +01:00
Max Bruckner
1bc1a9748a Merge pull request #112 from DaveGamble/print-tests
Add tests for print functions
2017-02-20 11:15:53 +01:00
Max Bruckner
de36476092 tests: print_value 2017-02-20 11:11:02 +01:00
Max Bruckner
983a4cd286 tests: parse_objects: Fix name of test 2017-02-20 11:11:01 +01:00
Max Bruckner
b6abef94ff tests: print_object 2017-02-20 11:11:01 +01:00
Max Bruckner
3d66766231 tests: print_array 2017-02-20 11:11:01 +01:00
Max Bruckner
924122904e tests: print_number 2017-02-20 11:11:01 +01:00
Max Bruckner
87691a86e5 cJSON_SetNumberValue: Fix compiler warning with -Waddress 2017-02-20 11:11:01 +01:00
Max Bruckner
8aa324fdc8 tests: print_string 2017-02-20 11:11:01 +01:00
Max Bruckner
3c4d309f62 ensure: Don't accept empty printbuffers anymore 2017-02-19 04:20:21 +01:00
Max Bruckner
9bf531ca05 Remove printing without buffer 2017-02-19 04:16:57 +01:00
Max Bruckner
80354bdb06 cJSON_Print: Use printbuffer 2017-02-19 04:03:02 +01:00
Max Bruckner
fe2e0956ad Merge pull request #111 from DaveGamble/fuzzing
partial build system integration of the afl fuzzing tool
2017-02-19 02:44:28 +01:00
Max Bruckner
cf71f3d627 fuzzing: script to prepare linux kernel for afl 2017-02-18 13:18:09 +01:00
Max Bruckner
da551c753f fuzzing: Speed up afl using persistent mode (in proccess fuzzing) 2017-02-18 13:18:09 +01:00
Max Bruckner
ae4681b787 fuzzing: use llvm source code instrumentation 2017-02-18 13:18:08 +01:00
Max Bruckner
c5a09a32a9 fuzzing: Fuzz different print methods
This is achieved by encoding the type of function used in the first two
bytes.

First byte:
b: buffered

Second byte:
f: formatted
2017-02-18 13:18:08 +01:00
Max Bruckner
4785070ad3 fuzzing: Fuzz printing as well.
With one big limitation: It can only be fuzzed with what has been
parsed by the library beforehand.
2017-02-18 12:52:16 +01:00
Max Bruckner
0e0cd5bae5 CMake: Add ENABLE_FUZZING and "afl" target 2017-02-18 12:52:16 +01:00
Max Bruckner
44512f643e Merge pull request #110 from DaveGamble/ensure-improvements
ensure improvements
2017-02-18 12:18:18 +01:00
Max Bruckner
331c18d09a ensure: only memcopy what's necessary
We don't need to copy the entire printbuffer, only the part that is
used.
2017-02-18 12:07:17 +01:00
Max Bruckner
4fff92140e ensure: use realloc if possible 2017-02-18 12:07:17 +01:00
Max Bruckner
fc1d4b07df ensure: if printbuffer is null: cJSON_malloc
This allowed for the removal of a lot of if (p) checks.
2017-02-18 11:35:59 +01:00
Max Bruckner
bd073343fa rename skip -> skip_whitespace 2017-02-17 19:37:31 +01:00
Max Bruckner
7c722dca5f CMake: Add target "check" that builds and runs tests 2017-02-17 13:59:26 +01:00
Max Bruckner
4fce9cce86 Release version 1.3.0 v1.3.0 2017-02-17 01:42:02 +01:00
Max Bruckner
415962da34 Merge pull request #109 from DaveGamble/simplify-parse
Simplify parsing
2017-02-16 21:23:36 +01:00
Max Bruckner
b41264d164 Remove uint8_t because it's not part of C89 2017-02-16 21:22:43 +01:00
Max Bruckner
0f271dcf63 parse_hex4: make input pointer const 2017-02-16 21:02:26 +01:00
Max Bruckner
ead389aba2 parse_value: improve variable names + const correctness 2017-02-16 21:02:25 +01:00
Max Bruckner
698dc528f4 parse_object: improve variable names + const correctness 2017-02-16 21:02:25 +01:00
Max Bruckner
3dc6339025 parse_array: improve variable names + const correctness 2017-02-16 20:08:59 +01:00
Max Bruckner
15592c50f6 parse_number: improve variable names + const correctness 2017-02-16 20:02:18 +01:00
Max Bruckner
efb5e1bc93 parse_string: Improve const correctnes of pointers 2017-02-16 20:00:12 +01:00
Max Bruckner
ace5047782 parse_string: reduce mental burden when reading the code
This restructures parse_string in a way, that you need to keep less
state in your head to understand the code.

This is achieved by:
* only changing the input pointer (current position) at a few places
(not all throughout)
* splitting out the UTF16 handling into a separate function
* renaming the variables so you know what they do without additional
context
2017-02-16 19:49:03 +01:00
Max Bruckner
03f23738bb parse_object: simplify to one do-while loop 2017-02-16 19:49:02 +01:00