- Cleaned up some naming in generated code

- Parsing can now handle arguments without names (they are named something standard)
- Configurable Mock prefix name

git-svn-id: http://cmock.svn.sourceforge.net/svnroot/cmock/trunk@64 bf332499-1b4d-0410-844d-d2d48d5cc64c
This commit is contained in:
mvandervoord
2009-02-22 03:24:28 +00:00
parent 868e951c0e
commit fa6853e9d9
12 changed files with 101 additions and 51 deletions
+3 -2
View File
@@ -4,6 +4,7 @@ class CMockConfig
CMockDefaultOptions =
{
:mock_path => 'mocks',
:mock_prefix => 'Mock',
:includes => [],
:plugins => ['cexception', 'ignore'],
:tab => ' ',
@@ -15,8 +16,8 @@ class CMockConfig
:unity_helper => false,
:treat_as => {},
:memcpy_if_unknown => true,
:when_ptr_star =>:compare_data,
:when_ptr_brackets => :compare_array,
:when_ptr_star =>:compare_data, #the options being :compare_ptr, :compare_data, :compare_array
:when_ptr_brackets => :compare_array, #not really supported yet
}
def initialize(options=nil)
+1 -1
View File
@@ -9,7 +9,7 @@ class CMockGenerator
@file_writer = file_writer
@tab = @config.tab
@module_name = module_name
@mock_name = "Mock" + @module_name
@mock_name = @config.mock_prefix + @module_name
@utils = utils
@plugins = plugins
end
+6 -6
View File
@@ -25,10 +25,10 @@ class CMockGeneratorPluginCException
throw_type = @config.cexception_throw_type
lines << "#{@tab}#{call_count_type} *#{function[:name]}_ThrowOnCallCount;\n"
lines << "#{@tab}#{call_count_type} *#{function[:name]}_ThrowOnCallCount_Head;\n"
lines << "#{@tab}#{call_count_type} *#{function[:name]}_ThrowOnCallCount_HeadTail;\n"
lines << "#{@tab}#{call_count_type} *#{function[:name]}_ThrowOnCallCount_Tail;\n"
lines << "#{@tab}#{throw_type} *#{function[:name]}_ThrowValue;\n"
lines << "#{@tab}#{throw_type} *#{function[:name]}_ThrowValue_Head;\n"
lines << "#{@tab}#{throw_type} *#{function[:name]}_ThrowValue_HeadTail;\n"
lines << "#{@tab}#{throw_type} *#{function[:name]}_ThrowValue_Tail;\n"
end
def mock_function_declarations(function)
@@ -41,8 +41,8 @@ class CMockGeneratorPluginCException
def mock_implementation(function)
lines = ["\n"]
lines << "#{@tab}if((Mock.#{function[:name]}_ThrowOnCallCount != Mock.#{function[:name]}_ThrowOnCallCount_HeadTail) &&\n"
lines << "#{@tab}#{@tab}(Mock.#{function[:name]}_ThrowValue != Mock.#{function[:name]}_ThrowValue_HeadTail))\n"
lines << "#{@tab}if((Mock.#{function[:name]}_ThrowOnCallCount != Mock.#{function[:name]}_ThrowOnCallCount_Tail) &&\n"
lines << "#{@tab}#{@tab}(Mock.#{function[:name]}_ThrowValue != Mock.#{function[:name]}_ThrowValue_Tail))\n"
lines << "#{@tab}{\n"
lines << "#{@tab}#{@tab}if (*Mock.#{function[:name]}_ThrowOnCallCount && \n"
lines << "#{@tab}#{@tab}#{@tab}(Mock.#{function[:name]}_CallCount == *Mock.#{function[:name]}_ThrowOnCallCount))\n"
@@ -79,14 +79,14 @@ class CMockGeneratorPluginCException
lines << "#{@tab}{\n"
lines << "#{@tab}#{@tab}free(Mock.#{function[:name]}_ThrowOnCallCount_Head);\n"
lines << "#{@tab}#{@tab}Mock.#{function[:name]}_ThrowOnCallCount_Head=NULL;\n"
lines << "#{@tab}#{@tab}Mock.#{function[:name]}_ThrowOnCallCount_HeadTail=NULL;\n"
lines << "#{@tab}#{@tab}Mock.#{function[:name]}_ThrowOnCallCount_Tail=NULL;\n"
lines << "#{@tab}}\n"
lines << "#{@tab}if(Mock.#{function[:name]}_ThrowValue_Head)\n"
lines << "#{@tab}{\n"
lines << "#{@tab}#{@tab}free(Mock.#{function[:name]}_ThrowValue_Head);\n"
lines << "#{@tab}#{@tab}Mock.#{function[:name]}_ThrowValue_Head=NULL;\n"
lines << "#{@tab}#{@tab}Mock.#{function[:name]}_ThrowValue_HeadTail=NULL;\n"
lines << "#{@tab}#{@tab}Mock.#{function[:name]}_ThrowValue_Tail=NULL;\n"
lines << "#{@tab}}\n"
end
end
+5 -4
View File
@@ -6,6 +6,7 @@ class CMockGeneratorPluginExpect
def initialize(config, utils)
@config = config
@tab = @config.tab
@ptr_handling = @config.when_ptr_star
@utils = utils
@unity_helper = @utils.helpers[:unity_helper]
end
@@ -19,14 +20,14 @@ class CMockGeneratorPluginExpect
if (function[:rettype] != "void")
lines << "#{@tab}#{function[:rettype]} *#{function[:name]}_Return;\n"
lines << "#{@tab}#{function[:rettype]} *#{function[:name]}_Return_Head;\n"
lines << "#{@tab}#{function[:rettype]} *#{function[:name]}_Return_HeadTail;\n"
lines << "#{@tab}#{function[:rettype]} *#{function[:name]}_Return_Tail;\n"
end
function[:args].each do |arg|
type = arg[:type].sub(/const/, '').strip
lines << "#{@tab}#{type} *#{function[:name]}_Expected_#{arg[:name]};\n"
lines << "#{@tab}#{type} *#{function[:name]}_Expected_#{arg[:name]}_Head;\n"
lines << "#{@tab}#{type} *#{function[:name]}_Expected_#{arg[:name]}_HeadTail;\n"
lines << "#{@tab}#{type} *#{function[:name]}_Expected_#{arg[:name]}_Tail;\n"
end
lines
end
@@ -111,7 +112,7 @@ class CMockGeneratorPluginExpect
lines << "#{@tab}{\n"
lines << "#{@tab}#{@tab}free(Mock.#{function[:name]}_Return_Head);\n"
lines << "#{@tab}#{@tab}Mock.#{function[:name]}_Return_Head=NULL;\n"
lines << "#{@tab}#{@tab}Mock.#{function[:name]}_Return_HeadTail=NULL;\n"
lines << "#{@tab}#{@tab}Mock.#{function[:name]}_Return_Tail=NULL;\n"
lines << "#{@tab}}\n"
end
function[:args].each do |arg|
@@ -119,7 +120,7 @@ class CMockGeneratorPluginExpect
lines << "#{@tab}{\n"
lines << "#{@tab}#{@tab}free(Mock.#{function[:name]}_Expected_#{arg[:name]}_Head);\n"
lines << "#{@tab}#{@tab}Mock.#{function[:name]}_Expected_#{arg[:name]}_Head=NULL;\n"
lines << "#{@tab}#{@tab}Mock.#{function[:name]}_Expected_#{arg[:name]}_HeadTail=NULL;\n"
lines << "#{@tab}#{@tab}Mock.#{function[:name]}_Expected_#{arg[:name]}_Tail=NULL;\n"
lines << "#{@tab}}\n"
end
lines
+6 -5
View File
@@ -23,11 +23,12 @@ class CMockGeneratorUtils
end
def code_insert_item_into_expect_array(type, array, newValue)
tail = array.gsub(/Head$/,'Tail')
lines = ["\n"]
lines << "#{@tab}{\n"
lines << "#{@tab}#{@tab}int sz = 0;\n"
lines << "#{@tab}#{@tab}#{type} *pointer = #{array};\n"
lines << "#{@tab}#{@tab}while (pointer && pointer != #{array}Tail) { sz++; pointer++; }\n"
lines << "#{@tab}#{@tab}while (pointer && pointer != #{tail}) { sz++; pointer++; }\n"
lines << "#{@tab}#{@tab}if (sz == 0)\n"
lines << "#{@tab}#{@tab}{\n"
lines << "#{@tab}#{@tab}#{@tab}#{array} = (#{type}*)malloc(2*sizeof(#{type}));\n"
@@ -43,13 +44,13 @@ class CMockGeneratorUtils
lines << "#{@tab}#{@tab}#{@tab}#{@tab}#{array} = ptmp;\n"
lines << "#{@tab}#{@tab}}\n"
lines << "#{@tab}#{@tab}memcpy(&#{array}[sz], &#{newValue}, sizeof(#{type}));\n"
lines << "#{@tab}#{@tab}#{array}Tail = &#{array}[sz+1];\n"
lines << "#{@tab}#{@tab}#{tail} = &#{array}[sz+1];\n"
lines << "#{@tab}}\n"
end
def code_handle_return_value(function, indent)
lines = ["\n"]
lines << "#{indent}if (Mock.#{function[:name]}_Return != Mock.#{function[:name]}_Return_HeadTail)\n"
lines << "#{indent}if (Mock.#{function[:name]}_Return != Mock.#{function[:name]}_Return_Tail)\n"
lines << "#{indent}{\n"
lines << "#{indent}#{@tab}#{function[:rettype]} toReturn = *Mock.#{function[:name]}_Return;\n"
lines << "#{indent}#{@tab}Mock.#{function[:name]}_Return++;\n"
@@ -69,7 +70,7 @@ class CMockGeneratorUtils
def code_verify_an_arg_expectation(function, arg_type, actual)
lines = ["\n"]
lines << "#{@tab}if (Mock.#{function[:name]}_Expected_#{actual} != Mock.#{function[:name]}_Expected_#{actual}_HeadTail)\n"
lines << "#{@tab}if (Mock.#{function[:name]}_Expected_#{actual} != Mock.#{function[:name]}_Expected_#{actual}_Tail)\n"
lines << "#{@tab}{\n"
lines << "#{@tab}#{@tab}#{arg_type}* p_expected = Mock.#{function[:name]}_Expected_#{actual};\n"
lines << "#{@tab}#{@tab}Mock.#{function[:name]}_Expected_#{actual}++;\n"
@@ -79,7 +80,7 @@ class CMockGeneratorUtils
end
def expect_helper(c_type, expected, actual, msg, indent)
if ((c_type.strip[0] == 42) and (@ptr_handling == :compare_ptr))
if ((c_type.strip[-1] == 42) and (@ptr_handling == :compare_ptr))
unity_func = "TEST_ASSERT_EQUAL_INT_MESSAGE"
else
unity_func = (@helpers.nil? or @helpers[:unity_helper].nil?) ? "TEST_ASSERT_EQUAL_MESSAGE" : @helpers[:unity_helper].get_helper(c_type)
+10 -1
View File
@@ -112,6 +112,15 @@ class CMockHeaderParser
return args
end
def clean_args(arg_list)
if ((arg_list.strip == 'void') or (arg_list.empty?))
return 'void'
else
c=0
arg_list.split(',').map{|arg| (arg.strip =~ /^(\w+|.+\*)\s*$/) ? "#{arg.strip} cmock_arg#{c+=1}" : arg.strip}.join(', ')
end
end
def parse_declaration(declaration)
decl = {}
@@ -146,7 +155,7 @@ class CMockHeaderParser
decl[:var_arg] = nil
end
args.strip!
args = clean_args(args)
decl[:args_string] = args
decl[:args] = parse_args(args)
+1
View File
@@ -40,6 +40,7 @@ class CMockGeneratorTest < Test::Unit::TestCase
@module_name = "PoutPoutFish"
@config.expect.tab.returns(" ")
@config.expect.mock_prefix.returns("Mock")
@cmock_generator = CMockGenerator.new(@config, @module_name, @file_writer, @utils, @plugins)
end
@@ -39,10 +39,10 @@ class CMockGeneratorPluginCExceptionTest < Test::Unit::TestCase
expected = [" uint32 *Oak_ThrowOnCallCount;\n",
" uint32 *Oak_ThrowOnCallCount_Head;\n",
" uint32 *Oak_ThrowOnCallCount_HeadTail;\n",
" uint32 *Oak_ThrowOnCallCount_Tail;\n",
" EXCEPTION_TYPE *Oak_ThrowValue;\n",
" EXCEPTION_TYPE *Oak_ThrowValue_Head;\n",
" EXCEPTION_TYPE *Oak_ThrowValue_HeadTail;\n"
" EXCEPTION_TYPE *Oak_ThrowValue_Tail;\n"
]
returned = @cmock_generator_plugin_cexception.instance_structure(function)
assert_equal(expected, returned)
@@ -75,8 +75,8 @@ class CMockGeneratorPluginCExceptionTest < Test::Unit::TestCase
@config.expect.cexception_throw_type.returns("EXCEPTION_TYPE")
expected = ["\n",
" if((Mock.Cherry_ThrowOnCallCount != Mock.Cherry_ThrowOnCallCount_HeadTail) &&\n",
" (Mock.Cherry_ThrowValue != Mock.Cherry_ThrowValue_HeadTail))\n",
" if((Mock.Cherry_ThrowOnCallCount != Mock.Cherry_ThrowOnCallCount_Tail) &&\n",
" (Mock.Cherry_ThrowValue != Mock.Cherry_ThrowValue_Tail))\n",
" {\n",
" if (*Mock.Cherry_ThrowOnCallCount && \n",
" (Mock.Cherry_CallCount == *Mock.Cherry_ThrowOnCallCount))\n",
@@ -148,13 +148,13 @@ class CMockGeneratorPluginCExceptionTest < Test::Unit::TestCase
" {\n",
" free(Mock.Banana_ThrowOnCallCount_Head);\n",
" Mock.Banana_ThrowOnCallCount_Head=NULL;\n",
" Mock.Banana_ThrowOnCallCount_HeadTail=NULL;\n",
" Mock.Banana_ThrowOnCallCount_Tail=NULL;\n",
" }\n",
" if(Mock.Banana_ThrowValue_Head)\n",
" {\n",
" free(Mock.Banana_ThrowValue_Head);\n",
" Mock.Banana_ThrowValue_Head=NULL;\n",
" Mock.Banana_ThrowValue_HeadTail=NULL;\n",
" Mock.Banana_ThrowValue_Tail=NULL;\n",
" }\n"
]
returned = @cmock_generator_plugin_cexception.mock_destroy(function)
@@ -5,6 +5,7 @@ class CMockGeneratorPluginExpectTest < Test::Unit::TestCase
def setup
create_mocks :config, :utils
@config.expect.tab.returns(" ")
@config.expect.when_ptr_star.returns(:compare_data)
@config.stubs!(:respond_to?).returns(true)
@utils.expect.helpers.returns({})
@cmock_generator_plugin_expect = CMockGeneratorPluginExpect.new(@config, @utils)
@@ -45,7 +46,7 @@ class CMockGeneratorPluginExpectTest < Test::Unit::TestCase
" #{count_type} #{function[:name]}_CallsExpected;\n",
" #{function[:rettype]} *#{function[:name]}_Return;\n",
" #{function[:rettype]} *#{function[:name]}_Return_Head;\n",
" #{function[:rettype]} *#{function[:name]}_Return_HeadTail;\n"
" #{function[:rettype]} *#{function[:name]}_Return_Tail;\n"
]
returned = @cmock_generator_plugin_expect.instance_structure(function)
assert_equal(expected, returned)
@@ -60,10 +61,10 @@ class CMockGeneratorPluginExpectTest < Test::Unit::TestCase
" #{count_type} #{function[:name]}_CallsExpected;\n",
" int *#{function[:name]}_Expected_chicken;\n",
" int *#{function[:name]}_Expected_chicken_Head;\n",
" int *#{function[:name]}_Expected_chicken_HeadTail;\n",
" int *#{function[:name]}_Expected_chicken_Tail;\n",
" char* *#{function[:name]}_Expected_pork;\n",
" char* *#{function[:name]}_Expected_pork_Head;\n",
" char* *#{function[:name]}_Expected_pork_HeadTail;\n"
" char* *#{function[:name]}_Expected_pork_Tail;\n"
]
returned = @cmock_generator_plugin_expect.instance_structure(function)
assert_equal(expected, returned)
@@ -78,10 +79,10 @@ class CMockGeneratorPluginExpectTest < Test::Unit::TestCase
" #{count_type} #{function[:name]}_CallsExpected;\n",
" #{function[:rettype]} *#{function[:name]}_Return;\n",
" #{function[:rettype]} *#{function[:name]}_Return_Head;\n",
" #{function[:rettype]} *#{function[:name]}_Return_HeadTail;\n",
" #{function[:rettype]} *#{function[:name]}_Return_Tail;\n",
" float *#{function[:name]}_Expected_beef;\n",
" float *#{function[:name]}_Expected_beef_Head;\n",
" float *#{function[:name]}_Expected_beef_HeadTail;\n",
" float *#{function[:name]}_Expected_beef_Tail;\n",
]
returned = @cmock_generator_plugin_expect.instance_structure(function)
assert_equal(expected, returned)
@@ -215,7 +216,7 @@ class CMockGeneratorPluginExpectTest < Test::Unit::TestCase
" {\n",
" free(Mock.Palm_Return_Head);\n",
" Mock.Palm_Return_Head=NULL;\n",
" Mock.Palm_Return_HeadTail=NULL;\n",
" Mock.Palm_Return_Tail=NULL;\n",
" }\n"
]
returned = @cmock_generator_plugin_expect.mock_destroy(function)
@@ -228,13 +229,13 @@ class CMockGeneratorPluginExpectTest < Test::Unit::TestCase
" {\n",
" free(Mock.Coconut_Return_Head);\n",
" Mock.Coconut_Return_Head=NULL;\n",
" Mock.Coconut_Return_HeadTail=NULL;\n",
" Mock.Coconut_Return_Tail=NULL;\n",
" }\n",
" if (Mock.Coconut_Expected_grease_Head)\n",
" {\n",
" free(Mock.Coconut_Expected_grease_Head);\n",
" Mock.Coconut_Expected_grease_Head=NULL;\n",
" Mock.Coconut_Expected_grease_HeadTail=NULL;\n",
" Mock.Coconut_Expected_grease_Tail=NULL;\n",
" }\n"
]
returned = @cmock_generator_plugin_expect.mock_destroy(function)
+17 -17
View File
@@ -5,7 +5,7 @@ class CMockGeneratorUtilsTest < Test::Unit::TestCase
def setup
create_mocks :config, :unity_helper
@config.expect.tab.returns(" ")
@config.expect.when_ptr_star.returns(:compare_ptr)
@config.expect.when_ptr_star.returns(:compare_data)
@cmock_generator_utils = CMockGeneratorUtils.new(@config)
end
@@ -51,29 +51,29 @@ class CMockGeneratorUtilsTest < Test::Unit::TestCase
should "make expand array" do
the_type = "int"
the_array = "array"
the_array = "arrayHead"
new_value = "new_value"
expected = ["\n",
" {\n",
" int sz = 0;\n",
" int *pointer = array;\n",
" int *pointer = arrayHead;\n",
" while (pointer && pointer != arrayTail) { sz++; pointer++; }\n",
" if (sz == 0)\n",
" {\n",
" array = (int*)malloc(2*sizeof(int));\n",
" if (!array)\n",
" arrayHead = (int*)malloc(2*sizeof(int));\n",
" if (!arrayHead)\n",
" Mock.allocFailure++;\n",
" }\n",
" else\n",
" {\n",
" int *ptmp = (int*)realloc(array, sizeof(int) * (sz+1));\n",
" int *ptmp = (int*)realloc(arrayHead, sizeof(int) * (sz+1));\n",
" if (!ptmp)\n",
" Mock.allocFailure++;\n",
" else\n",
" array = ptmp;\n"," }\n",
" memcpy(&array[sz], &new_value, sizeof(int));\n",
" arrayTail = &array[sz+1];\n",
" arrayHead = ptmp;\n"," }\n",
" memcpy(&arrayHead[sz], &new_value, sizeof(int));\n",
" arrayTail = &arrayHead[sz+1];\n",
" }\n"
]
returned = @cmock_generator_utils.code_insert_item_into_expect_array(the_type, the_array, new_value)
@@ -84,7 +84,7 @@ class CMockGeneratorUtilsTest < Test::Unit::TestCase
function = { :name => "Spatula", :rettype => "uint64"}
indent = "[tab]"
expected = ["\n",
"[tab]if (Mock.Spatula_Return != Mock.Spatula_Return_HeadTail)\n",
"[tab]if (Mock.Spatula_Return != Mock.Spatula_Return_Tail)\n",
"[tab]{\n",
"[tab] uint64 toReturn = *Mock.Spatula_Return;\n",
"[tab] Mock.Spatula_Return++;\n",
@@ -108,7 +108,7 @@ class CMockGeneratorUtilsTest < Test::Unit::TestCase
" {\n",
" int sz = 0;\n",
" uint16 *pointer = Mock.PizzaCutter_Expected_Spork_Head;\n",
" while (pointer && pointer != Mock.PizzaCutter_Expected_Spork_HeadTail) { sz++; pointer++; }\n",
" while (pointer && pointer != Mock.PizzaCutter_Expected_Spork_Tail) { sz++; pointer++; }\n",
" if (sz == 0)\n",
" {\n",
" Mock.PizzaCutter_Expected_Spork_Head = (uint16*)malloc(2*sizeof(uint16));\n",
@@ -124,7 +124,7 @@ class CMockGeneratorUtilsTest < Test::Unit::TestCase
" Mock.PizzaCutter_Expected_Spork_Head = ptmp;\n",
" }\n",
" memcpy(&Mock.PizzaCutter_Expected_Spork_Head[sz], &Spork, sizeof(uint16));\n",
" Mock.PizzaCutter_Expected_Spork_HeadTail = &Mock.PizzaCutter_Expected_Spork_Head[sz+1];\n",
" Mock.PizzaCutter_Expected_Spork_Tail = &Mock.PizzaCutter_Expected_Spork_Head[sz+1];\n",
" }\n",
" Mock.PizzaCutter_Expected_Spork = Mock.PizzaCutter_Expected_Spork_Head;\n",
" Mock.PizzaCutter_Expected_Spork += Mock.PizzaCutter_CallCount;\n"
@@ -139,7 +139,7 @@ class CMockGeneratorUtilsTest < Test::Unit::TestCase
var_name = "CorkScrew"
expected = ["\n",
" if (Mock.CanOpener_Expected_CorkScrew != Mock.CanOpener_Expected_CorkScrew_HeadTail)\n",
" if (Mock.CanOpener_Expected_CorkScrew != Mock.CanOpener_Expected_CorkScrew_Tail)\n",
" {\n",
" uint16* p_expected = Mock.CanOpener_Expected_CorkScrew;\n",
" Mock.CanOpener_Expected_CorkScrew++;\n",
@@ -159,7 +159,7 @@ class CMockGeneratorUtilsTest < Test::Unit::TestCase
@unity_helper.expect.get_helper(var_type).returns("TEST_ASSERT_EQUAL_STRING_MESSAGE")
expected = ["\n",
" if (Mock.MeasureCup_Expected_TeaSpoon != Mock.MeasureCup_Expected_TeaSpoon_HeadTail)\n",
" if (Mock.MeasureCup_Expected_TeaSpoon != Mock.MeasureCup_Expected_TeaSpoon_Tail)\n",
" {\n",
" const char** p_expected = Mock.MeasureCup_Expected_TeaSpoon;\n",
" Mock.MeasureCup_Expected_TeaSpoon++;\n",
@@ -179,7 +179,7 @@ class CMockGeneratorUtilsTest < Test::Unit::TestCase
@unity_helper.expect.get_helper(var_type).returns("TEST_ASSERT_EQUAL_MANDELBROT_SET_T_MESSAGE")
expected = ["\n",
" if (Mock.TeaPot_Expected_TeaSpoon != Mock.TeaPot_Expected_TeaSpoon_HeadTail)\n",
" if (Mock.TeaPot_Expected_TeaSpoon != Mock.TeaPot_Expected_TeaSpoon_Tail)\n",
" {\n",
" MANDELBROT_SET_T* p_expected = Mock.TeaPot_Expected_TeaSpoon;\n",
" Mock.TeaPot_Expected_TeaSpoon++;\n",
@@ -199,7 +199,7 @@ class CMockGeneratorUtilsTest < Test::Unit::TestCase
@unity_helper.expect.get_helper(var_type).returns("TEST_ASSERT_EQUAL_MEMORY_MESSAGE")
expected = ["\n",
" if (Mock.Toaster_Expected_Bread != Mock.Toaster_Expected_Bread_HeadTail)\n",
" if (Mock.Toaster_Expected_Bread != Mock.Toaster_Expected_Bread_Tail)\n",
" {\n",
" SOME_STRUCT* p_expected = Mock.Toaster_Expected_Bread;\n",
" Mock.Toaster_Expected_Bread++;\n",
@@ -219,7 +219,7 @@ class CMockGeneratorUtilsTest < Test::Unit::TestCase
@unity_helper.expect.get_helper(var_type).returns("TEST_ASSERT_EQUAL_FRUIT_ARRAY_MESSAGE")
expected = ["\n",
" if (Mock.Blender_Expected_Strawberry != Mock.Blender_Expected_Strawberry_HeadTail)\n",
" if (Mock.Blender_Expected_Strawberry != Mock.Blender_Expected_Strawberry_Tail)\n",
" {\n",
" FRUIT** p_expected = Mock.Blender_Expected_Strawberry;\n",
" Mock.Blender_Expected_Strawberry++;\n",
+36 -1
View File
@@ -235,7 +235,7 @@ class CMockHeaderParserTest < Test::Unit::TestCase
{
:modifier => "",
:args_string => "",
:args_string => "void",
:rettype => "void",
:var_arg => nil,
:args => [],
@@ -352,5 +352,40 @@ class CMockHeaderParserTest < Test::Unit::TestCase
assert_equal(expected, parsed_stuff[:functions])
end
should "extract and return function declarations with just types (no argument names)" do
source =
"int buzzlightyear(char*, bool);\n" +
"bool woody();\n"
@parser = CMockHeaderParser.new(source)
parsed_stuff = @parser.parse
expected =
[
{
:modifier => "",
:args_string => "char* cmock_arg1, bool cmock_arg2",
:rettype => "int",
:var_arg => nil,
:args =>
[
{:type => "char*", :name => "cmock_arg1"},
{:type => "bool", :name => "cmock_arg2"}
],
:name => "buzzlightyear"
},
{
:modifier => "",
:args_string => "void",
:rettype => "bool",
:var_arg => nil,
:args => [],
:name => "woody"
}
]
assert_equal(expected, parsed_stuff[:functions])
end
end
+1
View File
@@ -5,6 +5,7 @@ class CMockPluginManagerTest < Test::Unit::TestCase
def setup
create_mocks :config, :utils, :pluginA, :pluginB
@config.stubs!(:respond_to?).returns(true)
@config.stubs!(:when_ptr_star).returns(:compare_data)
end
def teardown