mirror of
https://github.com/ThrowTheSwitch/CMock.git
synced 2026-06-05 21:15:20 +00:00
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:
@@ -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*/, ' ')
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user