Fix Ignore declaration missing, fix StopIgnore to handle returns

This commit is contained in:
pwatt01
2020-04-24 14:09:02 +09:30
committed by GitHub
parent 553dc94b76
commit 1f16f4b5a3
+12 -5
View File
@@ -24,15 +24,17 @@ class CMockGeneratorPluginIgnore
def mock_function_declarations(function)
if function[:return][:void?]
"#define #{function[:name]}_Ignore() #{function[:name]}_CMockIgnore()\n" \
lines = "#define #{function[:name]}_Ignore() #{function[:name]}_CMockIgnore()\n" \
"void #{function[:name]}_CMockIgnore(void);\n"
else
"#define #{function[:name]}_IgnoreAndReturn(cmock_retval) #{function[:name]}_CMockIgnoreAndReturn(__LINE__, cmock_retval)\n" \
lines = "#define #{function[:name]}_IgnoreAndReturn(cmock_retval) #{function[:name]}_CMockIgnoreAndReturn(__LINE__, cmock_retval)\n" \
"void #{function[:name]}_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, #{function[:return][:str]});\n"
end
#add stop ignore function. it does not matter if there are any args
"#define #{function[:name]}_StopIgnore() #{function[:name]}_CMockStopIgnore()\n" \
"void #{function[:name]}_CMockStopIgnore(void);\n"
lines << "#define #{function[:name]}_StopIgnore() #{function[:name]}_CMockStopIgnore()\n" \
"void #{function[:name]}_CMockStopIgnore(void);\n"
lines
end
def mock_implementation_precheck(function)
@@ -67,7 +69,12 @@ class CMockGeneratorPluginIgnore
#add stop ignore function. it does not matter if there are any args
lines << "void #{function[:name]}_CMockStopIgnore(void)\n{\n"
lines << " Mock.#{function[:name]}_IgnoreBool = (char)0;\n"
lines << " if(Mock.#{function[:name]}_IgnoreBool) {\n"
lines << " Mock.#{function[:name]}_IgnoreBool = (char)0;\n"
unless function[:return][:void?]
lines << " Mock.#{function[:name]}_CallInstance = CMock_Guts_MemNext(Mock.#{function[:name]}_CallInstance);\n"
end
lines << " }\n"
lines << "}\n\n"
end