diff --git a/lib/cmock_generator_plugin_ignore.rb b/lib/cmock_generator_plugin_ignore.rb index b9d36a0..6ab4872 100644 --- a/lib/cmock_generator_plugin_ignore.rb +++ b/lib/cmock_generator_plugin_ignore.rb @@ -34,8 +34,13 @@ class CMockGeneratorPluginIgnore def mock_function_declarations(function) if (function[:return][:void?]) - return "#define #{function[:name]}_Ignore() #{function[:name]}_CMockIgnore(__LINE__)\n" + - "void #{function[:name]}_CMockIgnore(UNITY_LINE_TYPE cmock_line);\n" + if (@config.ignore == :args_only) + return "#define #{function[:name]}_Ignore() #{function[:name]}_CMockIgnore(__LINE__)\n" + + "void #{function[:name]}_CMockIgnore(UNITY_LINE_TYPE cmock_line);\n" + else + return "#define #{function[:name]}_Ignore() #{function[:name]}_CMockIgnore()\n" + + "void #{function[:name]}_CMockIgnore(void);\n" + end else return "#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" @@ -57,12 +62,17 @@ class CMockGeneratorPluginIgnore def mock_interfaces(function) lines = "" + args_only = (@config.ignore == :args_only) if (function[:return][:void?]) - lines << "void #{function[:name]}_CMockIgnore(UNITY_LINE_TYPE cmock_line)\n{\n" + if (args_only) + lines << "void #{function[:name]}_CMockIgnore(UNITY_LINE_TYPE cmock_line)\n{\n" + else + lines << "void #{function[:name]}_CMockIgnore(void)\n{\n" + end else lines << "void #{function[:name]}_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line, #{function[:return][:str]})\n{\n" end - if (@config.ignore == :args_only) + if (args_only) lines << @utils.code_add_base_expectation(function[:name], true) elsif (!function[:return][:void?]) lines << @utils.code_add_base_expectation(function[:name], false) diff --git a/targets/gcc.yml b/targets/gcc.yml index 8b62ba0..977e360 100644 --- a/targets/gcc.yml +++ b/targets/gcc.yml @@ -8,6 +8,7 @@ compiler: options: - '-c' - '-Wall' + - '-Wunused-parameter' - '-Wno-address' - '-std=c99' - '-pedantic' diff --git a/targets/gcc_32_with_64_support.yml b/targets/gcc_32_with_64_support.yml index 9700ebc..29adf45 100644 --- a/targets/gcc_32_with_64_support.yml +++ b/targets/gcc_32_with_64_support.yml @@ -8,6 +8,7 @@ compiler: options: - '-c' - '-Wall' + - '-Wunused-parameter' - '-Wno-address' - '-std=c99' - '-pedantic' diff --git a/targets/gcc_64.yml b/targets/gcc_64.yml index 70bdc42..db21fa6 100644 --- a/targets/gcc_64.yml +++ b/targets/gcc_64.yml @@ -8,6 +8,7 @@ compiler: options: - '-c' - '-Wall' + - '-Wunused-parameter' - '-std=c99' - '-Wno-address' - '-pedantic-errors' diff --git a/test/unit/cmock_generator_plugin_ignore_test.rb b/test/unit/cmock_generator_plugin_ignore_test.rb index 9ae3318..f49e51b 100644 --- a/test/unit/cmock_generator_plugin_ignore_test.rb +++ b/test/unit/cmock_generator_plugin_ignore_test.rb @@ -38,9 +38,18 @@ class CMockGeneratorPluginIgnoreTest < Test::Unit::TestCase assert_equal(expected, returned) end - should "handle function declarations for functions without return values" do + should "handle function declarations for functions without return values when args_only" do function = {:name => "Mold", :args_string => "void", :return => test_return[:void]} expected = "#define Mold_Ignore() Mold_CMockIgnore(__LINE__)\nvoid Mold_CMockIgnore(UNITY_LINE_TYPE cmock_line);\n" + @config.expect.ignore.returns(:args_only) + returned = @cmock_generator_plugin_ignore.mock_function_declarations(function) + assert_equal(expected, returned) + end + + should "handle function declarations for functions without return values when args_and_calls" do + function = {:name => "Mold", :args_string => "void", :return => test_return[:void]} + expected = "#define Mold_Ignore() Mold_CMockIgnore()\nvoid Mold_CMockIgnore(void);\n" + @config.expect.ignore.returns(:args_and_calls) returned = @cmock_generator_plugin_ignore.mock_function_declarations(function) assert_equal(expected, returned) end @@ -117,7 +126,7 @@ class CMockGeneratorPluginIgnoreTest < Test::Unit::TestCase should "add a new mock interface for ignoring when function had no return value" do function = {:name => "Slime", :args => [], :args_string => "void", :return => test_return[:void]} - expected = ["void Slime_CMockIgnore(UNITY_LINE_TYPE cmock_line)\n", + expected = ["void Slime_CMockIgnore(void)\n", "{\n", " Mock.Slime_IgnoreBool = (int)1;\n", "}\n\n"