1
0
mirror of https://github.com/ThrowTheSwitch/Unity.git synced 2026-01-24 08:51:36 +01:00
Commit Graph

205 Commits

Author SHA1 Message Date
Mark VanderVoord
ee038c248c Ha! Forgot to add the correct comment style 2017-03-26 18:30:22 -04:00
Mark VanderVoord
d6b350874b Clean up some const issues, particularly when moving between single and double pointers 2017-03-26 18:25:25 -04:00
Mark VanderVoord
0dddf498c2 also update strings to support each element of an array. 2017-03-21 23:57:15 -04:00
Mark VanderVoord
a11a13750d Added memory each equal assertion 2017-03-21 18:28:49 -04:00
Mark VanderVoord
d8d67a708c Added each_equal assertions for float and double 2017-03-21 17:05:19 -04:00
Mark VanderVoord
7fe31915d0 Added some tests to prove this works. Still work in progress 2017-03-21 14:37:52 -04:00
Mark VanderVoord
56eeacd0b2 prepare for comparing value to array by setting up explicit compare of array to array in ints 2017-03-21 08:00:48 -04:00
Max Bruckner
1c556d2e4c Fix -Wconversion with gcc-4.3 2017-03-18 17:42:02 +01:00
Max Bruckner
7bce0b4f0c Fix warning with ubsan and -Wconversion
This fixes a compiler warning about a lossy conversion from long
unsigned int to int when compiling unity with gcc 6.3.1 and
the options -std=c89 -Wconversion -fsanitize=undefined
2017-03-01 17:10:16 +01:00
Max Bruckner
1bf22d39f5 Fix warnings with -Wdouble-promotion
This fixes compiler warnings that clang produces with the
-Wdouble-promotion compiler option.

This only happens if double precision floating point numbers are
enabled.

The implicit double promotion occurs because numbers of type UNITY_FLOAT
are passed into UnityPrintFloat, which expects const UNITY_DOUBLE.

This commit fixes it by explicitly casting to UNITY_DOUBLE.
2017-03-01 10:15:06 +01:00
Crt Mori
3588e5b6d3 Aligning definition and declaration of UnityPrintFloat
There was a mismatch of definition and declaration of UnityPrintFloat
and this commit aligns both on const UNITY_DOUBLE, but then inside it
actually uses a positive version of the variable only.
2017-01-24 22:52:43 +01:00
Mark VanderVoord
78938f6f05 Merge pull request #254 from jsalling/cleanup/clang-format
Formatting source code to existing style
2017-01-19 06:56:35 -05:00
jsalling
97e4bd252a Ran Unity into a source code formatter, no code changes
Used clang-format, which produces noise on stuff you don't care about
and requires setting it up to match the existing code base. Kept the
potentially useful changes, discarded the rest, some manual tweaking
required. It did catch lots of pesky indentation mistakes.
2017-01-18 19:48:40 -06:00
jsalling
b29ad2ee68 Removing unnecessary function prototypes, inline PrintOk/Fail 2017-01-18 09:14:02 -06:00
Mark VanderVoord
04e10f95ee Merge pull request #249 from jsalling/feature/no-print-mask
No print masking of integers, bounds on hex printing (Thanks!)
2017-01-18 09:01:45 -05:00
jsalling
de6f516330 Revert "Cleanup Assert Array idiom to be the same everywhere"
This reverts commit ee38219498.
Removing these changes per coding standard, after the code review
2017-01-17 21:43:25 -06:00
jsalling
437c474b07 Put back (char) casts, better formatting 2017-01-17 21:26:15 -06:00
jsalling
480335061c No print masking of integers, bounds on hex printing 2017-01-15 19:51:32 -06:00
jsalling
ee38219498 Cleanup Assert Array idiom to be the same everywhere 2017-01-14 11:10:58 -06:00
jsalling
4d747080a9 Rename Array Check helper, always return, never longjmp
Move longjump inside caller, to functions returning 'void'
This single function needed to change to allow optional setjmp.h
2017-01-14 10:56:24 -06:00
jsalling
5449f1e4d1 Condense all longjmp calls into TEST_ABORT()
The setjmp calls are all in TEST_PROTECT() already
2017-01-14 10:41:03 -06:00
Mark VanderVoord
6695e9e975 Merge pull request #242 from jsalling/feature/fixture-test-name
Fixture - Remove duplicate output of test name in verbose mode
2017-01-13 16:38:10 -05:00
Mark VanderVoord
9954d4f863 Merge pull request #244 from jsalling/cleanup/promotion-warnings
Remove promotion warnings on float constants, Inline the isneg/ispos macros
2017-01-13 15:46:07 -05:00
Mark VanderVoord
7b87a579d1 Merge pull request #245 from jsalling/feature/teardown-not-ignore
Always run the tearDown() even if test is ignored
2017-01-13 15:43:26 -05:00
Mark VanderVoord
9e8ab3df84 Merge pull request #241 from jsalling/cleanup/float-testing
Cleanup floating point print testing, update docs
2017-01-13 15:42:15 -05:00
Mark VanderVoord
85ef109282 Merge pull request #240 from jsalling/refactor/skip-exec
Rename UNITY_SKIP_EXECUTION to RETURN_IF_FAIL_OR_IGNORE
2017-01-13 12:08:15 -05:00
jsalling
5112d7dfbd Use default int size for any bad STYLE_T enum value
Defensive coding
2017-01-06 20:45:33 -06:00
jsalling
4c78cde202 Finish clean up of float support options 2016-12-30 20:24:45 -06:00
jsalling
bd4ac58486 Inline the isneg/ispos macros, remove promotion warnings on constants
Originated from commit c6dc96f3 but are rarely used and not in math.h
Removes float to double promotion warning and simplifies the code
'gcc -std=gnu99 -Wdouble-promotion' spits out these warnings
2016-12-29 20:47:03 -06:00
jsalling
5f33721924 Remove duplicate output of test name, Fixture verbose mode
Remove UNITY_FIXTURES option, which was probably not doing what was
originally indended. It was suppressing the test name even in quiet mode.
2016-12-28 21:18:50 -06:00
jsalling
03e2209e1b Rename UNITY_SKIP_EXECUTION to RETURN_IF_FAIL_OR_IGNORE 2016-12-28 20:33:22 -06:00
jsalling
65e401f3de Always run the tearDown() even if test is ignored 2016-12-24 13:56:04 -06:00
jsalling
46560a8030 Add correct masking behavior on unsigned values 2016-12-23 22:28:37 -06:00
jsalling
5f386a42ff Refactor of IntArray function with switch inside loop, remove repeated code 2016-12-23 22:19:42 -06:00
jsalling
b0870ec8b9 Merge branch 'feature/print-floats'
Fix new type name conflicts

