diff --git a/lib/cmock_header_parser.rb b/lib/cmock_header_parser.rb index f7971ce..864e4c7 100644 --- a/lib/cmock_header_parser.rb +++ b/lib/cmock_header_parser.rb @@ -24,7 +24,7 @@ class CMockHeaderParser end def parse(name, source) - @module_name = name + @module_name = name.gsub(/\W/,'') @typedefs = [] @funcs = [] function_names = [] diff --git a/test/unit/cmock_header_parser_test.rb b/test/unit/cmock_header_parser_test.rb index e0d49b7..509546a 100644 --- a/test/unit/cmock_header_parser_test.rb +++ b/test/unit/cmock_header_parser_test.rb @@ -425,19 +425,25 @@ class CMockHeaderParserTest < Test::Unit::TestCase # ensure it's expected type of exception assert_raise RuntimeError do - @parser.parse("module", "") + @parser.parse("module", source) end assert_equal([], @parser.funcs) # verify exception message begin - @parser.parse("module", "") + @parser.parse("module", source) rescue RuntimeError => e assert_equal("ERROR: No function prototypes found!", e.message) end end - + + should "clean up module names that contain spaces, dashes, and such" do + source = 'void meh(int (*func)(int));' + + retval = @parser.parse("C:\Ugly Module-Name", source) + assert (retval[:typedefs][0] =~ /CUglyModuleName/) + end should "raise upon no function prototypes found in file" do source =