diff --git a/config/production_environment.rb b/config/production_environment.rb index 5ea2a5b..0daf731 100644 --- a/config/production_environment.rb +++ b/config/production_environment.rb @@ -3,12 +3,12 @@ # Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams # [Released under MIT License. Please refer to license.txt for details] # ========================================== - + # Setup our load path: [ - 'lib', + 'lib', ].each do |dir| - $LOAD_PATH.unshift( File.join( File.expand_path(File.dirname(__FILE__) + "/../"), dir) ) + $LOAD_PATH.unshift( File.join( File.expand_path(File.dirname(__FILE__)) + '/../', dir) ) end diff --git a/examples/iar_v5.yml b/examples/iar_v5.yml index d99c5ed..663251f 100644 --- a/examples/iar_v5.yml +++ b/examples/iar_v5.yml @@ -1,4 +1,4 @@ -tools_root: &tools_root 'C:\Program Files\IAR Systems\Embedded Workbench 5.0 Kickstart\' +tools_root: &tools_root 'C:\Program Files\IAR Systems\Embedded Workbench 5.3\' compiler: path: [*tools_root, 'arm\bin\iccarm.exe'] source_path: 'src\' diff --git a/examples/rakefile.rb b/examples/rakefile.rb index c5851bc..47bac8a 100644 --- a/examples/rakefile.rb +++ b/examples/rakefile.rb @@ -1,10 +1,9 @@ HERE = File.expand_path(File.dirname(__FILE__)) + '/' -#require HERE + 'config/environment' require 'rake' require 'rake/clean' require 'rake/testtask' -require 'rakefile_helper' +require './rakefile_helper' include RakefileHelpers diff --git a/examples/rakefile_helper.rb b/examples/rakefile_helper.rb index 54be5d1..be56adc 100644 --- a/examples/rakefile_helper.rb +++ b/examples/rakefile_helper.rb @@ -59,12 +59,16 @@ module RakefileHelpers end def tackit(strings) - if strings.is_a?(Array) - result = "\"#{strings.join}\"" - else - result = strings + case(strings) + when Array + "\"#{strings.join}\"" + when /^-/ + strings + when /\s/ + "\"#{strings}\"" + else + strings end - return result end def squash(prefix, items) diff --git a/lib/cmock.rb b/lib/cmock.rb index a97fd66..eb73c9a 100644 --- a/lib/cmock.rb +++ b/lib/cmock.rb @@ -4,15 +4,14 @@ # [Released under MIT License. Please refer to license.txt for details] # ========================================== -require File.expand_path(File.dirname(__FILE__)) + "/../config/production_environment" - -require "cmock_header_parser" -require "cmock_generator" -require "cmock_file_writer" -require "cmock_config" -require "cmock_plugin_manager" -require "cmock_generator_utils" -require "cmock_unityhelper_parser" +[ "../config/production_environment", + "cmock_header_parser", + "cmock_generator", + "cmock_file_writer", + "cmock_config", + "cmock_plugin_manager", + "cmock_generator_utils", + "cmock_unityhelper_parser"].each {|req| require "#{File.expand_path(File.dirname(__FILE__))}/#{req}"} class CMock diff --git a/lib/cmock_header_parser.rb b/lib/cmock_header_parser.rb index f18dcf5..24decc6 100644 --- a/lib/cmock_header_parser.rb +++ b/lib/cmock_header_parser.rb @@ -166,7 +166,7 @@ class CMockHeaderParser #automatically name unnamed arguments (those that only had a type) arg_list.split(/\s*,\s*/).map { |arg| parts = (arg.split - ['struct', 'union', 'enum', 'const', 'const*']) - if ((parts.size < 2) or (parts[-1][-1] == 42) or (@standards.include?(parts[-1]))) + if ((parts.size < 2) or (parts[-1][-1].chr == '*') or (@standards.include?(parts[-1]))) "#{arg} cmock_arg#{c+=1}" else arg diff --git a/lib/cmock_plugin_manager.rb b/lib/cmock_plugin_manager.rb index 3a3d2c2..68b6957 100644 --- a/lib/cmock_plugin_manager.rb +++ b/lib/cmock_plugin_manager.rb @@ -16,7 +16,7 @@ class CMockPluginManager object_name = "CMockGeneratorPlugin" + camelize(plugin_name) begin unless (Object.const_defined? object_name) - require "cmock_generator_plugin_#{plugin_name.downcase}.rb" + require "#{File.expand_path(File.dirname(__FILE__))}/cmock_generator_plugin_#{plugin_name.downcase}.rb" end @plugins << eval("#{object_name}.new(config, utils)") rescue diff --git a/rakefile.rb b/rakefile.rb index 19e5494..79d00c4 100644 --- a/rakefile.rb +++ b/rakefile.rb @@ -4,13 +4,11 @@ # [Released under MIT License. Please refer to license.txt for details] # ========================================== -HERE = File.expand_path(File.dirname(__FILE__)) + '/' - -require HERE + 'config/test_environment' +require './config/test_environment' require 'rake' require 'rake/clean' require 'rake/testtask' -require 'rakefile_helper' +require './rakefile_helper' include RakefileHelpers diff --git a/rakefile_helper.rb b/rakefile_helper.rb index 3ab67ea..0e1385e 100644 --- a/rakefile_helper.rb +++ b/rakefile_helper.rb @@ -6,10 +6,10 @@ require 'yaml' require 'fileutils' -require 'generate_test_runner' -require 'unity_test_summary' -require 'systest_generator' -require 'vendor/unity/auto/colour_reporter.rb' +require './vendor/unity/auto/generate_test_runner' +require './vendor/unity/auto/unity_test_summary' +require './test/system/systest_generator' +require './vendor/unity/auto/colour_reporter.rb' module RakefileHelpers @@ -21,7 +21,7 @@ module RakefileHelpers def load_configuration(config_file) $cfg_file = config_file - $cfg = YAML.load(File.read('targets/' + $cfg_file)) + $cfg = YAML.load(File.read('./targets/' + $cfg_file)) $colour_output = false unless $cfg['colour'] end @@ -62,15 +62,6 @@ module RakefileHelpers end return nil end - - def tackit(strings) - if strings.is_a?(Array) - result = "\"#{strings.join}\"" - else - result = strings - end - return result - end def squash(prefix, items) result = '' @@ -156,27 +147,31 @@ module RakefileHelpers end def tackit(strings) - if strings.is_a?(Array) - result = "\"#{strings.join}\"" - else - result = strings + case(strings) + when Array + "\"#{strings.join}\"" + when /^-/ + strings + when /\s/ + "\"#{strings}\"" + else + strings end - return result end def report_summary summary = UnityTestSummary.new - summary.set_root_path(HERE) + summary.set_root_path(File.expand_path(File.dirname(__FILE__)) + '/') results_glob = "#{$cfg['compiler']['build_path']}*.test*" results_glob.gsub!(/\\/, '/') results = Dir[results_glob] summary.set_targets(results) summary.run - raise "There were failures" if (summary.failures > 0) + fail_out "FAIL: There were failures" if (summary.failures > 0) end def run_system_test_interactions(test_case_files) - load 'cmock.rb' + load './lib/cmock.rb' SystemTestGenerator.new.generate_files(test_case_files) test_files = FileList.new(SYSTEST_GENERATED_FILES_PATH + 'test*.c') @@ -252,7 +247,6 @@ module RakefileHelpers test_file = 'test_' + File.basename(test_case).ext(C_EXTENSION) result_file = test_file.ext(RESULT_EXTENSION) test_results = File.readlines(SYSTEST_BUILD_FILES_PATH + result_file) - tests.each_with_index do |test, index| # compare test's intended pass/fail state with pass/fail state in actual results; # if they don't match, the system test has failed @@ -316,7 +310,7 @@ module RakefileHelpers end def run_system_test_compilations(mockables) - load 'cmock.rb' + load './lib/cmock.rb' load_configuration($cfg_file) $cfg['compiler']['defines']['items'] = [] if $cfg['compiler']['defines']['items'].nil? @@ -334,7 +328,7 @@ module RakefileHelpers end def run_system_test_profiles(mockables) - load 'cmock.rb' + load './lib/cmock.rb' load_configuration($cfg_file) $cfg['compiler']['defines']['items'] = [] if $cfg['compiler']['defines']['items'].nil? @@ -380,5 +374,10 @@ module RakefileHelpers end end end + + def fail_out(msg) + puts msg + exit(-1) + end end diff --git a/test/system/systest_generator.rb b/test/system/systest_generator.rb index fa4a452..6b81218 100644 --- a/test/system/systest_generator.rb +++ b/test/system/systest_generator.rb @@ -4,13 +4,12 @@ # [Released under MIT License. Please refer to license.txt for details] # ========================================== -SYS_TEST_GEN_ROOT = File.expand_path( File.dirname( __FILE__ ) ) + '/' - require 'yaml' -GENERATED_PATH = SYS_TEST_GEN_ROOT + 'generated/' -BUILD_PATH = SYS_TEST_GEN_ROOT + 'build/' -CASES_PATH = SYS_TEST_GEN_ROOT + 'cases/' +SYS_TEST_GEN_ROOT = File.expand_path( File.dirname( __FILE__ ) ) + '/' +GENERATED_PATH = SYS_TEST_GEN_ROOT + 'generated/' +BUILD_PATH = SYS_TEST_GEN_ROOT + 'build/' +CASES_PATH = SYS_TEST_GEN_ROOT + 'cases/' TYPES_H = 'types.h' UNITY_H = 'unity.h' diff --git a/test/test_helper.rb b/test/test_helper.rb index 0b61af5..ed9541f 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -3,18 +3,19 @@ # Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams # [Released under MIT License. Please refer to license.txt for details] # ========================================== - -require File.expand_path(File.dirname(__FILE__)) + "/../config/test_environment" +[ "/../config/test_environment", + "/../vendor/behaviors/lib/behaviors" +].each do |req| + require File.expand_path(File.dirname(__FILE__)) + req +end #gem install test-unit -v 1.2.3 ruby_version = RUBY_VERSION.split('.') if (ruby_version[1].to_i == 9) and (ruby_version[2].to_i > 1) - require 'gems' + require 'rubygems' gem 'test-unit' end require 'test/unit' - -require 'behaviors' require 'hardmock' class Test::Unit::TestCase diff --git a/test/unit/cmock_generator_plugin_ignore_test.rb b/test/unit/cmock_generator_plugin_ignore_test.rb index 62f398e..9ae3318 100644 --- a/test/unit/cmock_generator_plugin_ignore_test.rb +++ b/test/unit/cmock_generator_plugin_ignore_test.rb @@ -53,10 +53,6 @@ class CMockGeneratorPluginIgnoreTest < Test::Unit::TestCase assert_equal(expected, returned) end - should "not add code to implementation (when :args_and_calls)" do - assert(! @cmock_generator_plugin_ignore.methods.include?(:mock_implementation)) - end - should "add required code to implementation precheck with void function (when :args_and_calls)" do function = {:name => "Mold", :args_string => "void", :return => test_return[:void]} expected = [" if (Mock.Mold_IgnoreBool)\n", diff --git a/test/unit/cmock_header_parser_test.rb b/test/unit/cmock_header_parser_test.rb index a7906b8..b6bf90f 100644 --- a/test/unit/cmock_header_parser_test.rb +++ b/test/unit/cmock_header_parser_test.rb @@ -544,7 +544,7 @@ class CMockHeaderParserTest < Test::Unit::TestCase assert_equal(expected, @parser.parse_declaration(source)) end - should "should fully parse multiple prototypes" do + should "fully parse multiple prototypes" do source = "const int TheMatrix(int Trinity, unsigned int * Neo);\n" + "int Morpheus(int, unsigned int*);\n"