Conflicts:
	src/unity.c
	src/unity_internals.h
2016-12-15 21:15:30 -06:00
Mark VanderVoord
8e31f5d869 Revised internal type naming scheme to better sandbox Unity away from everything else. Sure, short was nice, but not at the expense of naming collisions. 2016-11-29 08:38:51 -05:00
jsalling
aa4d773df2 Tests for Printing All float values
Takes about 10 minutes to run all floats, so split into 3 tests for parallel
running later. This was useful during development for finding hard corner cases
and getting the routine to high quality. Off by default.
Note that all floats 16.0 and up can be represented uniquely (in this format) and will
round-trip back to the exact same float with sscanf(). This property is true for
UnityPrintFloat, despite a few rounding error cases, it will produce output identity.

Better comments and refactor on round ties to even
Add upper threshold value on round to even feature since numerical precision issues
start to give approximations when dividing one large double by another. When tested
on float values, using 1e22 gave the fewest rounding errors.

Fix warnings from gcc. Some float constants do not behave well in existing tests.
Add casts where conversions could be imprecise.
2016-11-19 13:59:19 -06:00
jsalling
25f6417351 Refactor repeated code to print float expected and actual
Move double tests down in the file
2016-11-19 13:52:24 -06:00
jsalling
9f4b1a332f Tests for Printing Floating Point numbers 2016-11-19 13:52:24 -06:00
jsalling
47f6a85b8c Make UnityPrintFloat on by default
Remove UNITY_FLOAT_VERBOSE entirely, add option UNITY_EXCLUDE_FLOAT_PRINT
Remove some questionable float casts from doubles
Default to Round Ties to Even behavior, add option to Round Ties Away from Zero
2016-11-19 13:52:24 -06:00
jsalling
54fe786fae Round ties to even by default, many C libraries follow this
Linux gcc & clang and OSX clang produce output with ties round to even
Windows mingw gcc does not
Example 0.0078125 prints '0.007812'
2016-11-19 13:52:24 -06:00
jsalling
4a27d14734 Correct boundary conditions and add tests 2016-11-19 13:52:24 -06:00
jsalling
1dfcb54491 Start adding tests. Add const and simplify code. 2016-11-19 13:52:24 -06:00
jsalling
393f2cb544 Refactor printing after the decimal point, signed types, small numbers...
Change some types to signed for simpler code and speed
Added format to distinguish small numbers
2016-11-19 13:52:24 -06:00
jsalling
2de0e8285d Key idea is using double precision calculations makes everything better
Print 9 digits
2016-11-19 13:52:24 -06:00
jsalling
e48fe0a07c Reorganize NaN and Inf printing into if-else blocks 2016-11-19 13:51:59 -06:00
jsalling
30ba118c47 Add printing for large numbers in exponential format
Delete old method for printing
2016-11-16 23:00:01 -06:00
jsalling
9653fbf7ac Use an integer cast to print floating point numbers more precisely
Improve printing six decimal places, remove trailing 0's, fix the carry when
numbers like 0.9999999 round up and print leading zeros in the decimal

The first attempt at printing floats had precision issues where the last few
digits would often be wrong. This next approach may yield a better algorithm
for numbers less than 4.29 billion, those that fit in 32 bits.
2016-11-16 20:37:12 -06:00
Mark VanderVoord
ac455f2798 We can’t guarantee that the built-in function insane will return 1. It might return any other non-negative value. Therefore we need to force it to be 1 so we can use the comparison operator later. 2016-11-15 09:29:08 -05:00
jsalling
d4a35f0949 Refactor to delete smaller number decimal format
Generalize loop to print decimal format and exponential
 Add '+' to exponent when printing larger floats
2016-11-12 23:08:54 -06:00