diff --git a/lib/cmock_generator.rb b/lib/cmock_generator.rb index 6fe191c..31f6aed 100644 --- a/lib/cmock_generator.rb +++ b/lib/cmock_generator.rb @@ -136,7 +136,7 @@ class CMockGenerator def create_mock_verify_function(file, functions) file << "void #{@clean_mock_name}_Verify(void)\n{\n" verifications = functions.collect {|function| @plugins.run(:mock_verify, function)}.join - file << " UNITY_LINE_TYPE cmock_line = TEST_LINE_NUM;\n" unless verifications.empty? + file << " UNITY_LINE_TYPE cmock_line;\n cmock_line = TEST_LINE_NUM;\n" unless verifications.empty? file << verifications file << "}\n\n" end @@ -170,7 +170,7 @@ class CMockGenerator # Create mock function file << "#{function_mod_and_rettype} #{function[:name]}(#{args_string})\n" file << "{\n" - file << " UNITY_LINE_TYPE cmock_line = TEST_LINE_NUM;\n" + file << " UNITY_LINE_TYPE cmock_line;\n cmock_line = TEST_LINE_NUM;\n" file << " CMOCK_#{function[:name]}_CALL_INSTANCE* cmock_call_instance = (CMOCK_#{function[:name]}_CALL_INSTANCE*)CMock_Guts_GetAddressFor(Mock.#{function[:name]}_CallInstance);\n" file << " Mock.#{function[:name]}_CallInstance = CMock_Guts_MemNext(Mock.#{function[:name]}_CallInstance);\n" file << @plugins.run(:mock_implementation_precheck, function) @@ -183,8 +183,9 @@ class CMockGenerator file << " UNITY_TEST_FAIL(cmock_line, \"Function '#{function[:name]}' called later than expected.\");\n" # file << " UNITY_TEST_ASSERT((cmock_call_instance->CallOrder == ++GlobalVerifyOrder), cmock_line, \"Out of order function calls. Function '#{function[:name]}'\");\n" end + return_type = function[:return][:const?] ? "const #{function[:return][:type]}" : function[:return][:type] file << @plugins.run(:mock_implementation, function) - file << " return cmock_call_instance->ReturnVal;\n" unless (function[:return][:void?]) + file << " return (#{return_type})cmock_call_instance->ReturnVal;\n" unless (function[:return][:void?]) file << "}\n\n" end diff --git a/lib/cmock_generator_plugin_ignore.rb b/lib/cmock_generator_plugin_ignore.rb index 807afd6..4118e5e 100644 --- a/lib/cmock_generator_plugin_ignore.rb +++ b/lib/cmock_generator_plugin_ignore.rb @@ -39,9 +39,10 @@ class CMockGeneratorPluginIgnore lines << " return;\n }\n" else retval = function[:return].merge( { :name => "cmock_call_instance->ReturnVal"} ) - lines << " if (cmock_call_instance == NULL)\n return Mock.#{function[:name]}_FinalReturn;\n" + return_type = function[:return][:const?] ? "const #{function[:return][:type]}" : function[:return][:type] + lines << " if (cmock_call_instance == NULL)\n return (#{return_type})Mock.#{function[:name]}_FinalReturn;\n" lines << " " + @utils.code_assign_argument_quickly("Mock.#{function[:name]}_FinalReturn", retval) unless (retval[:void?]) - lines << " return cmock_call_instance->ReturnVal;\n }\n" + lines << " return (#{return_type})cmock_call_instance->ReturnVal;\n }\n" end lines end