mirror of
https://github.com/ThrowTheSwitch/CMock.git
synced 2026-08-14 07:07:49 +00:00
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:
@@ -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
|
||||
|
||||
|
||||
@@ -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 }
|
||||
|
||||
@@ -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")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user