Merge pull request #75 from mike-rob/master

Fix for const to allow returnThruPtr to be generated for const pointers with mutable data (Thanks Mike-Rob!)
This commit is contained in:
Mark VanderVoord
2016-03-09 10:52:38 -05:00
2 changed files with 8 additions and 2 deletions
+7 -1
View File
@@ -142,7 +142,7 @@ class CMockHeaderParser
args << { :type => (arg_type = arg_elements[0..-2].join(' ')),
:name => arg_elements[-1],
:ptr? => divine_ptr(arg_type),
:const? => arg_array.include?('const')
:const? => divine_const(arg)
}
end
return args
@@ -154,6 +154,12 @@ class CMockHeaderParser
return true
end
def divine_const(arg)
return false if /const[ *]/.match(arg).nil? # check for const
return false if /\*/.match(arg) and /const[^*]*\*/.match(arg).nil? # check const comes before * indicating const data
return true
end
def clean_args(arg_list)
if ((@local_as_void.include?(arg_list.strip)) or (arg_list.empty?))
return 'void'
+1 -1
View File
@@ -858,7 +858,7 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
{:type=>"int", :name=>"int_param", :ptr? => false, :const? => false},
{:type=>"int", :name=>"integer", :ptr? => false, :const? => false},
{:type=>"char", :name=>"character", :ptr? => false, :const? => false},
{:type=>"int*", :name=>"constant", :ptr? => true, :const? => true}
{:type=>"int*", :name=>"constant", :ptr? => true, :const? => false}
],
:args_string=>"const unsigned int const_param, int int_param, int integer, char character, int* const constant",
:args_call=>"const_param, int_param, integer, character, constant" }]