Attempting to be smarter about recognizing pointer placement in the return values (though we're not going to officially system test some of the illegal combinations)

This commit is contained in:
Mark VanderVoord
2016-06-05 14:12:37 -04:00
parent fe693146e5
commit 2f0a44d7ce
3 changed files with 155 additions and 81 deletions
+25 -7
View File
@@ -141,10 +141,8 @@ class CMockHeaderParser
arg_array = arg.split
arg_elements = arg_array - @c_attributes # split up words and remove known attributes
args << { :type => (arg_type = arg_elements[0..-2].join(' ')),
:name => arg_elements[-1],
:ptr? => divine_ptr(arg_type),
:const? => divine_const(arg)
}
:name => arg_elements[-1]
}.merge(divine_ptr_and_const(arg))
end
return args
end
@@ -162,6 +160,28 @@ class CMockHeaderParser
return true
end
def divine_ptr_and_const(arg)
divination = { :ptr? => false, :const? => false, :const_ptr? => false }
#first check if there is a pointer present and that it's not part of a C string or function definition
#divination[:ptr?] = (arg.split[0..-2].join.include?('*') && !arg.gsub(/(const|char|\*|\s)+/,'').empty?)
divination[:ptr?] = (arg.include?('*') && !arg.gsub(/(const|char|\*|\s)+/,'').empty?)
#if there isn't a const that isn't part of a larger word, we're done
return divination if !(/(?:^|\s|\*)const(?:\*|\s|$)/ =~ arg)
divination[:const?] = true
# check const comes after * indicating const ptr
if (/\*\s*const/ =~ arg)
divination[:const_ptr?] = true
#check const comes before * indicating also const data
divination[:const?] = (/const(?:\w|\s)*\*/ =~ arg) ? true : false
end
return divination
end
def clean_args(arg_list)
if ((@local_as_void.include?(arg_list.strip)) or (arg_list.empty?))
return 'void'
@@ -236,11 +256,9 @@ class CMockHeaderParser
rettype = 'void' if (@local_as_void.include?(rettype.strip))
decl[:return] = { :type => rettype,
:name => 'cmock_to_return',
:ptr? => divine_ptr(rettype),
:const? => divine_const(full_retval),
:str => "#{rettype} cmock_to_return",
:void? => (rettype == 'void')
}
}.merge(divine_ptr_and_const(full_retval))
#remove default argument statements from mock definitions
args.gsub!(/=\s*[a-zA-Z0-9_\.]+\s*/, ' ')
+15
View File
@@ -20,3 +20,18 @@ void const_variants2(
struct _DUMMY_T const * const param1,
const unsigned long int const * const param2,
const struct _DUMMY_T const * param3 );
const int * const_retval1(void); /* nicety version for pointer to constant int */
int const * const_retval2(void); /* formal version for pointer to constant int */
//int * const const_retval3(void); /* formal version for constant pointer to int */
//int const * const const_retval4(void); /* formal version for constant pointer to constant int */
const int* const_retval5(void); /* sticky-left nicety version for pointer to constant int */
int const* const_retval6(void); /* sticky-left formal version for pointer to constant int */
//int* const const_retval7(void); /* sticky-left formal version for constant pointer to int */
//int const* const const_retval8(void); /* sticky-left formal version for constant pointer to constant int */
const int *const_retval9(void); /* sticky-right nicety version for pointer to constant int */
int const *const_retvalA(void); /* sticky-right formal version for pointer to constant int */
//int *const const_retvalB(void); /* sticky-right formal version for constant pointer to int */
//int const *const const_retvalC(void); /* sticky-right formal version for constant pointer to constant int */
+115 -74
View File
@@ -478,12 +478,13 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => false,
:const_ptr? => false,
:str => "void cmock_to_return",
:void? => true
},
:modifier=>"",
:contains_ptr? => false,
:args=>[{:type=>"int", :name=>"a", :ptr? => false, :const? => false}],
:args=>[{:type=>"int", :name=>"a", :ptr? => false, :const? => false, :const_ptr? => false}],
:args_string=>"int a",
:args_call=>"a"}
assert_equal(expected, @parser.parse_declaration(source))
@@ -497,6 +498,7 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => false,
:const_ptr? => false,
:str => "int cmock_to_return",
:void? => false
},
@@ -516,12 +518,13 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => false,
:const_ptr? => false,
:str => "char cmock_to_return",
:void? => false
},
:modifier=>"",
:contains_ptr? => true,
:args=>[{:type=>"MY_FUNKY_VOID*", :name=>"bluh", :ptr? => true, :const? => false}],
:args=>[{:type=>"MY_FUNKY_VOID*", :name=>"bluh", :ptr? => true, :const? => false, :const_ptr? => false}],
:args_string=>"MY_FUNKY_VOID* bluh",
:args_call=>"bluh" }
assert_equal(expected, @parser.parse_declaration(source))
@@ -614,13 +617,14 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => false,
:const_ptr? => false,
:str => "int cmock_to_return",
:void? => false
},
:modifier=>"",
:contains_ptr? => false,
:args=>[ {:type=>"int", :name=>"a", :ptr? => false, :const? => false},
{:type=>"unsigned int", :name=>"b", :ptr? => false, :const? => false}
:args=>[ {:type=>"int", :name=>"a", :ptr? => false, :const? => false, :const_ptr? => false},
{:type=>"unsigned int", :name=>"b", :ptr? => false, :const? => false, :const_ptr? => false}
],
:args_string=>"int a, unsigned int b",
:args_call=>"a, b" }
@@ -635,15 +639,16 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => false,
:const_ptr? => false,
:str => "void cmock_to_return",
:void? => true
},
:name=>"FunkyChicken",
:modifier=>"",
:contains_ptr? => false,
:args=>[ {:type=>"uint", :name=>"la", :ptr? => false, :const? => false},
{:type=>"int", :name=>"de", :ptr? => false, :const? => false},
{:type=>"bool", :name=>"da", :ptr? => false, :const? => false}
:args=>[ {:type=>"uint", :name=>"la", :ptr? => false, :const? => false, :const_ptr? => false},
{:type=>"int", :name=>"de", :ptr? => false, :const? => false, :const_ptr? => false},
{:type=>"bool", :name=>"da", :ptr? => false, :const? => false, :const_ptr? => false}
],
:args_string=>"uint la, int de, bool da",
:args_call=>"la, de, da" }
@@ -658,6 +663,7 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => false,
:const_ptr? => false,
:str => "void cmock_to_return",
:void? => true
},
@@ -678,14 +684,15 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => true,
:const_ptr? => false,
:str => "int cmock_to_return",
:void? => false
},
:name=>"TheMatrix",
:modifier=>"const",
:contains_ptr? => true,
:args=>[ {:type=>"int", :name=>"Trinity", :ptr? => false, :const? => false},
{:type=>"unsigned int*", :name=>"Neo", :ptr? => true, :const? => false}
:args=>[ {:type=>"int", :name=>"Trinity", :ptr? => false, :const? => false, :const_ptr? => false},
{:type=>"unsigned int*", :name=>"Neo", :ptr? => true, :const? => false, :const_ptr? => false}
],
:args_string=>"int Trinity, unsigned int* Neo",
:args_call=>"Trinity, Neo" }
@@ -700,6 +707,7 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => true,
:const_ptr? => false,
:str => "int cmock_to_return",
:void? => false
},
@@ -707,8 +715,8 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:modifier=>"const",
:c_calling_convention=>"__stdcall",
:contains_ptr? => true,
:args=>[ {:type=>"int", :name=>"Trinity", :ptr? => false, :const? => false},
{:type=>"unsigned int*", :name=>"Neo", :ptr? => true, :const? => false}
:args=>[ {:type=>"int", :name=>"Trinity", :ptr? => false, :const? => false, :const_ptr? => false},
{:type=>"unsigned int*", :name=>"Neo", :ptr? => true, :const? => false, :const_ptr? => false}
],
:args_string=>"int Trinity, unsigned int* Neo",
:args_call=>"Trinity, Neo" }
@@ -725,14 +733,15 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => true,
:const_ptr? => false,
:str => "int cmock_to_return",
:void? => false
},
:name=>"TheMatrix",
:modifier=>"const",
:contains_ptr? => true,
:args=>[ {:type=>"int", :name=>"Trinity", :ptr? => false, :const? => false},
{:type=>"unsigned int*", :name=>"Neo", :ptr? => true, :const? => false}
:args=>[ {:type=>"int", :name=>"Trinity", :ptr? => false, :const? => false, :const_ptr? => false},
{:type=>"unsigned int*", :name=>"Neo", :ptr? => true, :const? => false, :const_ptr? => false}
],
:args_string=>"int Trinity, unsigned int* Neo",
:args_call=>"Trinity, Neo" },
@@ -741,14 +750,15 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => false,
:const_ptr? => false,
:str => "int cmock_to_return",
:void? => false
},
:name=>"Morpheus",
:modifier=>"",
:contains_ptr? => true,
:args=>[ {:type=>"int", :name=>"cmock_arg1", :ptr? => false, :const? => false},
{:type=>"unsigned int*", :name=>"cmock_arg2", :ptr? => true, :const? => false}
:args=>[ {:type=>"int", :name=>"cmock_arg1", :ptr? => false, :const? => false, :const_ptr? => false},
{:type=>"unsigned int*", :name=>"cmock_arg2", :ptr? => true, :const? => false, :const_ptr? => false}
],
:args_string=>"int cmock_arg1, unsigned int* cmock_arg2",
:args_call=>"cmock_arg1, cmock_arg2"
@@ -767,13 +777,14 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => true,
:const_ptr? => false,
:str => "int cmock_to_return",
:void? => false
},
:modifier=>"const",
:contains_ptr? => true,
:args=>[ {:type=>"int", :name=>"Trinity", :ptr? => false, :const? => false},
{:type=>"unsigned int*", :name=>"Neo", :ptr? => true, :const? => false}
:args=>[ {:type=>"int", :name=>"Trinity", :ptr? => false, :const? => false, :const_ptr? => false},
{:type=>"unsigned int*", :name=>"Neo", :ptr? => true, :const? => false, :const_ptr? => false}
],
:args_string=>"int Trinity, unsigned int* Neo",
:args_call=>"Trinity, Neo"
@@ -781,7 +792,7 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
assert_equal(expected, @parser.parse("module", source)[:functions])
end
it "should properly handle const applied after asterisk in return type" do
it "should properly handle const applied after asterisk in return type (not legal C, but sometimes used)" do
source = "int * const PorkRoast(void);\n"
@@ -791,6 +802,7 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => true,
:const? => false,
:const_ptr? => true,
:str => "int* cmock_to_return",
:void? => false
},
@@ -816,12 +828,13 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => false,
:const_ptr? => false,
:str => "void cmock_to_return",
:void? => true
},
:modifier=>"",
:contains_ptr? => false,
:args=>[ {:type=>"int", :name=>"SingAlong", :ptr? => false, :const? => false} ],
:args=>[ {:type=>"int", :name=>"SingAlong", :ptr? => false, :const? => false, :const_ptr? => false} ],
:args_string=>"int SingAlong",
:args_call=>"SingAlong"
},
@@ -830,6 +843,7 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => false,
:const_ptr? => false,
:str => "int cmock_to_return",
:void? => false
},
@@ -854,13 +868,14 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => false,
:const_ptr? => false,
:str => "int cmock_to_return",
:void? => false
},
:name=>"DrHorrible",
:modifier=>"",
:contains_ptr? => false,
:args=>[ {:type=>"struct SingAlong", :name=>"Blog", :ptr? => false, :const? => false} ],
:args=>[ {:type=>"struct SingAlong", :name=>"Blog", :ptr? => false, :const? => false, :const_ptr? => false} ],
:args_string=>"struct SingAlong Blog",
:args_call=>"Blog"
},
@@ -869,13 +884,14 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => false,
:const_ptr? => false,
:str => "void cmock_to_return",
:void? => true
},
:name=>"Penny",
:modifier=>"",
:contains_ptr? => true,
:args=>[ {:type=>"struct _KeepYourHeadUp_*", :name=>"BillyBuddy", :ptr? => true, :const? => true} ],
:args=>[ {:type=>"struct _KeepYourHeadUp_*", :name=>"BillyBuddy", :ptr? => true, :const? => true, :const_ptr? => true} ],
:args_string=>"struct const _KeepYourHeadUp_* const BillyBuddy",
:args_call=>"BillyBuddy"
},
@@ -884,6 +900,7 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => false,
:const_ptr? => false,
:str => "struct TheseArentTheHammer cmock_to_return",
:void? => false
},
@@ -904,14 +921,15 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => false,
:const_ptr? => false,
:str => "void cmock_to_return",
:void? => true
},
:name=>"OrangePeel",
:modifier=>"",
:contains_ptr? => true,
:args=>[ {:type=>"union STARS_AND_STRIPES*", :name=>"a", :ptr? => true, :const? => false},
{:type=>"union AFL_CIO", :name=>"b", :ptr? => false, :const? => false}
:args=>[ {:type=>"union STARS_AND_STRIPES*", :name=>"a", :ptr? => true, :const? => false, :const_ptr? => false},
{:type=>"union AFL_CIO", :name=>"b", :ptr? => false, :const? => false, :const_ptr? => false}
],
:args_string=>"union STARS_AND_STRIPES* a, union AFL_CIO b",
:args_call=>"a, b" }]
@@ -926,17 +944,18 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => false,
:const_ptr? => false,
:str => "void cmock_to_return",
:void? => true
},
:name=>"ApplePeel",
:modifier=>"",
:contains_ptr? => true,
:args=>[ {:type=> "unsigned int", :name=>"const_param", :ptr? => false, :const? => true},
{: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? => false}
:args=>[ {:type=> "unsigned int", :name=>"const_param", :ptr? => false, :const? => true, :const_ptr? => false},
{:type=>"int", :name=>"int_param", :ptr? => false, :const? => false, :const_ptr? => false},
{:type=>"int", :name=>"integer", :ptr? => false, :const? => false, :const_ptr? => false},
{:type=>"char", :name=>"character", :ptr? => false, :const? => false, :const_ptr? => false},
{:type=>"int*", :name=>"constant", :ptr? => true, :const? => false, :const_ptr? => true}
],
: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" }]
@@ -951,17 +970,18 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => false,
:const_ptr? => false,
:str => "void cmock_to_return",
:void? => true
},
:name=>"LemonPeel",
:modifier=>"",
:contains_ptr? => true,
:args=>[ {:type=>"integer", :name=>"param", :ptr? => false, :const? => false},
{:type=>"character", :name=>"thing", :ptr? => false, :const? => false},
{:type=>"longint*", :name=>"junk", :ptr? => true, :const? => false},
{:type=>"constant", :name=>"value", :ptr? => false, :const? => false},
{:type=>"int32_t", :name=>"number", :ptr? => false, :const? => true}
:args=>[ {:type=>"integer", :name=>"param", :ptr? => false, :const? => false, :const_ptr? => false},
{:type=>"character", :name=>"thing", :ptr? => false, :const? => false, :const_ptr? => false},
{:type=>"longint*", :name=>"junk", :ptr? => true, :const? => false, :const_ptr? => false},
{:type=>"constant", :name=>"value", :ptr? => false, :const? => false, :const_ptr? => false},
{:type=>"int32_t", :name=>"number", :ptr? => false, :const? => true, :const_ptr? => false}
],
:args_string=>"integer param, character thing, longint* junk, constant value, int32_t const number",
:args_call=>"param, thing, junk, value, number" }]
@@ -976,16 +996,17 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => false,
:const_ptr? => false,
:str => "void cmock_to_return",
:void? => true
},
:name=>"CoinOperated",
:modifier=>"",
:contains_ptr? => false,
:args=>[ {:type=>"signed char", :name=>"abc", :ptr? => false, :const? => false},
{:type=>"unsigned long int", :name=>"xyz_123", :ptr? => false, :const? => true},
{:type=>"unsigned int", :name=>"abc_123", :ptr? => false, :const? => true},
{:type=>"long long", :name=>"arm_of_the_law", :ptr? => false, :const? => false}
:args=>[ {:type=>"signed char", :name=>"abc", :ptr? => false, :const? => false, :const_ptr? => false},
{:type=>"unsigned long int", :name=>"xyz_123", :ptr? => false, :const? => true, :const_ptr? => false},
{:type=>"unsigned int", :name=>"abc_123", :ptr? => false, :const? => true, :const_ptr? => false},
{:type=>"long long", :name=>"arm_of_the_law", :ptr? => false, :const? => false, :const_ptr? => false}
],
:args_string=>"signed char abc, const unsigned long int xyz_123, unsigned int const abc_123, long long arm_of_the_law",
:args_call=>"abc, xyz_123, abc_123, arm_of_the_law" }]
@@ -1000,16 +1021,17 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => false,
:const_ptr? => false,
:str => "void cmock_to_return",
:void? => true
},
:name=>"CardOperated",
:modifier=>"",
:contains_ptr? => true,
:args=>[ {:type=>"CUSTOM_TYPE", :name=>"abc", :ptr? => false, :const? => false},
{:type=>"CUSTOM_TYPE*", :name=>"xyz_123", :ptr? => true, :const? => false},
{:type=>"CUSTOM_TYPE", :name=>"abcxyz", :ptr? => false, :const? => true},
{:type=>"struct CUSTOM_TYPE const*", :name=>"abc123", :ptr? => true, :const? => true}
:args=>[ {:type=>"CUSTOM_TYPE", :name=>"abc", :ptr? => false, :const? => false, :const_ptr? => false},
{:type=>"CUSTOM_TYPE*", :name=>"xyz_123", :ptr? => true, :const? => false, :const_ptr? => false},
{:type=>"CUSTOM_TYPE", :name=>"abcxyz", :ptr? => false, :const? => true, :const_ptr? => false},
{:type=>"struct CUSTOM_TYPE const*", :name=>"abc123", :ptr? => true, :const? => true, :const_ptr? => true}
],
:args_string=>"CUSTOM_TYPE abc, CUSTOM_TYPE* xyz_123, CUSTOM_TYPE const abcxyz, struct CUSTOM_TYPE const* const abc123",
:args_call=>"abc, xyz_123, abcxyz, abc123" }]
@@ -1024,16 +1046,17 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => false,
:const_ptr? => false,
:str => "void cmock_to_return",
:void? => true
},
:name=>"KeyOperated",
:modifier=>"",
:contains_ptr? => true,
:args=>[ {:type=>"CUSTOM_TYPE*", :name=>"thing1", :ptr? => true, :const? => false},
{:type=>"int*", :name=>"thing2", :ptr? => true, :const? => false},
{:type=>"char*", :name=>"thing3", :ptr? => false, :const? => false}, #THIS one will likely change in the future when we improve multidimensional array support
{:type=>"int**", :name=>"thing4", :ptr? => true, :const? => false} #THIS one will likely change in the future when we improve multidimensional array support
:args=>[ {:type=>"CUSTOM_TYPE*", :name=>"thing1", :ptr? => true, :const? => false, :const_ptr? => false},
{:type=>"int*", :name=>"thing2", :ptr? => true, :const? => false, :const_ptr? => false},
{:type=>"char*", :name=>"thing3", :ptr? => true, :const? => false, :const_ptr? => false}, #THIS one will likely change in the future when we improve multidimensional array support
{:type=>"int**", :name=>"thing4", :ptr? => true, :const? => false, :const_ptr? => false} #THIS one will likely change in the future when we improve multidimensional array support
],
:args_string=>"CUSTOM_TYPE* thing1, int* thing2, char* thing3, int** thing4",
:args_call=>"thing1, thing2, thing3, thing4" }]
@@ -1048,15 +1071,16 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => false,
:const_ptr? => false,
:str => "void cmock_to_return",
:void? => true
},
:name=>"Cheese",
:modifier=>"",
:contains_ptr? => false,
:args=>[ {:type=>"unsigned CUSTOM_TYPE", :name=>"abc", :ptr? => false, :const? => false},
{:type=>"unsigned", :name=>"xyz", :ptr? => false, :const? => false},
{:type=>"CUSTOM_TYPE1 CUSTOM_TYPE2", :name=>"pdq", :ptr? => false, :const? => false}
:args=>[ {:type=>"unsigned CUSTOM_TYPE", :name=>"abc", :ptr? => false, :const? => false, :const_ptr? => false},
{:type=>"unsigned", :name=>"xyz", :ptr? => false, :const? => false, :const_ptr? => false},
{:type=>"CUSTOM_TYPE1 CUSTOM_TYPE2", :name=>"pdq", :ptr? => false, :const? => false, :const_ptr? => false}
],
:args_string=>"unsigned CUSTOM_TYPE abc, unsigned xyz, CUSTOM_TYPE1 CUSTOM_TYPE2 pdq",
:args_call=>"abc, xyz, pdq" }]
@@ -1071,13 +1095,14 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => false,
:const_ptr? => false,
:str => "void cmock_to_return",
:void? => true
},
:name=>"FunkyTurkey",
:modifier=>"",
:contains_ptr? => false,
:args=>[ {:type=>"cmock_module_func_ptr1", :name=>"func_ptr", :ptr? => false, :const? => false}
:args=>[ {:type=>"cmock_module_func_ptr1", :name=>"func_ptr", :ptr? => false, :const? => false, :const_ptr? => false}
],
:args_string=>"cmock_module_func_ptr1 func_ptr",
:args_call=>"func_ptr" }]
@@ -1094,13 +1119,14 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => false,
:const_ptr? => false,
:str => "void cmock_to_return",
:void? => true
},
:name=>"FunkyTurkey",
:modifier=>"",
:contains_ptr? => false,
:args=>[ {:type=>"cmock_module_func_ptr1", :name=>"func_ptr", :ptr? => false, :const? => false}
:args=>[ {:type=>"cmock_module_func_ptr1", :name=>"func_ptr", :ptr? => false, :const? => false, :const_ptr? => false}
],
:args_string=>"cmock_module_func_ptr1 func_ptr",
:args_call=>"func_ptr" }]
@@ -1117,13 +1143,14 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => false,
:const_ptr? => false,
:str => "void cmock_to_return",
:void? => true
},
:name=>"FunkyTurkey",
:modifier=>"",
:contains_ptr? => false,
:args=>[ {:type=>"cmock_module_func_ptr1", :name=>"func_ptr", :ptr? => false, :const? => false}
:args=>[ {:type=>"cmock_module_func_ptr1", :name=>"func_ptr", :ptr? => false, :const? => false, :const_ptr? => false}
],
:args_string=>"cmock_module_func_ptr1 func_ptr",
:args_call=>"func_ptr" }]
@@ -1140,13 +1167,14 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => false,
:const_ptr? => false,
:str => "void cmock_to_return",
:void? => true
},
:name=>"FunkyChicken",
:modifier=>"",
:contains_ptr? => false,
:args=>[ {:type=>"cmock_module_func_ptr1", :name=>"func_ptr", :ptr? => false, :const? => true}
:args=>[ {:type=>"cmock_module_func_ptr1", :name=>"func_ptr", :ptr? => false, :const? => true, :const_ptr? => false}
],
:args_string=>"cmock_module_func_ptr1 const func_ptr",
:args_call=>"func_ptr" }]
@@ -1163,13 +1191,14 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
# :name => 'cmock_to_return',
# :ptr? => false,
# :const? => false,
# :const_ptr? => false,
# :str => "void cmock_to_return",
# :void? => true
# },
# :name=>"FunkyParrot",
# :modifier=>"",
# :contains_ptr? => false,
# :args=>[ {:type=>"cmock_module_func_ptr1", :name=>"func_ptr", :ptr? => false, :const? => false}
# :args=>[ {:type=>"cmock_module_func_ptr1", :name=>"func_ptr", :ptr? => false, :const? => false, :const_ptr? => false}
# ],
# :args_string=>"cmock_module_func_ptr1 func_ptr",
# :args_call=>"func_ptr" }]
@@ -1186,14 +1215,15 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => false,
:const_ptr? => false,
:str => "void cmock_to_return",
:void? => true
},
:name=>"FunkyBudgie",
:modifier=>"",
:contains_ptr? => false,
:args=>[ {:type=>"cmock_module_func_ptr1", :name=>"func_ptr1", :ptr? => false, :const? => false},
{:type=>"cmock_module_func_ptr2", :name=>"func_ptr2", :ptr? => false, :const? => false}
:args=>[ {:type=>"cmock_module_func_ptr1", :name=>"func_ptr1", :ptr? => false, :const? => false, :const_ptr? => false},
{:type=>"cmock_module_func_ptr2", :name=>"func_ptr2", :ptr? => false, :const? => false, :const_ptr? => false}
],
:args_string=>"cmock_module_func_ptr1 func_ptr1, cmock_module_func_ptr2 func_ptr2",
:args_call=>"func_ptr1, func_ptr2" }]
@@ -1210,15 +1240,16 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => true,
:const? => false,
:const_ptr? => false,
:str => "struct mytype* cmock_to_return",
:void? => false
},
:name=>"FunkyRobin",
:modifier=>"",
:contains_ptr? => false,
:args=>[ {:type=>"uint16_t", :name=>"num1", :ptr? => false, :const? => false},
{:type=>"uint16_t", :name=>"num2", :ptr? => false, :const? => false},
{:type=>"cmock_module_func_ptr1", :name=>"func_ptr1", :ptr? => false, :const? => false}
:args=>[ {:type=>"uint16_t", :name=>"num1", :ptr? => false, :const? => false, :const_ptr? => false},
{:type=>"uint16_t", :name=>"num2", :ptr? => false, :const? => false, :const_ptr? => false},
{:type=>"cmock_module_func_ptr1", :name=>"func_ptr1", :ptr? => false, :const? => false, :const_ptr? => false}
],
:args_string=>"uint16_t num1, uint16_t num2, cmock_module_func_ptr1 func_ptr1",
:args_call=>"num1, num2, func_ptr1" }]
@@ -1235,13 +1266,14 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => false,
:const_ptr? => false,
:str => "void cmock_to_return",
:void? => true
},
:name=>"FunkyFowl",
:modifier=>"",
:contains_ptr? => false,
:args=>[ {:type=>"cmock_module_func_ptr1", :name=>"cmock_arg1", :ptr? => false, :const? => true}
:args=>[ {:type=>"cmock_module_func_ptr1", :name=>"cmock_arg1", :ptr? => false, :const? => true, :const_ptr? => false}
],
:args_string=>"cmock_module_func_ptr1 const cmock_arg1",
:args_call=>"cmock_arg1" }]
@@ -1258,13 +1290,14 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => false,
:const_ptr? => false,
:str => "cmock_module_func_ptr1 cmock_to_return",
:void? => false
},
:name=>"FunkyPidgeon",
:modifier=>"",
:contains_ptr? => false,
:args=>[ {:type=>"char", :name=>"op_code", :ptr? => false, :const? => true}
:args=>[ {:type=>"char", :name=>"op_code", :ptr? => false, :const? => true, :const_ptr? => false}
],
:args_string=>"const char op_code",
:args_call=>"op_code" }]
@@ -1281,6 +1314,7 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => false,
:const_ptr? => false,
:str => "cmock_module_func_ptr1 cmock_to_return",
:void? => false
},
@@ -1303,6 +1337,7 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => false,
:const_ptr? => false,
:str => "cmock_module_func_ptr1 cmock_to_return",
:void? => false
},
@@ -1325,14 +1360,15 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => false,
:const_ptr? => false,
:str => "cmock_module_func_ptr1 cmock_to_return",
:void? => false
},
:name=>"FunkyMacaw",
:modifier=>"",
:contains_ptr? => true,
:args=>[ {:type=>"double*", :name=>"foo", :ptr? => true, :const? => false},
{:type=>"THING*", :name=>"bar", :ptr? => true, :const? => false}
:args=>[ {:type=>"double*", :name=>"foo", :ptr? => true, :const? => false, :const_ptr? => false},
{:type=>"THING*", :name=>"bar", :ptr? => true, :const? => false, :const_ptr? => false}
],
:args_string=>"double* foo, THING* bar",
:args_call=>"foo, bar" }]
@@ -1349,17 +1385,18 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => "cmock_to_return",
:ptr? => false,
:const? => false,
:const_ptr? => false,
:str => "int cmock_to_return",
:void? => false
},
:name=>"sqlite3_bind_text",
:modifier=>"SQLITE_API",
:contains_ptr? => true,
:args=>[ {:type=>"sqlite3_stmt*", :name=>"cmock_arg2", :ptr? => true, :const? => false},
{:type=>"int", :name=>"cmock_arg3", :ptr? => false, :const? => false},
{:type=>"char*", :name=>"cmock_arg4", :ptr? => false, :const? => true},
{:type=>"int", :name=>"n", :ptr? => false, :const? => false},
{:type=>"cmock_module_func_ptr1", :name=>"cmock_arg1", :ptr? => false, :const? => false}
:args=>[ {:type=>"sqlite3_stmt*", :name=>"cmock_arg2", :ptr? => true, :const? => false, :const_ptr? => false},
{:type=>"int", :name=>"cmock_arg3", :ptr? => false, :const? => false, :const_ptr? => false},
{:type=>"char*", :name=>"cmock_arg4", :ptr? => true, :const? => true, :const_ptr? => false},
{:type=>"int", :name=>"n", :ptr? => false, :const? => false, :const_ptr? => false},
{:type=>"cmock_module_func_ptr1", :name=>"cmock_arg1", :ptr? => false, :const? => false, :const_ptr? => false}
],
:args_string=>"sqlite3_stmt* cmock_arg2, int cmock_arg3, const char* cmock_arg4, int n, cmock_module_func_ptr1 cmock_arg1",
:args_call=>"cmock_arg2, cmock_arg3, cmock_arg4, n, cmock_arg1" }]
@@ -1376,14 +1413,15 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => false,
:const_ptr? => false,
:str => "int cmock_to_return",
:void? => false
},
:name=>"XFiles",
:modifier=>"",
:contains_ptr? => false,
:args=>[ {:type=>"int", :name=>"Scully", :ptr? => false, :const? => false},
{:type=>"int", :name=>"Mulder", :ptr? => false, :const? => false}
:args=>[ {:type=>"int", :name=>"Scully", :ptr? => false, :const? => false, :const_ptr? => false},
{:type=>"int", :name=>"Mulder", :ptr? => false, :const? => false, :const_ptr? => false}
],
:args_string=>"int Scully, int Mulder",
:args_call=>"Scully, Mulder"
@@ -1398,13 +1436,14 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => true,
:const? => false,
:const_ptr? => false,
:str => "void* cmock_to_return",
:void? => false
},
:name=>"MoreSillySongs",
:modifier=>"",
:contains_ptr? => true,
:args=>[ {:type=>"void*", :name=>"stuff", :ptr? => true, :const? => false}
:args=>[ {:type=>"void*", :name=>"stuff", :ptr? => true, :const? => false, :const_ptr? => false}
],
:args_string=>"void* stuff",
:args_call=>"stuff"
@@ -1419,14 +1458,15 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => false,
:const_ptr? => false,
:str => "int cmock_to_return",
:void? => false
},
:name=>"LaverneAndShirley",
:modifier=>"",
:contains_ptr? => false,
:args=>[ {:type=>"int", :name=>"Lenny", :ptr? => false, :const? => false},
{:type=>"int", :name=>"Squiggy", :ptr? => false, :const? => false}
:args=>[ {:type=>"int", :name=>"Lenny", :ptr? => false, :const? => false, :const_ptr? => false},
{:type=>"int", :name=>"Squiggy", :ptr? => false, :const? => false, :const_ptr? => false}
],
:args_string=>"int Lenny, int Squiggy",
:args_call=>"Lenny, Squiggy"
@@ -1441,14 +1481,15 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
:name => 'cmock_to_return',
:ptr? => false,
:const? => false,
:const_ptr? => false,
:str => "int cmock_to_return",
:void? => false
},
:name=>"TheCosbyShow",
:modifier=>"",
:contains_ptr? => false,
:args=>[ {:type=>"int", :name=>"Cliff", :ptr? => false, :const? => false},
{:type=>"int", :name=>"Claire", :ptr? => false, :const? => false}
:args=>[ {:type=>"int", :name=>"Cliff", :ptr? => false, :const? => false, :const_ptr? => false},
{:type=>"int", :name=>"Claire", :ptr? => false, :const? => false, :const_ptr? => false}
],
:args_string=>"int Cliff, int Claire",
:args_call=>"Cliff, Claire"