summaryrefslogtreecommitdiff
path: root/FreeRTOS-Plus/Test/CMock/lib/cmock_generator_plugin_ignore_arg.rb
diff options
context:
space:
mode:
Diffstat (limited to 'FreeRTOS-Plus/Test/CMock/lib/cmock_generator_plugin_ignore_arg.rb')
-rw-r--r--FreeRTOS-Plus/Test/CMock/lib/cmock_generator_plugin_ignore_arg.rb42
1 files changed, 42 insertions, 0 deletions
diff --git a/FreeRTOS-Plus/Test/CMock/lib/cmock_generator_plugin_ignore_arg.rb b/FreeRTOS-Plus/Test/CMock/lib/cmock_generator_plugin_ignore_arg.rb
new file mode 100644
index 000000000..d55e84c25
--- /dev/null
+++ b/FreeRTOS-Plus/Test/CMock/lib/cmock_generator_plugin_ignore_arg.rb
@@ -0,0 +1,42 @@
+class CMockGeneratorPluginIgnoreArg
+ attr_reader :priority
+ attr_accessor :utils
+
+ def initialize(_config, utils)
+ @utils = utils
+ @priority = 10
+ end
+
+ def instance_typedefs(function)
+ lines = ''
+ function[:args].each do |arg|
+ lines << " char IgnoreArg_#{arg[:name]};\n"
+ end
+ lines
+ end
+
+ def mock_function_declarations(function)
+ lines = ''
+ function[:args].each do |arg|
+ lines << "#define #{function[:name]}_IgnoreArg_#{arg[:name]}()"
+ lines << " #{function[:name]}_CMockIgnoreArg_#{arg[:name]}(__LINE__)\n"
+ lines << "void #{function[:name]}_CMockIgnoreArg_#{arg[:name]}(UNITY_LINE_TYPE cmock_line);\n"
+ end
+ lines
+ end
+
+ def mock_interfaces(function)
+ lines = []
+ func_name = function[:name]
+ function[:args].each do |arg|
+ lines << "void #{func_name}_CMockIgnoreArg_#{arg[:name]}(UNITY_LINE_TYPE cmock_line)\n"
+ lines << "{\n"
+ lines << " CMOCK_#{func_name}_CALL_INSTANCE* cmock_call_instance = " \
+ "(CMOCK_#{func_name}_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.#{func_name}_CallInstance));\n"
+ lines << " UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, CMockStringIgnPreExp);\n"
+ lines << " cmock_call_instance->IgnoreArg_#{arg[:name]} = 1;\n"
+ lines << "}\n\n"
+ end
+ lines
+ end
+end