mirror of
https://github.com/ThrowTheSwitch/CMock
synced 2025-05-23 02:49:33 -04:00
Fix recent const changes to account for special (char*) handling.
This commit is contained in:
parent
27c5a9cff5
commit
ef04f4ab7f
@ -154,7 +154,7 @@ class CMockHeaderParser
|
||||
#
|
||||
arg_array = arg.split
|
||||
ptr_const_info = divine_ptr_and_const(arg)
|
||||
arg_elements = arg_array - (ptr_const_info[:ptr?] ? @c_attr_noconst : @c_attributes)
|
||||
arg_elements = arg_array - (arg.include?('*') ? @c_attr_noconst : @c_attributes)
|
||||
args << { :type => arg_elements[0..(ptr_const_info[:const_ptr?] ? -3 : -2)].join(' '),
|
||||
:name => arg_elements[-1]
|
||||
}.merge(ptr_const_info)
|
||||
|
@ -863,7 +863,7 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
|
||||
|
||||
it "properly parse const and pointer argument types with no arg names" do
|
||||
|
||||
source = "void foo(char const*, char*const, const char*, const char*const, char const*const, char*, char, const char);\n"
|
||||
source = "void foo(int const*, int*const, const int*, const int*const, int const*const, int*, int, const int);\n"
|
||||
|
||||
expected = [{ :name => "foo",
|
||||
:modifier => "",
|
||||
@ -876,16 +876,16 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
|
||||
:const_ptr? => false
|
||||
},
|
||||
:var_arg => nil,
|
||||
:args_string => "char const* cmock_arg1, char* const cmock_arg2, const char* cmock_arg3, const char* const cmock_arg4, " +
|
||||
"char const* const cmock_arg5, char* cmock_arg6, char cmock_arg7, const char cmock_arg8",
|
||||
:args => [{ :type=>"char const*", :name => "cmock_arg1", :ptr? => true, :const? => true, :const_ptr? => false },
|
||||
{ :type=>"char*", :name => "cmock_arg2", :ptr? => true, :const? => false, :const_ptr? => true },
|
||||
{ :type=>"const char*", :name => "cmock_arg3", :ptr? => true, :const? => true, :const_ptr? => false },
|
||||
{ :type=>"const char*", :name => "cmock_arg4", :ptr? => true, :const? => true, :const_ptr? => true },
|
||||
{ :type=>"char const*", :name => "cmock_arg5", :ptr? => true, :const? => true, :const_ptr? => true },
|
||||
{ :type=>"char*", :name => "cmock_arg6", :ptr? => true, :const? => false, :const_ptr? => false },
|
||||
{ :type=>"char", :name => "cmock_arg7", :ptr? => false, :const? => false, :const_ptr? => false },
|
||||
{ :type=>"char", :name => "cmock_arg8", :ptr? => false, :const? => true, :const_ptr? => false }],
|
||||
:args_string => "int const* cmock_arg1, int* const cmock_arg2, const int* cmock_arg3, const int* const cmock_arg4, " +
|
||||
"int const* const cmock_arg5, int* cmock_arg6, int cmock_arg7, const int cmock_arg8",
|
||||
:args => [{ :type=>"int const*", :name => "cmock_arg1", :ptr? => true, :const? => true, :const_ptr? => false },
|
||||
{ :type=>"int*", :name => "cmock_arg2", :ptr? => true, :const? => false, :const_ptr? => true },
|
||||
{ :type=>"const int*", :name => "cmock_arg3", :ptr? => true, :const? => true, :const_ptr? => false },
|
||||
{ :type=>"const int*", :name => "cmock_arg4", :ptr? => true, :const? => true, :const_ptr? => true },
|
||||
{ :type=>"int const*", :name => "cmock_arg5", :ptr? => true, :const? => true, :const_ptr? => true },
|
||||
{ :type=>"int*", :name => "cmock_arg6", :ptr? => true, :const? => false, :const_ptr? => false },
|
||||
{ :type=>"int", :name => "cmock_arg7", :ptr? => false, :const? => false, :const_ptr? => false },
|
||||
{ :type=>"int", :name => "cmock_arg8", :ptr? => false, :const? => true, :const_ptr? => false }],
|
||||
:args_call => "cmock_arg1, cmock_arg2, cmock_arg3, cmock_arg4, cmock_arg5, cmock_arg6, cmock_arg7, cmock_arg8",
|
||||
:contains_ptr? => true
|
||||
}]
|
||||
@ -894,8 +894,8 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
|
||||
|
||||
it "properly parse const and pointer argument types with arg names" do
|
||||
|
||||
source = "void bar(char const* param1, char*const param2, const char* param3, const char*const param4,\n" +
|
||||
" char const*const param5, char*param6, char param7, const char param8);\n"
|
||||
source = "void bar(int const* param1, int*const param2, const int* param3, const int*const param4,\n" +
|
||||
" int const*const param5, int*param6, int param7, const int param8);\n"
|
||||
|
||||
expected = [{ :name => "bar",
|
||||
:modifier => "",
|
||||
@ -908,16 +908,16 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
|
||||
:const_ptr? => false
|
||||
},
|
||||
:var_arg => nil,
|
||||
:args_string => "char const* param1, char* const param2, const char* param3, const char* const param4, " +
|
||||
"char const* const param5, char* param6, char param7, const char param8",
|
||||
:args => [{ :type=>"char const*", :name => "param1", :ptr? => true, :const? => true, :const_ptr? => false },
|
||||
{ :type=>"char*", :name => "param2", :ptr? => true, :const? => false, :const_ptr? => true },
|
||||
{ :type=>"const char*", :name => "param3", :ptr? => true, :const? => true, :const_ptr? => false },
|
||||
{ :type=>"const char*", :name => "param4", :ptr? => true, :const? => true, :const_ptr? => true },
|
||||
{ :type=>"char const*", :name => "param5", :ptr? => true, :const? => true, :const_ptr? => true },
|
||||
{ :type=>"char*", :name => "param6", :ptr? => true, :const? => false, :const_ptr? => false },
|
||||
{ :type=>"char", :name => "param7", :ptr? => false, :const? => false, :const_ptr? => false },
|
||||
{ :type=>"char", :name => "param8", :ptr? => false, :const? => true, :const_ptr? => false }],
|
||||
:args_string => "int const* param1, int* const param2, const int* param3, const int* const param4, " +
|
||||
"int const* const param5, int* param6, int param7, const int param8",
|
||||
:args => [{ :type=>"int const*", :name => "param1", :ptr? => true, :const? => true, :const_ptr? => false },
|
||||
{ :type=>"int*", :name => "param2", :ptr? => true, :const? => false, :const_ptr? => true },
|
||||
{ :type=>"const int*", :name => "param3", :ptr? => true, :const? => true, :const_ptr? => false },
|
||||
{ :type=>"const int*", :name => "param4", :ptr? => true, :const? => true, :const_ptr? => true },
|
||||
{ :type=>"int const*", :name => "param5", :ptr? => true, :const? => true, :const_ptr? => true },
|
||||
{ :type=>"int*", :name => "param6", :ptr? => true, :const? => false, :const_ptr? => false },
|
||||
{ :type=>"int", :name => "param7", :ptr? => false, :const? => false, :const_ptr? => false },
|
||||
{ :type=>"int", :name => "param8", :ptr? => false, :const? => true, :const_ptr? => false }],
|
||||
:args_call => "param1, param2, param3, param4, param5, param6, param7, param8",
|
||||
:contains_ptr? => true
|
||||
}]
|
||||
|
Loading…
x
Reference in New Issue
Block a user