mirror of
https://github.com/ThrowTheSwitch/CMock.git
synced 2026-09-24 19:17:26 +00:00
Fix warnings between clang and gcc usage
This commit is contained in:
@@ -20,7 +20,7 @@ void Timer_Reset(void)
|
|||||||
AT91C_BASE_TC0->TC_CCR = AT91C_TC_CLKDIS;
|
AT91C_BASE_TC0->TC_CCR = AT91C_TC_CLKDIS;
|
||||||
AT91C_BASE_TC0->TC_IDR = 0xffffffff;
|
AT91C_BASE_TC0->TC_IDR = 0xffffffff;
|
||||||
dummy = AT91C_BASE_TC0->TC_SR;
|
dummy = AT91C_BASE_TC0->TC_SR;
|
||||||
dummy = dummy;
|
(void)dummy;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Timer_ConfigureMode(void)
|
void Timer_ConfigureMode(void)
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ class CMockGeneratorPluginExpect
|
|||||||
lines << " #{function[:return][:type]} ReturnVal;\n" unless function[:return][:void?]
|
lines << " #{function[:return][:type]} ReturnVal;\n" unless function[:return][:void?]
|
||||||
lines << " int CallOrder;\n" if @ordered
|
lines << " int CallOrder;\n" if @ordered
|
||||||
function[:args].each do |arg|
|
function[:args].each do |arg|
|
||||||
lines << " #{arg[:volatile?] ? "volatile #{arg[:type]}" : arg[:type]} Expected_#{arg[:name]};\n"
|
lines << " #{arg[:type]} Expected_#{arg[:name]};\n"
|
||||||
end
|
end
|
||||||
lines
|
lines
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -72,6 +72,11 @@ class CMockGeneratorPluginReturnThruPtr
|
|||||||
lines
|
lines
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def as_void_ptr(arg, arg_name)
|
||||||
|
# volatile pointers use CMOCK_DEVOLATILE_PTR to avoid -Wcast-qual
|
||||||
|
arg[:volatile?] ? "CMOCK_DEVOLATILE_PTR(#{arg_name})" : "(void*)#{arg_name}"
|
||||||
|
end
|
||||||
|
|
||||||
def mock_precheck_return_thru_ptr(function)
|
def mock_precheck_return_thru_ptr(function)
|
||||||
return '' unless @ignore_used
|
return '' unless @ignore_used
|
||||||
|
|
||||||
@@ -84,7 +89,7 @@ class CMockGeneratorPluginReturnThruPtr
|
|||||||
lines << " cmock_call_instance->ReturnThruPtr_#{arg_name}_Used)\n"
|
lines << " cmock_call_instance->ReturnThruPtr_#{arg_name}_Used)\n"
|
||||||
lines << " {\n"
|
lines << " {\n"
|
||||||
lines << " UNITY_TEST_ASSERT_NOT_NULL(#{arg_name}, cmock_line, CMockStringPtrIsNULL);\n"
|
lines << " UNITY_TEST_ASSERT_NOT_NULL(#{arg_name}, cmock_line, CMockStringPtrIsNULL);\n"
|
||||||
lines << " CMOCK_MEMCPY((void*)#{arg_name}, (const void*)cmock_call_instance->ReturnThruPtr_#{arg_name}_Val,\n"
|
lines << " CMOCK_MEMCPY(#{as_void_ptr(arg, arg_name)}, (const void*)cmock_call_instance->ReturnThruPtr_#{arg_name}_Val,\n"
|
||||||
lines << " cmock_call_instance->ReturnThruPtr_#{arg_name}_Size);\n"
|
lines << " cmock_call_instance->ReturnThruPtr_#{arg_name}_Size);\n"
|
||||||
lines << " }\n"
|
lines << " }\n"
|
||||||
end
|
end
|
||||||
@@ -138,7 +143,7 @@ class CMockGeneratorPluginReturnThruPtr
|
|||||||
lines << " if (cmock_call_instance->ReturnThruPtr_#{arg_name}_Used)\n"
|
lines << " if (cmock_call_instance->ReturnThruPtr_#{arg_name}_Used)\n"
|
||||||
lines << " {\n"
|
lines << " {\n"
|
||||||
lines << " UNITY_TEST_ASSERT_NOT_NULL(#{arg_name}, cmock_line, CMockStringPtrIsNULL);\n"
|
lines << " UNITY_TEST_ASSERT_NOT_NULL(#{arg_name}, cmock_line, CMockStringPtrIsNULL);\n"
|
||||||
lines << " CMOCK_MEMCPY((void*)#{arg_name}, (const void*)cmock_call_instance->ReturnThruPtr_#{arg_name}_Val,\n"
|
lines << " CMOCK_MEMCPY(#{as_void_ptr(arg, arg_name)}, (const void*)cmock_call_instance->ReturnThruPtr_#{arg_name}_Val,\n"
|
||||||
lines << " cmock_call_instance->ReturnThruPtr_#{arg_name}_Size);\n"
|
lines << " cmock_call_instance->ReturnThruPtr_#{arg_name}_Size);\n"
|
||||||
lines << " }\n"
|
lines << " }\n"
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -96,7 +96,16 @@ class CMockGeneratorUtils
|
|||||||
|
|
||||||
def code_assign_argument_quickly(dest, arg)
|
def code_assign_argument_quickly(dest, arg)
|
||||||
if arg[:ptr?] || @treat_as.include?(arg[:type])
|
if arg[:ptr?] || @treat_as.include?(arg[:type])
|
||||||
cast = arg[:array_dims] ? "(#{arg[:type]})" : ''
|
# For volatile pointer args, cast through CMOCK_MEM_PTR_AS_INT (a pointer-sized
|
||||||
|
# integer) to avoid -Wdiscarded-qualifiers when storing in a non-volatile Expected_
|
||||||
|
# struct field.
|
||||||
|
cast = if arg[:volatile?]
|
||||||
|
"(#{arg[:type]})(CMOCK_MEM_PTR_AS_INT)"
|
||||||
|
elsif arg[:array_dims]
|
||||||
|
"(#{arg[:type]})"
|
||||||
|
else
|
||||||
|
''
|
||||||
|
end
|
||||||
" #{dest} = #{cast}#{arg[:name]};\n"
|
" #{dest} = #{cast}#{arg[:name]};\n"
|
||||||
else
|
else
|
||||||
assert_expr = "sizeof(#{arg[:name]}) == sizeof(#{arg[:type]}) ? 1 : -1"
|
assert_expr = "sizeof(#{arg[:name]}) == sizeof(#{arg[:type]}) ? 1 : -1"
|
||||||
@@ -173,6 +182,18 @@ class CMockGeneratorUtils
|
|||||||
|
|
||||||
# private ######################
|
# private ######################
|
||||||
|
|
||||||
|
# Returns the C expression for the actual arg when passed to Unity assertion macros.
|
||||||
|
# Unity macros cast actuals to UNITY_INTERNAL_PTR (const void*), which drops volatile.
|
||||||
|
# For volatile pointer args, CMOCK_DEVOLATILE_PTR routes through a pointer-sized integer
|
||||||
|
# to avoid -Wcast-qual.
|
||||||
|
def actual_arg_expr(arg, pre, arg_name)
|
||||||
|
if arg[:volatile?] && pre.empty?
|
||||||
|
"CMOCK_DEVOLATILE_PTR(#{arg_name})"
|
||||||
|
else
|
||||||
|
"#{pre}#{arg_name}"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def lookup_expect_type(_function, arg)
|
def lookup_expect_type(_function, arg)
|
||||||
c_type = arg[:type]
|
c_type = arg[:type]
|
||||||
arg_name = arg[:name]
|
arg_name = arg[:name]
|
||||||
@@ -217,6 +238,7 @@ class CMockGeneratorUtils
|
|||||||
|
|
||||||
def code_verify_an_arg_expectation_with_no_arrays(function, arg)
|
def code_verify_an_arg_expectation_with_no_arrays(function, arg)
|
||||||
c_type, arg_name, expected, ignore, unity_func, pre = lookup_expect_type(function, arg)
|
c_type, arg_name, expected, ignore, unity_func, pre = lookup_expect_type(function, arg)
|
||||||
|
actual_arg = actual_arg_expr(arg, pre, arg_name)
|
||||||
elem_size = ptr_to_array_elem_size(arg, c_type)
|
elem_size = ptr_to_array_elem_size(arg, c_type)
|
||||||
lines = ''
|
lines = ''
|
||||||
lines << " if (!#{ignore})\n" if @ignore_arg
|
lines << " if (!#{ignore})\n" if @ignore_arg
|
||||||
@@ -225,27 +247,27 @@ class CMockGeneratorUtils
|
|||||||
case unity_func
|
case unity_func
|
||||||
when 'UNITY_TEST_ASSERT_EQUAL_MEMORY'
|
when 'UNITY_TEST_ASSERT_EQUAL_MEMORY'
|
||||||
c_type_local = c_type.gsub(/\*$/, '')
|
c_type_local = c_type.gsub(/\*$/, '')
|
||||||
lines << " UNITY_TEST_ASSERT_EQUAL_MEMORY(#{pre}#{expected}, #{pre}#{arg_name}, sizeof(#{c_type_local}), cmock_line, CMockStringMismatch);\n"
|
lines << " UNITY_TEST_ASSERT_EQUAL_MEMORY(#{pre}#{expected}, #{actual_arg}, sizeof(#{c_type_local}), cmock_line, CMockStringMismatch);\n"
|
||||||
when 'UNITY_TEST_ASSERT_EQUAL_MEMORY_ARRAY'
|
when 'UNITY_TEST_ASSERT_EQUAL_MEMORY_ARRAY'
|
||||||
if pre == '&'
|
if pre == '&'
|
||||||
lines << " UNITY_TEST_ASSERT_EQUAL_MEMORY(#{pre}#{expected}, #{pre}#{arg_name}, #{elem_size}, cmock_line, CMockStringMismatch);\n"
|
lines << " UNITY_TEST_ASSERT_EQUAL_MEMORY(#{pre}#{expected}, #{actual_arg}, #{elem_size}, cmock_line, CMockStringMismatch);\n"
|
||||||
else
|
else
|
||||||
lines << " if (#{pre}#{expected} == NULL)\n"
|
lines << " if (#{pre}#{expected} == NULL)\n"
|
||||||
lines << " { UNITY_TEST_ASSERT_NULL(#{pre}#{arg_name}, cmock_line, CMockStringExpNULL); }\n"
|
lines << " { UNITY_TEST_ASSERT_NULL(#{actual_arg}, cmock_line, CMockStringExpNULL); }\n"
|
||||||
lines << " else\n"
|
lines << " else\n"
|
||||||
lines << " { UNITY_TEST_ASSERT_EQUAL_MEMORY(#{pre}#{expected}, #{pre}#{arg_name}, #{elem_size}, cmock_line, CMockStringMismatch); }\n"
|
lines << " { UNITY_TEST_ASSERT_EQUAL_MEMORY(#{pre}#{expected}, #{actual_arg}, #{elem_size}, cmock_line, CMockStringMismatch); }\n"
|
||||||
end
|
end
|
||||||
when /_ARRAY/
|
when /_ARRAY/
|
||||||
if pre == '&'
|
if pre == '&'
|
||||||
lines << " #{unity_func}(#{pre}#{expected}, #{pre}#{arg_name}, 1, cmock_line, CMockStringMismatch);\n"
|
lines << " #{unity_func}(#{pre}#{expected}, #{actual_arg}, 1, cmock_line, CMockStringMismatch);\n"
|
||||||
else
|
else
|
||||||
lines << " if (#{pre}#{expected} == NULL)\n"
|
lines << " if (#{pre}#{expected} == NULL)\n"
|
||||||
lines << " { UNITY_TEST_ASSERT_NULL(#{pre}#{arg_name}, cmock_line, CMockStringExpNULL); }\n"
|
lines << " { UNITY_TEST_ASSERT_NULL(#{actual_arg}, cmock_line, CMockStringExpNULL); }\n"
|
||||||
lines << " else\n"
|
lines << " else\n"
|
||||||
lines << " { #{unity_func}(#{pre}#{expected}, #{pre}#{arg_name}, 1, cmock_line, CMockStringMismatch); }\n"
|
lines << " { #{unity_func}(#{pre}#{expected}, #{actual_arg}, 1, cmock_line, CMockStringMismatch); }\n"
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
lines << " #{unity_func}(#{pre}#{expected}, #{pre}#{arg_name}, cmock_line, CMockStringMismatch);\n"
|
lines << " #{unity_func}(#{pre}#{expected}, #{actual_arg}, cmock_line, CMockStringMismatch);\n"
|
||||||
end
|
end
|
||||||
lines << " }\n"
|
lines << " }\n"
|
||||||
lines
|
lines
|
||||||
@@ -253,6 +275,7 @@ class CMockGeneratorUtils
|
|||||||
|
|
||||||
def code_verify_an_arg_expectation_with_normal_arrays(function, arg)
|
def code_verify_an_arg_expectation_with_normal_arrays(function, arg)
|
||||||
c_type, arg_name, expected, ignore, unity_func, pre = lookup_expect_type(function, arg)
|
c_type, arg_name, expected, ignore, unity_func, pre = lookup_expect_type(function, arg)
|
||||||
|
actual_arg = actual_arg_expr(arg, pre, arg_name)
|
||||||
depth_name = arg[:ptr?] || arg[:string?] ? "cmock_call_instance->Expected_#{arg_name}_Depth" : 1
|
depth_name = arg[:ptr?] || arg[:string?] ? "cmock_call_instance->Expected_#{arg_name}_Depth" : 1
|
||||||
elem_size = ptr_to_array_elem_size(arg, c_type)
|
elem_size = ptr_to_array_elem_size(arg, c_type)
|
||||||
lines = ''
|
lines = ''
|
||||||
@@ -262,33 +285,33 @@ class CMockGeneratorUtils
|
|||||||
case unity_func
|
case unity_func
|
||||||
when 'UNITY_TEST_ASSERT_EQUAL_MEMORY'
|
when 'UNITY_TEST_ASSERT_EQUAL_MEMORY'
|
||||||
c_type_local = c_type.gsub(/\*$/, '')
|
c_type_local = c_type.gsub(/\*$/, '')
|
||||||
lines << " UNITY_TEST_ASSERT_EQUAL_MEMORY(#{pre}#{expected}, #{pre}#{arg_name}, sizeof(#{c_type_local}), cmock_line, CMockStringMismatch);\n"
|
lines << " UNITY_TEST_ASSERT_EQUAL_MEMORY(#{pre}#{expected}, #{actual_arg}, sizeof(#{c_type_local}), cmock_line, CMockStringMismatch);\n"
|
||||||
when 'UNITY_TEST_ASSERT_EQUAL_MEMORY_ARRAY'
|
when 'UNITY_TEST_ASSERT_EQUAL_MEMORY_ARRAY'
|
||||||
if pre == '&'
|
if pre == '&'
|
||||||
lines << " UNITY_TEST_ASSERT_EQUAL_MEMORY(#{pre}#{expected}, #{pre}#{arg_name}, #{elem_size}, cmock_line, CMockStringMismatch);\n"
|
lines << " UNITY_TEST_ASSERT_EQUAL_MEMORY(#{pre}#{expected}, #{actual_arg}, #{elem_size}, cmock_line, CMockStringMismatch);\n"
|
||||||
else
|
else
|
||||||
lines << " if (#{pre}#{expected} == NULL)\n"
|
lines << " if (#{pre}#{expected} == NULL)\n"
|
||||||
lines << " { UNITY_TEST_ASSERT_NULL(#{pre}#{arg_name}, cmock_line, CMockStringExpNULL); }\n"
|
lines << " { UNITY_TEST_ASSERT_NULL(#{actual_arg}, cmock_line, CMockStringExpNULL); }\n"
|
||||||
lines << " else\n"
|
lines << " else\n"
|
||||||
lines << " { UNITY_TEST_ASSERT_EQUAL_MEMORY_ARRAY(#{pre}#{expected}, #{pre}#{arg_name}, #{elem_size}, #{depth_name}, cmock_line, CMockStringMismatch); }\n"
|
lines << " { UNITY_TEST_ASSERT_EQUAL_MEMORY_ARRAY(#{pre}#{expected}, #{actual_arg}, #{elem_size}, #{depth_name}, cmock_line, CMockStringMismatch); }\n"
|
||||||
end
|
end
|
||||||
when /_ARRAY/
|
when /_ARRAY/
|
||||||
if pre == '&'
|
if pre == '&'
|
||||||
lines << " #{unity_func}(#{pre}#{expected}, #{pre}#{arg_name}, #{depth_name}, cmock_line, CMockStringMismatch);\n"
|
lines << " #{unity_func}(#{pre}#{expected}, #{actual_arg}, #{depth_name}, cmock_line, CMockStringMismatch);\n"
|
||||||
else
|
else
|
||||||
lines << " if (#{pre}#{expected} == NULL)\n"
|
lines << " if (#{pre}#{expected} == NULL)\n"
|
||||||
lines << " { UNITY_TEST_ASSERT_NULL(#{pre}#{arg_name}, cmock_line, CMockStringExpNULL); }\n"
|
lines << " { UNITY_TEST_ASSERT_NULL(#{actual_arg}, cmock_line, CMockStringExpNULL); }\n"
|
||||||
lines << " else\n"
|
lines << " else\n"
|
||||||
lines << " { #{unity_func}(#{pre}#{expected}, #{pre}#{arg_name}, #{depth_name}, cmock_line, CMockStringMismatch); }\n"
|
lines << " { #{unity_func}(#{pre}#{expected}, #{actual_arg}, #{depth_name}, cmock_line, CMockStringMismatch); }\n"
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
if arg[:string?]
|
if arg[:string?]
|
||||||
lines << " if (#{depth_name} == 0)\n"
|
lines << " if (#{depth_name} == 0)\n"
|
||||||
lines << " { #{unity_func}(#{pre}#{expected}, #{pre}#{arg_name}, cmock_line, CMockStringMismatch); }\n"
|
lines << " { #{unity_func}(#{pre}#{expected}, #{actual_arg}, cmock_line, CMockStringMismatch); }\n"
|
||||||
lines << " else\n"
|
lines << " else\n"
|
||||||
lines << " { UNITY_TEST_ASSERT_EQUAL_MEMORY((const void*)(#{pre}#{expected}), (const void*)(#{pre}#{arg_name}), (UNITY_UINT32)(#{depth_name}), cmock_line, CMockStringMismatch); }\n"
|
lines << " { UNITY_TEST_ASSERT_EQUAL_MEMORY((const void*)(#{pre}#{expected}), (const void*)(#{actual_arg}), (UNITY_UINT32)(#{depth_name}), cmock_line, CMockStringMismatch); }\n"
|
||||||
else
|
else
|
||||||
lines << " #{unity_func}(#{pre}#{expected}, #{pre}#{arg_name}, cmock_line, CMockStringMismatch);\n"
|
lines << " #{unity_func}(#{pre}#{expected}, #{actual_arg}, cmock_line, CMockStringMismatch);\n"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
lines << " }\n"
|
lines << " }\n"
|
||||||
@@ -297,6 +320,7 @@ class CMockGeneratorUtils
|
|||||||
|
|
||||||
def code_verify_an_arg_expectation_with_smart_arrays(function, arg)
|
def code_verify_an_arg_expectation_with_smart_arrays(function, arg)
|
||||||
c_type, arg_name, expected, ignore, unity_func, pre = lookup_expect_type(function, arg)
|
c_type, arg_name, expected, ignore, unity_func, pre = lookup_expect_type(function, arg)
|
||||||
|
actual_arg = actual_arg_expr(arg, pre, arg_name)
|
||||||
depth_name = arg[:ptr?] || arg[:string?] ? "cmock_call_instance->Expected_#{arg_name}_Depth" : 1
|
depth_name = arg[:ptr?] || arg[:string?] ? "cmock_call_instance->Expected_#{arg_name}_Depth" : 1
|
||||||
elem_size = ptr_to_array_elem_size(arg, c_type)
|
elem_size = ptr_to_array_elem_size(arg, c_type)
|
||||||
lines = ''
|
lines = ''
|
||||||
@@ -306,35 +330,35 @@ class CMockGeneratorUtils
|
|||||||
case unity_func
|
case unity_func
|
||||||
when 'UNITY_TEST_ASSERT_EQUAL_MEMORY'
|
when 'UNITY_TEST_ASSERT_EQUAL_MEMORY'
|
||||||
c_type_local = c_type.gsub(/\*$/, '')
|
c_type_local = c_type.gsub(/\*$/, '')
|
||||||
lines << " UNITY_TEST_ASSERT_EQUAL_MEMORY(#{pre}#{expected}, #{pre}#{arg_name}, sizeof(#{c_type_local}), cmock_line, CMockStringMismatch);\n"
|
lines << " UNITY_TEST_ASSERT_EQUAL_MEMORY(#{pre}#{expected}, #{actual_arg}, sizeof(#{c_type_local}), cmock_line, CMockStringMismatch);\n"
|
||||||
when 'UNITY_TEST_ASSERT_EQUAL_MEMORY_ARRAY'
|
when 'UNITY_TEST_ASSERT_EQUAL_MEMORY_ARRAY'
|
||||||
if pre == '&'
|
if pre == '&'
|
||||||
lines << " UNITY_TEST_ASSERT_EQUAL_MEMORY_ARRAY(#{pre}#{expected}, #{pre}#{arg_name}, #{elem_size}, #{depth_name}, cmock_line, CMockStringMismatch);\n"
|
lines << " UNITY_TEST_ASSERT_EQUAL_MEMORY_ARRAY(#{pre}#{expected}, #{actual_arg}, #{elem_size}, #{depth_name}, cmock_line, CMockStringMismatch);\n"
|
||||||
else
|
else
|
||||||
lines << " if (#{pre}#{expected} == NULL)\n"
|
lines << " if (#{pre}#{expected} == NULL)\n"
|
||||||
lines << " { UNITY_TEST_ASSERT_NULL(#{arg_name}, cmock_line, CMockStringExpNULL); }\n"
|
lines << " { UNITY_TEST_ASSERT_NULL(#{actual_arg}, cmock_line, CMockStringExpNULL); }\n"
|
||||||
lines << (depth_name != 1 ? " else if (#{depth_name} == 0)\n { UNITY_TEST_ASSERT_EQUAL_PTR(#{pre}#{expected}, #{pre}#{arg_name}, cmock_line, CMockStringMismatch); }\n" : '')
|
lines << (depth_name != 1 ? " else if (#{depth_name} == 0)\n { UNITY_TEST_ASSERT_EQUAL_PTR(#{pre}#{expected}, #{actual_arg}, cmock_line, CMockStringMismatch); }\n" : '')
|
||||||
lines << " else\n"
|
lines << " else\n"
|
||||||
lines << " { UNITY_TEST_ASSERT_EQUAL_MEMORY_ARRAY(#{pre}#{expected}, #{pre}#{arg_name}, #{elem_size}, #{depth_name}, cmock_line, CMockStringMismatch); }\n"
|
lines << " { UNITY_TEST_ASSERT_EQUAL_MEMORY_ARRAY(#{pre}#{expected}, #{actual_arg}, #{elem_size}, #{depth_name}, cmock_line, CMockStringMismatch); }\n"
|
||||||
end
|
end
|
||||||
when /_ARRAY/
|
when /_ARRAY/
|
||||||
if pre == '&'
|
if pre == '&'
|
||||||
lines << " #{unity_func}(#{pre}#{expected}, #{pre}#{arg_name}, #{depth_name}, cmock_line, CMockStringMismatch);\n"
|
lines << " #{unity_func}(#{pre}#{expected}, #{actual_arg}, #{depth_name}, cmock_line, CMockStringMismatch);\n"
|
||||||
else
|
else
|
||||||
lines << " if (#{pre}#{expected} == NULL)\n"
|
lines << " if (#{pre}#{expected} == NULL)\n"
|
||||||
lines << " { UNITY_TEST_ASSERT_NULL(#{pre}#{arg_name}, cmock_line, CMockStringExpNULL); }\n"
|
lines << " { UNITY_TEST_ASSERT_NULL(#{actual_arg}, cmock_line, CMockStringExpNULL); }\n"
|
||||||
lines << (depth_name != 1 ? " else if (#{depth_name} == 0)\n { UNITY_TEST_ASSERT_EQUAL_PTR(#{pre}#{expected}, #{pre}#{arg_name}, cmock_line, CMockStringMismatch); }\n" : '')
|
lines << (depth_name != 1 ? " else if (#{depth_name} == 0)\n { UNITY_TEST_ASSERT_EQUAL_PTR(#{pre}#{expected}, #{actual_arg}, cmock_line, CMockStringMismatch); }\n" : '')
|
||||||
lines << " else\n"
|
lines << " else\n"
|
||||||
lines << " { #{unity_func}(#{pre}#{expected}, #{pre}#{arg_name}, #{depth_name}, cmock_line, CMockStringMismatch); }\n"
|
lines << " { #{unity_func}(#{pre}#{expected}, #{actual_arg}, #{depth_name}, cmock_line, CMockStringMismatch); }\n"
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
if arg[:string?]
|
if arg[:string?]
|
||||||
lines << " if (#{depth_name} == 0)\n"
|
lines << " if (#{depth_name} == 0)\n"
|
||||||
lines << " { #{unity_func}(#{pre}#{expected}, #{pre}#{arg_name}, cmock_line, CMockStringMismatch); }\n"
|
lines << " { #{unity_func}(#{pre}#{expected}, #{actual_arg}, cmock_line, CMockStringMismatch); }\n"
|
||||||
lines << " else\n"
|
lines << " else\n"
|
||||||
lines << " { UNITY_TEST_ASSERT_EQUAL_MEMORY((const void*)(#{pre}#{expected}), (const void*)(#{pre}#{arg_name}), (UNITY_UINT32)(#{depth_name}), cmock_line, CMockStringMismatch); }\n"
|
lines << " { UNITY_TEST_ASSERT_EQUAL_MEMORY((const void*)(#{pre}#{expected}), (const void*)(#{actual_arg}), (UNITY_UINT32)(#{depth_name}), cmock_line, CMockStringMismatch); }\n"
|
||||||
else
|
else
|
||||||
lines << " #{unity_func}(#{pre}#{expected}, #{pre}#{arg_name}, cmock_line, CMockStringMismatch);\n"
|
lines << " #{unity_func}(#{pre}#{expected}, #{actual_arg}, cmock_line, CMockStringMismatch);\n"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
lines << " }\n"
|
lines << " }\n"
|
||||||
|
|||||||
@@ -95,6 +95,11 @@ extern const char* CMockStringMismatch;
|
|||||||
#define CMOCK_MEM_SIZE (32768)
|
#define CMOCK_MEM_SIZE (32768)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Cast a volatile pointer to void* for use with CMOCK_MEMCPY or Unity assertion
|
||||||
|
* macros. Routing through CMOCK_MEM_PTR_AS_INT (a pointer-sized integer) avoids
|
||||||
|
* -Wcast-qual without requiring compiler-specific pragmas or C99 intptr_t. */
|
||||||
|
#define CMOCK_DEVOLATILE_PTR(p) ((void*)(CMOCK_MEM_PTR_AS_INT)(p))
|
||||||
|
|
||||||
/* memory copy/set functions used by CMock internals and generated mocks.
|
/* memory copy/set functions used by CMock internals and generated mocks.
|
||||||
* Override to use custom implementations on targets without standard libc. */
|
* Override to use custom implementations on targets without standard libc. */
|
||||||
#if !defined(CMOCK_MEMCPY) || !defined(CMOCK_MEMSET)
|
#if !defined(CMOCK_MEMCPY) || !defined(CMOCK_MEMSET)
|
||||||
|
|||||||
@@ -14,7 +14,6 @@
|
|||||||
- './system/generated/'
|
- './system/generated/'
|
||||||
:include:
|
:include:
|
||||||
- './system/generated/'
|
- './system/generated/'
|
||||||
- '../examples/test/'
|
|
||||||
- '../src/'
|
- '../src/'
|
||||||
- '../vendor/unity/src/'
|
- '../vendor/unity/src/'
|
||||||
- '../vendor/c_exception/lib/'
|
- '../vendor/c_exception/lib/'
|
||||||
|
|||||||
@@ -200,9 +200,7 @@
|
|||||||
:code: |
|
:code: |
|
||||||
test()
|
test()
|
||||||
{
|
{
|
||||||
const char* constretval = "This is a\0 silly string";
|
bars_ExpectAndReturn("This is a\0 silly string");
|
||||||
char* retval = (char*)constretval;
|
|
||||||
bars_ExpectAndReturn(retval);
|
|
||||||
foos_Expect("This is a\0 wacky string");
|
foos_Expect("This is a\0 wacky string");
|
||||||
|
|
||||||
function_c();
|
function_c();
|
||||||
@@ -213,9 +211,7 @@
|
|||||||
:code: |
|
:code: |
|
||||||
test()
|
test()
|
||||||
{
|
{
|
||||||
const char* constretval = "This is a silly string";
|
bars_ExpectAndReturn("This is a silly string");
|
||||||
char* retval = (char*)constretval;
|
|
||||||
bars_ExpectAndReturn(retval);
|
|
||||||
foos_Expect("This is a wacky string");
|
foos_Expect("This is a wacky string");
|
||||||
|
|
||||||
function_c();
|
function_c();
|
||||||
@@ -274,9 +270,7 @@
|
|||||||
:code: |
|
:code: |
|
||||||
test()
|
test()
|
||||||
{
|
{
|
||||||
const char* constretval = "This is a\0 silly string";
|
bars_ExpectAndReturn("This is a\0 silly string");
|
||||||
char* retval = (char*)constretval;
|
|
||||||
bars_ExpectAndReturn(retval);
|
|
||||||
foos_ExpectAndThrow("This is a\0 wacky string", 55);
|
foos_ExpectAndThrow("This is a\0 wacky string", 55);
|
||||||
foos_Expect("err");
|
foos_Expect("err");
|
||||||
|
|
||||||
@@ -288,9 +282,7 @@
|
|||||||
:code: |
|
:code: |
|
||||||
test()
|
test()
|
||||||
{
|
{
|
||||||
const char* constretval = "This is a\0 silly string";
|
bars_ExpectAndReturn("This is a\0 silly string");
|
||||||
char* retval = (char*)constretval;
|
|
||||||
bars_ExpectAndReturn(retval);
|
|
||||||
foos_ExpectAndThrow("This is a\0 wacky string", 55);
|
foos_ExpectAndThrow("This is a\0 wacky string", 55);
|
||||||
foos_Expect("wrong error");
|
foos_Expect("wrong error");
|
||||||
|
|
||||||
|
|||||||
@@ -216,7 +216,7 @@
|
|||||||
test()
|
test()
|
||||||
{
|
{
|
||||||
const char* retval = "This is a\0 silly string";
|
const char* retval = "This is a\0 silly string";
|
||||||
bars_ExpectAndReturn((char*)retval);
|
bars_ExpectAndReturn(retval);
|
||||||
foos_Expect("This is a\0 wacky string");
|
foos_Expect("This is a\0 wacky string");
|
||||||
|
|
||||||
function_c();
|
function_c();
|
||||||
@@ -228,7 +228,7 @@
|
|||||||
test()
|
test()
|
||||||
{
|
{
|
||||||
const char* retval = "This is a silly string";
|
const char* retval = "This is a silly string";
|
||||||
bars_ExpectAndReturn((char*)retval);
|
bars_ExpectAndReturn(retval);
|
||||||
foos_Expect("This is a wacky string");
|
foos_Expect("This is a wacky string");
|
||||||
|
|
||||||
function_c();
|
function_c();
|
||||||
@@ -288,7 +288,7 @@
|
|||||||
test()
|
test()
|
||||||
{
|
{
|
||||||
const char* retval = "This is a\0 silly string";
|
const char* retval = "This is a\0 silly string";
|
||||||
bars_ExpectAndReturn((char*)retval);
|
bars_ExpectAndReturn(retval);
|
||||||
foos_ExpectAndThrow("This is a\0 wacky string", 55);
|
foos_ExpectAndThrow("This is a\0 wacky string", 55);
|
||||||
foos_Expect("err");
|
foos_Expect("err");
|
||||||
|
|
||||||
@@ -301,7 +301,7 @@
|
|||||||
test()
|
test()
|
||||||
{
|
{
|
||||||
const char* retval = "This is a\0 silly string";
|
const char* retval = "This is a\0 silly string";
|
||||||
bars_ExpectAndReturn((char*)retval);
|
bars_ExpectAndReturn(retval);
|
||||||
foos_ExpectAndThrow("This is a\0 wacky string", 55);
|
foos_ExpectAndThrow("This is a\0 wacky string", 55);
|
||||||
foos_Expect("wrong error");
|
foos_Expect("wrong error");
|
||||||
|
|
||||||
|
|||||||
@@ -96,7 +96,7 @@
|
|||||||
test()
|
test()
|
||||||
{
|
{
|
||||||
const char* retval = "moe";
|
const char* retval = "moe";
|
||||||
foo_char_strings_ExpectAndReturn("larry", "curly", (char*)retval);
|
foo_char_strings_ExpectAndReturn("larry", "curly", retval);
|
||||||
TEST_ASSERT_EQUAL_STRING("moe", function_d("larry", "curly"));
|
TEST_ASSERT_EQUAL_STRING("moe", function_d("larry", "curly"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -68,8 +68,9 @@
|
|||||||
:code: |
|
:code: |
|
||||||
test()
|
test()
|
||||||
{
|
{
|
||||||
|
char wrong_param2 = 'X';
|
||||||
foo_Expect( A, B, C );
|
foo_Expect( A, B, C );
|
||||||
exercise_const1( (const char*)B, (char * const)A, C );
|
exercise_const1( (const char*)B, &wrong_param2, C );
|
||||||
}
|
}
|
||||||
|
|
||||||
- :pass: FALSE
|
- :pass: FALSE
|
||||||
@@ -87,7 +88,7 @@
|
|||||||
test()
|
test()
|
||||||
{
|
{
|
||||||
bar_Expect( A, B, C );
|
bar_Expect( A, B, C );
|
||||||
exercise_const2( A, (char * const)C, (const char *)B );
|
exercise_const2( C, B, A );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -165,7 +165,7 @@
|
|||||||
test()
|
test()
|
||||||
{
|
{
|
||||||
const char* retval = "This is a\0 silly string";
|
const char* retval = "This is a\0 silly string";
|
||||||
bars_ExpectAndReturn((char*)retval);
|
bars_ExpectAndReturn(retval);
|
||||||
foos_Expect("This is a\0 wacky string");
|
foos_Expect("This is a\0 wacky string");
|
||||||
|
|
||||||
function_c();
|
function_c();
|
||||||
@@ -177,7 +177,7 @@
|
|||||||
test()
|
test()
|
||||||
{
|
{
|
||||||
const char* retval = "This is a silly string";
|
const char* retval = "This is a silly string";
|
||||||
bars_ExpectAndReturn((char*)retval);
|
bars_ExpectAndReturn(retval);
|
||||||
foos_Expect("This is a wacky string");
|
foos_Expect("This is a wacky string");
|
||||||
|
|
||||||
function_c();
|
function_c();
|
||||||
|
|||||||
@@ -233,7 +233,7 @@
|
|||||||
test()
|
test()
|
||||||
{
|
{
|
||||||
const char* retval = "This is a\0 silly string";
|
const char* retval = "This is a\0 silly string";
|
||||||
bars_ExpectAndReturn((char*)retval);
|
bars_ExpectAndReturn(retval);
|
||||||
foos_Expect("This is a\0 wacky string");
|
foos_Expect("This is a\0 wacky string");
|
||||||
|
|
||||||
function_b();
|
function_b();
|
||||||
@@ -245,7 +245,7 @@
|
|||||||
test()
|
test()
|
||||||
{
|
{
|
||||||
const char* retval = "This is a silly string";
|
const char* retval = "This is a silly string";
|
||||||
bars_ExpectAndReturn((char*)retval);
|
bars_ExpectAndReturn(retval);
|
||||||
foos_Expect("This is a wacky string");
|
foos_Expect("This is a wacky string");
|
||||||
|
|
||||||
function_b();
|
function_b();
|
||||||
|
|||||||
@@ -171,7 +171,7 @@
|
|||||||
char r_a_ret[] = "FEEFI";
|
char r_a_ret[] = "FEEFI";
|
||||||
|
|
||||||
ptr_ret_array_Expect(r_a, lengthof(r_a));
|
ptr_ret_array_Expect(r_a, lengthof(r_a));
|
||||||
ptr_ret_array_ReturnArrayThruPtr_r(r_a_ret, (int)strlen(r_a_ret));
|
ptr_ret_array_ReturnArrayThruPtr_r(r_a_ret, strlen(r_a_ret));
|
||||||
ptr_ret_array(r_a, lengthof(r_a));
|
ptr_ret_array(r_a, lengthof(r_a));
|
||||||
TEST_ASSERT_EQUAL_STRING("FEEFIorooboo", r_a);
|
TEST_ASSERT_EQUAL_STRING("FEEFIorooboo", r_a);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -173,7 +173,7 @@
|
|||||||
char r_a_ret[] = "FEEFI";
|
char r_a_ret[] = "FEEFI";
|
||||||
|
|
||||||
ptr_ret_array_Expect(r_a, lengthof(r_a));
|
ptr_ret_array_Expect(r_a, lengthof(r_a));
|
||||||
ptr_ret_array_ReturnArrayThruPtr_r(r_a_ret, (int)strlen(r_a_ret));
|
ptr_ret_array_ReturnArrayThruPtr_r(r_a_ret, strlen(r_a_ret));
|
||||||
ptr_ret_array(r_a, lengthof(r_a));
|
ptr_ret_array(r_a, lengthof(r_a));
|
||||||
TEST_ASSERT_EQUAL_STRING("FEEFIorooboo", r_a);
|
TEST_ASSERT_EQUAL_STRING("FEEFIorooboo", r_a);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,8 +45,8 @@
|
|||||||
:code: |
|
:code: |
|
||||||
test()
|
test()
|
||||||
{
|
{
|
||||||
char* a = (char*)("Hello");
|
char a[] = "Hello";
|
||||||
char* b = (char*)("Hello");
|
char b[] = "Hello";
|
||||||
ret_v_ptr_ExpectAndReturn(a);
|
ret_v_ptr_ExpectAndReturn(a);
|
||||||
get_v_ptr_Expect(b);
|
get_v_ptr_Expect(b);
|
||||||
get_v_ptr_typedefed_Expect((VOID_PTR)b);
|
get_v_ptr_typedefed_Expect((VOID_PTR)b);
|
||||||
@@ -59,8 +59,8 @@
|
|||||||
:code: |
|
:code: |
|
||||||
test()
|
test()
|
||||||
{
|
{
|
||||||
char* a = (char*)("Hello");
|
char a[] = "Hello";
|
||||||
char* b = (char*)("Hello");
|
char b[] = "Hello";
|
||||||
ret_v_ptr_ExpectAndReturn(a);
|
ret_v_ptr_ExpectAndReturn(a);
|
||||||
get_v_ptr_ExpectWithArray(b,5);
|
get_v_ptr_ExpectWithArray(b,5);
|
||||||
get_v_ptr_typedefed_ExpectWithArray((VOID_PTR)b,5);
|
get_v_ptr_typedefed_ExpectWithArray((VOID_PTR)b,5);
|
||||||
@@ -73,8 +73,8 @@
|
|||||||
:code: |
|
:code: |
|
||||||
test()
|
test()
|
||||||
{
|
{
|
||||||
char* a = (char*)("Hello");
|
char a[] = "Hello";
|
||||||
char* b = (char*)("Jello");
|
char b[] = "Jello";
|
||||||
ret_v_ptr_ExpectAndReturn(a);
|
ret_v_ptr_ExpectAndReturn(a);
|
||||||
get_v_ptr_Expect(b);
|
get_v_ptr_Expect(b);
|
||||||
get_v_ptr_typedefed_Expect((VOID_PTR)b);
|
get_v_ptr_typedefed_Expect((VOID_PTR)b);
|
||||||
@@ -87,8 +87,8 @@
|
|||||||
:code: |
|
:code: |
|
||||||
test()
|
test()
|
||||||
{
|
{
|
||||||
char* a = (char*)("Hello");
|
char a[] = "Hello";
|
||||||
char* b = (char*)("Hella");
|
char b[] = "Hella";
|
||||||
ret_v_ptr_ExpectAndReturn(a);
|
ret_v_ptr_ExpectAndReturn(a);
|
||||||
get_v_ptr_ExpectWithArray(b,5);
|
get_v_ptr_ExpectWithArray(b,5);
|
||||||
get_v_ptr_typedefed_ExpectWithArray((VOID_PTR)b,5);
|
get_v_ptr_typedefed_ExpectWithArray((VOID_PTR)b,5);
|
||||||
|
|||||||
@@ -54,7 +54,7 @@
|
|||||||
:code: |
|
:code: |
|
||||||
test()
|
test()
|
||||||
{
|
{
|
||||||
char* a = (char*)("Hello");
|
char a[] = "Hello";
|
||||||
get_v_ptr_Expect(a);
|
get_v_ptr_Expect(a);
|
||||||
function_a(a);
|
function_a(a);
|
||||||
}
|
}
|
||||||
@@ -84,7 +84,7 @@
|
|||||||
:code: |
|
:code: |
|
||||||
test()
|
test()
|
||||||
{
|
{
|
||||||
char* a = (char*)("Hello");
|
char a[] = "Hello";
|
||||||
get_v_ptr_Expect(NULL);
|
get_v_ptr_Expect(NULL);
|
||||||
function_a(a);
|
function_a(a);
|
||||||
}
|
}
|
||||||
@@ -94,7 +94,7 @@
|
|||||||
:code: |
|
:code: |
|
||||||
test()
|
test()
|
||||||
{
|
{
|
||||||
char* a = (char*)("Hello");
|
char a[] = "Hello";
|
||||||
get_const_v_ptr_Expect(a);
|
get_const_v_ptr_Expect(a);
|
||||||
function_b(a);
|
function_b(a);
|
||||||
}
|
}
|
||||||
@@ -115,7 +115,7 @@
|
|||||||
:code: |
|
:code: |
|
||||||
test()
|
test()
|
||||||
{
|
{
|
||||||
char* a = (char*)("Hello");
|
char a[] = "Hello";
|
||||||
get_my_void_ptr_Expect(a);
|
get_my_void_ptr_Expect(a);
|
||||||
function_c(a);
|
function_c(a);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,7 +43,7 @@
|
|||||||
:code: |
|
:code: |
|
||||||
test()
|
test()
|
||||||
{
|
{
|
||||||
char* a = (char*)("Hello");
|
char a[] = "Hello";
|
||||||
get_my_void_ptr_Expect(a);
|
get_my_void_ptr_Expect(a);
|
||||||
function_a(a);
|
function_a(a);
|
||||||
}
|
}
|
||||||
@@ -53,8 +53,8 @@
|
|||||||
:code: |
|
:code: |
|
||||||
test()
|
test()
|
||||||
{
|
{
|
||||||
char* a = (char*)("Hello");
|
char a[] = "Hello";
|
||||||
char* b = (char*)("Hello");
|
char b[] = "Hello";
|
||||||
get_my_void_ptr_ExpectWithArray(a, 5);
|
get_my_void_ptr_ExpectWithArray(a, 5);
|
||||||
function_a(b);
|
function_a(b);
|
||||||
}
|
}
|
||||||
@@ -64,8 +64,8 @@
|
|||||||
:code: |
|
:code: |
|
||||||
test()
|
test()
|
||||||
{
|
{
|
||||||
char* a = (char*)("Hello");
|
char a[] = "Hello";
|
||||||
char* b = (char*)("Jello");
|
char b[] = "Jello";
|
||||||
get_my_void_ptr_ExpectWithArray(a, 5);
|
get_my_void_ptr_ExpectWithArray(a, 5);
|
||||||
function_a(b);
|
function_a(b);
|
||||||
}
|
}
|
||||||
@@ -84,7 +84,7 @@
|
|||||||
:code: |
|
:code: |
|
||||||
test()
|
test()
|
||||||
{
|
{
|
||||||
char* a = (char*)("Hello");
|
char a[] = "Hello";
|
||||||
get_my_void_ptr_ExpectWithArray(a, 0);
|
get_my_void_ptr_ExpectWithArray(a, 0);
|
||||||
function_a(a);
|
function_a(a);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -260,7 +260,7 @@ describe CMockGeneratorPluginReturnThruPtr, "Verify CMockGeneratorPluginReturnTh
|
|||||||
" if (cmock_call_instance->ReturnThruPtr_foo_handle_Used)\n" +
|
" if (cmock_call_instance->ReturnThruPtr_foo_handle_Used)\n" +
|
||||||
" {\n" +
|
" {\n" +
|
||||||
" UNITY_TEST_ASSERT_NOT_NULL(foo_handle, cmock_line, CMockStringPtrIsNULL);\n" +
|
" UNITY_TEST_ASSERT_NOT_NULL(foo_handle, cmock_line, CMockStringPtrIsNULL);\n" +
|
||||||
" CMOCK_MEMCPY((void*)foo_handle, (const void*)cmock_call_instance->ReturnThruPtr_foo_handle_Val,\n" +
|
" CMOCK_MEMCPY(CMOCK_DEVOLATILE_PTR(foo_handle), (const void*)cmock_call_instance->ReturnThruPtr_foo_handle_Val,\n" +
|
||||||
" cmock_call_instance->ReturnThruPtr_foo_handle_Size);\n" +
|
" cmock_call_instance->ReturnThruPtr_foo_handle_Size);\n" +
|
||||||
" }\n"
|
" }\n"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user