moved insertion of extra includes from mock source file generation to mock header file generation

git-svn-id: http://cmock.svn.sourceforge.net/svnroot/cmock/trunk@176 bf332499-1b4d-0410-844d-d2d48d5cc64c
This commit is contained in:
mkarlesky
2010-06-28 17:17:12 +00:00
parent 07cbedc462
commit 420b17239b
3 changed files with 61 additions and 12 deletions
+6 -4
View File
@@ -62,7 +62,12 @@ class CMockGenerator
file << "/* AUTOGENERATED FILE. DO NOT EDIT. */\n"
file << "#ifndef _#{define_name}\n"
file << "#define _#{define_name}\n\n"
file << "#include \"#{orig_filename}\"\n\n"
config_includes = @config.includes
config_includes.each {|inc| file << "#include \"#{inc}\"\n"} if (!config_includes.nil?)
file << "#include \"#{orig_filename}\"\n"
plugin_includes = @plugins.run(:include_files)
file << plugin_includes if (!plugin_includes.empty?)
file << "\n"
end
def create_typedefs(file, typedefs)
@@ -89,9 +94,6 @@ class CMockGenerator
file << "#include <setjmp.h>\n"
file << "#include \"#{@framework}.h\"\n"
file << "#include \"cmock.h\"\n"
file << @plugins.run(:include_files)
includes = @config.includes
includes.each {|inc| file << "#include \"#{inc}\"\n"} if (!includes.nil?)
file << "#include \"#{header_file}\"\n\n"
end
+1 -1
View File
@@ -20,7 +20,7 @@ class CMockPluginManager
end
@plugins << eval("#{object_name}.new(config, utils)")
rescue
raise "Unable to load plugin '#{plugin_name}'"
raise "ERROR: CMock unable to load plugin '#{plugin_name}'"
end
end
@plugins.sort! {|a,b| a.priority <=> b.priority }
+54 -7
View File
@@ -67,7 +67,7 @@ class CMockGeneratorTest < Test::Unit::TestCase
assert_equal(@plugins, @cmock_generator.plugins)
end
should "create the top of a header file" do
should "create the top of a header file with optional include files from config and include file from plugin" do
@config.expect.mock_prefix.returns("Mock")
orig_filename = "PoutPoutFish.h"
define_name = "MOCKPOUTPOUTFISH_H"
@@ -76,8 +76,60 @@ class CMockGeneratorTest < Test::Unit::TestCase
expected = [ "/* AUTOGENERATED FILE. DO NOT EDIT. */\n",
"#ifndef _#{define_name}\n",
"#define _#{define_name}\n\n",
"#include \"#{orig_filename}\"\n\n",
"#include \"ConfigRequiredHeader1.h\"\n",
"#include \"ConfigRequiredHeader2.h\"\n",
"#include \"#{orig_filename}\"\n",
"#include \"PluginRequiredHeader.h\"\n",
"\n"
]
@config.expect.includes.returns(["ConfigRequiredHeader1.h","ConfigRequiredHeader2.h"])
@plugins.expect.run(:include_files).returns("#include \"PluginRequiredHeader.h\"\n")
@cmock_generator.create_mock_header_header(output, "MockPoutPoutFish.h")
assert_equal(expected, output)
end
should "create the top of a header file with optional include files from config" do
@config.expect.mock_prefix.returns("Mock")
orig_filename = "PoutPoutFish.h"
define_name = "MOCKPOUTPOUTFISH_H"
mock_name = "MockPoutPoutFish"
output = []
expected = [ "/* AUTOGENERATED FILE. DO NOT EDIT. */\n",
"#ifndef _#{define_name}\n",
"#define _#{define_name}\n\n",
"#include \"ConfigRequiredHeader1.h\"\n",
"#include \"ConfigRequiredHeader2.h\"\n",
"#include \"#{orig_filename}\"\n",
"\n"
]
@config.expect.includes.returns(["ConfigRequiredHeader1.h","ConfigRequiredHeader2.h"])
@plugins.expect.run(:include_files).returns('')
@cmock_generator.create_mock_header_header(output, "MockPoutPoutFish.h")
assert_equal(expected, output)
end
should "create the top of a header file with include file from plugin" do
@config.expect.mock_prefix.returns("Mock")
orig_filename = "PoutPoutFish.h"
define_name = "MOCKPOUTPOUTFISH_H"
mock_name = "MockPoutPoutFish"
output = []
expected = [ "/* AUTOGENERATED FILE. DO NOT EDIT. */\n",
"#ifndef _#{define_name}\n",
"#define _#{define_name}\n\n",
"#include \"#{orig_filename}\"\n",
"#include \"PluginRequiredHeader.h\"\n",
"\n"
]
@config.expect.includes.returns(nil)
@plugins.expect.run(:include_files).returns("#include \"PluginRequiredHeader.h\"\n")
@cmock_generator.create_mock_header_header(output, "MockPoutPoutFish.h")
@@ -133,13 +185,8 @@ class CMockGeneratorTest < Test::Unit::TestCase
"#include <setjmp.h>\n",
"#include \"unity.h\"\n",
"#include \"cmock.h\"\n",
"#include \"PluginRequiredHeader.h\"\n",
"#include \"ConfigRequiredHeader1.h\"\n",
"#include \"ConfigRequiredHeader2.h\"\n",
"#include \"MockPoutPoutFish.h\"\n\n"
]
@plugins.expect.run(:include_files).returns("#include \"PluginRequiredHeader.h\"\n")
@config.expect.includes.returns(["ConfigRequiredHeader1.h","ConfigRequiredHeader2.h"])
@cmock_generator.create_source_header_section(output, "MockPoutPoutFish.c")