mirror of
https://github.com/ThrowTheSwitch/CMock.git
synced 2026-06-05 21:15:20 +00:00
Merge branch 'master' into cmock_2_6_rc
This commit is contained in:
@@ -39,6 +39,18 @@ describe CMockGeneratorPluginReturnThruPtr, "Verify CMockGeneratorPluginReturnTh
|
||||
:return => test_return[:void],
|
||||
:contains_ptr? => true }
|
||||
|
||||
@void_ptr_func = {:name => "Spruce",
|
||||
:args => [{ :type => "void*",
|
||||
:name => "pork",
|
||||
:ptr? => true,
|
||||
},
|
||||
{ :type => "MY_FANCY_VOID*",
|
||||
:name => "salad",
|
||||
:ptr? => true,
|
||||
}],
|
||||
:return => test_return[:void],
|
||||
:contains_ptr? => true }
|
||||
|
||||
#no strict ordering
|
||||
@cmock_generator_plugin_return_thru_ptr = CMockGeneratorPluginReturnThruPtr.new(@config, @utils)
|
||||
end
|
||||
@@ -56,6 +68,13 @@ describe CMockGeneratorPluginReturnThruPtr, "Verify CMockGeneratorPluginReturnTh
|
||||
@utils.expect :ptr_or_str?, true, ['int*']
|
||||
end
|
||||
|
||||
def void_ptr_func_expect
|
||||
@utils.expect :ptr_or_str?, true, ['void*']
|
||||
@utils.expect :ptr_or_str?, true, ['MY_FANCY_VOID*']
|
||||
|
||||
@config.expect :treat_as_void, ['MY_FANCY_VOID']
|
||||
end
|
||||
|
||||
it "have set up internal priority correctly on init" do
|
||||
assert_equal(9, @cmock_generator_plugin_return_thru_ptr.priority)
|
||||
end
|
||||
@@ -100,6 +119,29 @@ describe CMockGeneratorPluginReturnThruPtr, "Verify CMockGeneratorPluginReturnTh
|
||||
assert_equal(expected, returned)
|
||||
end
|
||||
|
||||
it "add a mock function declaration with sizeof(<name>) for void pointer arguments" do
|
||||
void_ptr_func_expect();
|
||||
|
||||
expected =
|
||||
"#define Spruce_ReturnThruPtr_pork(pork)" +
|
||||
" Spruce_CMockReturnMemThruPtr_pork(__LINE__, pork, sizeof(*pork))\n" +
|
||||
"#define Spruce_ReturnArrayThruPtr_pork(pork, cmock_len)" +
|
||||
" Spruce_CMockReturnMemThruPtr_pork(__LINE__, pork, cmock_len * sizeof(*pork))\n" +
|
||||
"#define Spruce_ReturnMemThruPtr_pork(pork, cmock_size)" +
|
||||
" Spruce_CMockReturnMemThruPtr_pork(__LINE__, pork, cmock_size)\n" +
|
||||
"void Spruce_CMockReturnMemThruPtr_pork(UNITY_LINE_TYPE cmock_line, void* pork, size_t cmock_size);\n" +
|
||||
"#define Spruce_ReturnThruPtr_salad(salad)" +
|
||||
" Spruce_CMockReturnMemThruPtr_salad(__LINE__, salad, sizeof(*salad))\n" +
|
||||
"#define Spruce_ReturnArrayThruPtr_salad(salad, cmock_len)" +
|
||||
" Spruce_CMockReturnMemThruPtr_salad(__LINE__, salad, cmock_len * sizeof(*salad))\n" +
|
||||
"#define Spruce_ReturnMemThruPtr_salad(salad, cmock_size)" +
|
||||
" Spruce_CMockReturnMemThruPtr_salad(__LINE__, salad, cmock_size)\n" +
|
||||
"void Spruce_CMockReturnMemThruPtr_salad(UNITY_LINE_TYPE cmock_line, MY_FANCY_VOID* salad, size_t cmock_size);\n"
|
||||
|
||||
returned = @cmock_generator_plugin_return_thru_ptr.mock_function_declarations(@void_ptr_func)
|
||||
assert_equal(expected, returned)
|
||||
end
|
||||
|
||||
it "add mock interfaces only for non-const pointer arguments" do
|
||||
complex_func_expect();
|
||||
|
||||
|
||||
@@ -2867,5 +2867,19 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
|
||||
assert_equal(expected, @parser.transform_inline_functions(source))
|
||||
end
|
||||
|
||||
it "Transform macros with escapes of empty lines" do
|
||||
source =
|
||||
"#define some_msg_t_FIELDLIST(X, a) \\\n" +
|
||||
"\n" +
|
||||
"#define some_msg_t_CALLBACK NULL\n"
|
||||
|
||||
expected =
|
||||
"#define some_msg_t_FIELDLIST(X, a) \n" +
|
||||
"#define some_msg_t_CALLBACK NULL\n"
|
||||
|
||||
@parser.treat_inlines = :include
|
||||
assert_equal(expected, @parser.transform_inline_functions(source))
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user