diff --git a/examples/src/Types.h b/examples/src/Types.h index 891df51..330ffde 100644 --- a/examples/src/Types.h +++ b/examples/src/Types.h @@ -36,6 +36,26 @@ typedef char bool; #endif // NULL #define DONT_CARE (0) +// Floating point edge case defintions +#define MATH_NaN (0xFFFFFFFF) +#define MATH_POS_INF (0x7F800000) +#define MATH_NEG_INF (0xFF800000) + +#define F_TO_U(f) (*(uint32_t*)(&f)) +#define U_TO_F(u) (*(float*)(u)) + +#define IS_NAN(f) ( F_TO_U(f) == MATH_NaN ) +#define IS_POS_INF(f) ( F_TO_U(f) == MATH_POS_INF ) +#define IS_NEG_INF(f) ( F_TO_U(f) == MATH_NEG_INF ) + +#ifndef INFINITY +#define INFINITY (U_TO_F(MATH_POS_INF)) +#endif + +#ifndef NAN +#define NAN MATH_NaN +#endif + // MIN/MAX Definitions for Standard Types #ifndef INT8_MAX #define INT8_MAX 127 diff --git a/lib/cmock_generator_utils.rb b/lib/cmock_generator_utils.rb index d80ef32..58c0a84 100644 --- a/lib/cmock_generator_utils.rb +++ b/lib/cmock_generator_utils.rb @@ -48,17 +48,16 @@ class CMockGeneratorUtils def code_handle_return_value(function, indent) lines = ["\n"] - lines << "#{indent}#{function[:rettype]} toReturn;\n" - lines << "#{indent}if (Mock.#{function[:name]}_Return != Mock.#{function[:name]}_Return_HeadTail)\n" + lines << "#{indent}if(Mock.#{function[:name]}_Return != Mock.#{function[:name]}_Return_HeadTail)\n" lines << "#{indent}{\n" - lines << "#{indent}#{@tab}memcpy(&toReturn, Mock.#{function[:name]}_Return, sizeof(#{function[:rettype]}));\n" + lines << "#{indent}#{@tab}#{function[:rettype]} toReturn = *Mock.#{function[:name]}_Return;\n" lines << "#{indent}#{@tab}Mock.#{function[:name]}_Return++;\n" + lines << "#{indent}#{@tab}return toReturn;\n" lines << "#{indent}}\n" lines << "#{indent}else\n" lines << "#{indent}{\n" - lines << "#{indent}#{@tab}memcpy(&toReturn, Mock.#{function[:name]}_Return_Head, sizeof(#{function[:rettype]}));\n" + lines << "#{indent}#{@tab}return *Mock.#{function[:name]}_Return_Head;\n" lines << "#{indent}}\n" - lines << "#{indent}return toReturn;\n" end def code_add_an_arg_expectation(function, arg_type, expected)