ceedling 0.17.0 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/ceedling.gemspec +1 -1
  3. data/lib/ceedling/version.rb +2 -2
  4. data/lib/ceedling/version.rb.erb +1 -2
  5. data/test_graveyard/unit/busted/generator_test_runner_test.rb +2 -5
  6. data/vendor/cmock/Gemfile +1 -3
  7. data/vendor/cmock/Rakefile +10 -17
  8. data/vendor/cmock/docs/license.txt +18 -30
  9. data/vendor/cmock/examples/gcc.yml +2 -2
  10. data/vendor/cmock/examples/iar_v4.yml +3 -3
  11. data/vendor/cmock/examples/iar_v5.yml +3 -3
  12. data/vendor/cmock/examples/rakefile_helper.rb +35 -35
  13. data/vendor/cmock/lib/cmock_generator.rb +17 -5
  14. data/vendor/cmock/lib/cmock_generator_plugin_array.rb +9 -3
  15. data/vendor/cmock/lib/cmock_generator_plugin_ignore_arg.rb +1 -1
  16. data/vendor/cmock/lib/cmock_generator_plugin_return_thru_ptr.rb +1 -1
  17. data/vendor/cmock/lib/cmock_header_parser.rb +7 -3
  18. data/vendor/cmock/release/version.info +1 -1
  19. data/vendor/cmock/test/c/TestCMockCDynamic_Runner.c +1 -2
  20. data/vendor/cmock/test/c/TestCMockC_Runner.c +1 -1
  21. data/vendor/cmock/test/system/systest_generator.rb +6 -2
  22. data/vendor/cmock/test/system/test_compilation/const.h +3 -1
  23. data/vendor/cmock/test/test_helper.rb +38 -40
  24. data/vendor/cmock/test/unit/cmock_config_test.rb +26 -29
  25. data/vendor/cmock/test/unit/cmock_file_writer_test.rb +8 -11
  26. data/vendor/cmock/test/unit/cmock_generator_main_test.rb +82 -80
  27. data/vendor/cmock/test/unit/cmock_generator_plugin_array_test.rb +62 -43
  28. data/vendor/cmock/test/unit/cmock_generator_plugin_callback_test.rb +44 -45
  29. data/vendor/cmock/test/unit/cmock_generator_plugin_cexception_test.rb +30 -31
  30. data/vendor/cmock/test/unit/cmock_generator_plugin_expect_any_args_test.rb +15 -16
  31. data/vendor/cmock/test/unit/cmock_generator_plugin_expect_test.rb +76 -77
  32. data/vendor/cmock/test/unit/cmock_generator_plugin_ignore_arg_test.rb +19 -19
  33. data/vendor/cmock/test/unit/cmock_generator_plugin_ignore_test.rb +17 -18
  34. data/vendor/cmock/test/unit/cmock_generator_plugin_return_thru_ptr_test.rb +17 -17
  35. data/vendor/cmock/test/unit/cmock_generator_utils_test.rb +74 -65
  36. data/vendor/cmock/test/unit/cmock_header_parser_test.rb +103 -76
  37. data/vendor/cmock/test/unit/cmock_plugin_manager_test.rb +46 -36
  38. data/vendor/cmock/test/unit/cmock_unityhelper_parser_test.rb +85 -85
  39. data/vendor/unity/auto/generate_test_runner.rb +4 -3
  40. data/vendor/unity/auto/type_sanitizer.rb +8 -0
  41. data/vendor/unity/auto/unity_test_summary.py +135 -0
  42. data/vendor/unity/examples/example_1/makefile +16 -0
  43. data/vendor/unity/examples/example_1/src/ProductionCode2.c +2 -0
  44. data/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +0 -13
  45. data/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +0 -13
  46. data/vendor/unity/examples/example_2/makefile +20 -1
  47. data/vendor/unity/examples/example_2/src/ProductionCode2.c +2 -0
  48. data/vendor/unity/examples/example_2/test/test_runners/all_tests.c +2 -2
  49. data/vendor/unity/examples/example_3/makefile +16 -0
  50. data/vendor/unity/examples/example_3/src/ProductionCode2.c +2 -0
  51. data/vendor/unity/examples/example_3/test/no_ruby/TestProductionCode2_Runner.c +0 -13
  52. data/vendor/unity/examples/example_3/test/no_ruby/TestProductionCode_Runner.c +0 -13
  53. data/vendor/unity/extras/fixture/rakefile.rb +14 -3
  54. data/vendor/unity/extras/fixture/src/unity_fixture.c +21 -11
  55. data/vendor/unity/extras/fixture/src/unity_fixture.h +8 -4
  56. data/vendor/unity/extras/fixture/src/unity_fixture_internals.h +1 -1
  57. data/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +5 -0
  58. data/vendor/unity/extras/fixture/test/main/AllTests.c +2 -2
  59. data/vendor/unity/extras/fixture/test/unity_fixture_Test.c +8 -8
  60. data/vendor/unity/extras/fixture/test/unity_output_Spy.c +2 -2
  61. data/vendor/unity/extras/fixture/test/unity_output_Spy.h +2 -2
  62. data/vendor/unity/release/version.info +1 -1
  63. data/vendor/unity/src/unity.c +26 -19
  64. data/vendor/unity/src/unity_internals.h +9 -12
  65. data/vendor/unity/test/targets/gcc_auto_stdint.yml +13 -0
  66. metadata +4 -5
  67. data/vendor/cmock/test/spec/cmock_file_writer_spec.rb +0 -45
  68. data/vendor/cmock/test/spec/cmock_generator_plugin_array_spec.rb +0 -52
  69. data/vendor/cmock/test/spec/spec_helper.rb +0 -12
@@ -4,8 +4,6 @@
4
4
  # [Released under MIT License. Please refer to license.txt for details]
5
5
  # ==========================================
6
6
 
7
- $here = File.dirname __FILE__
8
-
9
7
  class CMockGenerator
10
8
 
11
9
  attr_accessor :config, :file_writer, :module_name, :clean_mock_name, :mock_name, :utils, :plugins, :ordered
@@ -23,12 +21,24 @@ class CMockGenerator
23
21
  @includes_h_post_orig_header = (@config.includes_h_post_orig_header || []).map{|h| h =~ /</ ? h : "\"#{h}\""}
24
22
  @includes_c_pre_header = (@config.includes_c_pre_header || []).map{|h| h =~ /</ ? h : "\"#{h}\""}
25
23
  @includes_c_post_header = (@config.includes_c_post_header || []).map{|h| h =~ /</ ? h : "\"#{h}\""}
24
+
25
+ here = File.dirname __FILE__
26
+ unity_path_in_ceedling = "#{here}/../../unity" # path to Unity from within Ceedling
27
+ unity_path_in_cmock = "#{here}/../vendor/unity" # path to Unity from within CMock
28
+ if File.exist? unity_path_in_ceedling
29
+ require "#{unity_path_in_ceedling}/auto/type_sanitizer"
30
+ elsif File.exist? unity_path_in_cmock
31
+ require "#{unity_path_in_cmock}/auto/type_sanitizer"
32
+ else
33
+ raise "Failed to find an instance of Unity to pull in type_sanitizer module!"
34
+ end
35
+
26
36
  end
27
37
 
28
38
  def create_mock(module_name, parsed_stuff)
29
39
  @module_name = module_name
30
40
  @mock_name = @prefix + @module_name
31
- @clean_mock_name = @mock_name.gsub(/(?:-|\s+)/, "_")
41
+ @clean_mock_name = TypeSanitizer.sanitize_c_identifier(@mock_name)
32
42
  create_mock_header_file(parsed_stuff)
33
43
  create_mock_source_file(parsed_stuff)
34
44
  end
@@ -63,7 +73,7 @@ class CMockGenerator
63
73
  end
64
74
 
65
75
  def create_mock_header_header(file, filename)
66
- define_name = @clean_mock_name.gsub(/[-\/\\\.\,\s]+/,'_').upcase
76
+ define_name = @clean_mock_name.upcase
67
77
  orig_filename = filename[@config.mock_prefix.size..-1]
68
78
  file << "/* AUTOGENERATED FILE. DO NOT EDIT. */\n"
69
79
  file << "#ifndef _#{define_name}_H\n"
@@ -75,11 +85,13 @@ class CMockGenerator
75
85
  file << plugin_includes if (!plugin_includes.empty?)
76
86
  file << "\n"
77
87
  file << "/* Ignore the following warnings, since we are copying code */\n"
78
- file << "#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)\n"
88
+ file << "#if defined(__GNUC__) && !defined(__ICC)\n"
89
+ file << "#if !defined(__clang__)\n"
79
90
  file << "#pragma GCC diagnostic ignored \"-Wpragmas\"\n"
80
91
  file << "#endif\n"
81
92
  file << "#pragma GCC diagnostic ignored \"-Wunknown-pragmas\"\n"
82
93
  file << "#pragma GCC diagnostic ignored \"-Wduplicate-decl-specifier\"\n"
94
+ file << "#endif\n"
83
95
  file << "\n"
84
96
  end
85
97
 
@@ -2,7 +2,7 @@
2
2
  # CMock Project - Automatic Mock Generation for C
3
3
  # Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
4
4
  # [Released under MIT License. Please refer to license.txt for details]
5
- # ==========================================
5
+ # ==========================================
6
6
 
7
7
  class CMockGeneratorPluginArray
8
8
 
@@ -26,7 +26,10 @@ class CMockGeneratorPluginArray
26
26
  def mock_function_declarations(function)
27
27
  return nil unless function[:contains_ptr?]
28
28
  args_call = function[:args].map{|m| m[:ptr?] ? "#{m[:name]}, #{m[:name]}_Depth" : "#{m[:name]}"}.join(', ')
29
- args_string = function[:args].map{|m| m[:ptr?] ? "#{m[:type]} #{m[:name]}, int #{m[:name]}_Depth" : "#{m[:type]} #{m[:name]}"}.join(', ')
29
+ args_string = function[:args].map do |m|
30
+ const_str = m[:const?] ? 'const ' : ''
31
+ m[:ptr?] ? "#{const_str}#{m[:type]} #{m[:name]}, int #{m[:name]}_Depth" : "#{const_str}#{m[:type]} #{m[:name]}"
32
+ end.join(', ')
30
33
  if (function[:return][:void?])
31
34
  return "#define #{function[:name]}_ExpectWithArray(#{args_call}) #{function[:name]}_CMockExpectWithArray(__LINE__, #{args_call})\n" +
32
35
  "void #{function[:name]}_CMockExpectWithArray(UNITY_LINE_TYPE cmock_line, #{args_string});\n"
@@ -40,7 +43,10 @@ class CMockGeneratorPluginArray
40
43
  return nil unless function[:contains_ptr?]
41
44
  lines = []
42
45
  func_name = function[:name]
43
- args_string = function[:args].map{|m| m[:ptr?] ? "#{m[:type]} #{m[:name]}, int #{m[:name]}_Depth" : "#{m[:type]} #{m[:name]}"}.join(', ')
46
+ args_string = function[:args].map do |m|
47
+ const_str = m[:const?] ? 'const ' : ''
48
+ m[:ptr?] ? "#{const_str}#{m[:type]} #{m[:name]}, int #{m[:name]}_Depth" : "#{const_str}#{m[:type]} #{m[:name]}"
49
+ end.join(', ')
44
50
  call_string = function[:args].map{|m| m[:ptr?] ? "#{m[:name]}, #{m[:name]}_Depth" : m[:name]}.join(', ')
45
51
  if (function[:return][:void?])
46
52
  lines << "void #{func_name}_CMockExpectWithArray(UNITY_LINE_TYPE cmock_line, #{args_string})\n"
@@ -34,7 +34,7 @@ class CMockGeneratorPluginIgnoreArg
34
34
  lines << "void #{function[:name]}_CMockIgnoreArg_#{arg[:name]}(UNITY_LINE_TYPE cmock_line)\n"
35
35
  lines << "{\n"
36
36
  lines << " CMOCK_#{func_name}_CALL_INSTANCE* cmock_call_instance = " +
37
- "cmock_call_instance = (CMOCK_#{func_name}_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.#{func_name}_CallInstance));\n"
37
+ "(CMOCK_#{func_name}_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.#{func_name}_CallInstance));\n"
38
38
  lines << " UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, \"#{arg_name} IgnoreArg called before Expect on '#{func_name}'.\");\n"
39
39
  lines << " cmock_call_instance->IgnoreArg_#{arg_name} = 1;\n"
40
40
  lines << "}\n\n"
@@ -45,7 +45,7 @@ class CMockGeneratorPluginReturnThruPtr
45
45
  lines << "void #{func_name}_CMockReturnMemThruPtr_#{arg_name}(UNITY_LINE_TYPE cmock_line, #{arg[:type]} #{arg_name}, int cmock_size)\n"
46
46
  lines << "{\n"
47
47
  lines << " CMOCK_#{func_name}_CALL_INSTANCE* cmock_call_instance = " +
48
- "cmock_call_instance = (CMOCK_#{func_name}_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.#{func_name}_CallInstance));\n"
48
+ "(CMOCK_#{func_name}_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.#{func_name}_CallInstance));\n"
49
49
  lines << " UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, \"#{arg_name} ReturnThruPtr called before Expect on '#{func_name}'.\");\n"
50
50
  lines << " cmock_call_instance->ReturnThruPtr_#{arg_name}_Used = 1;\n"
51
51
  lines << " cmock_call_instance->ReturnThruPtr_#{arg_name}_Val = #{arg_name};\n"
@@ -93,6 +93,12 @@ class CMockHeaderParser
93
93
  "#{functype} #{$2.strip}(#{$3});"
94
94
  end
95
95
 
96
+ # remove function definitions by stripping off the arguments right now
97
+ source.gsub!(/\([^\)]*\)\s*\{[^\}]*\}/m, ";")
98
+
99
+ # remove pairs of braces because no function declarations will be inside of them
100
+ #source.gsub!(/\{[^\}]*\}/m, '')
101
+
96
102
  #drop extra white space to make the rest go faster
97
103
  source.gsub!(/^\s+/, '') # remove extra white space from beginning of line
98
104
  source.gsub!(/\s+$/, '') # remove extra white space from end of line
@@ -101,7 +107,7 @@ class CMockHeaderParser
101
107
  source.gsub!(/\s+/, ' ') # remove remaining extra white space
102
108
 
103
109
  #split lines on semicolons and remove things that are obviously not what we are looking for
104
- src_lines = source.split(/\s*;\s*/)
110
+ src_lines = source.split(/\s*;\s*/).uniq
105
111
  src_lines.delete_if {|line| line.strip.length == 0} # remove blank lines
106
112
  src_lines.delete_if {|line| !(line =~ /[\w\s\*]+\(+\s*\*[\*\s]*[\w\s]+(?:\[[\w\s]*\]\s*)+\)+\s*\((?:[\w\s\*]*,?)*\s*\)/).nil?} #remove function pointer arrays
107
113
  if (@treat_externs == :include)
@@ -109,8 +115,6 @@ class CMockHeaderParser
109
115
  else
110
116
  src_lines.delete_if {|line| !(line =~ /(?:^|\s+)(?:extern|inline)\s+/).nil?} # remove inline and extern functions
111
117
  end
112
- src_lines.delete_if {|line| !(line =~ /\{/).nil? } # remove lines with opening braces { because this isn't a declaration, it's a definition!
113
- src_lines.map!{|line| line.gsub(/.*\}/,'')} #remove braces left at the beginning of lines
114
118
  src_lines.delete_if {|line| line.empty? } #drop empty lines
115
119
  end
116
120
 
@@ -1,2 +1,2 @@
1
- 2.0
1
+ 2.3
2
2
 
@@ -21,8 +21,7 @@ extern void test_ThatWeCanAskForAllSortsOfSizes(void);
21
21
 
22
22
  int main(void)
23
23
  {
24
- UnityBegin();
25
- Unity.TestFile = "TestCMockDynamic.c";
24
+ UnityBegin("TestCMockDynamic.c");
26
25
 
27
26
  RUN_TEST(test_MemNewWillReturnNullIfGivenIllegalSizes, 26);
28
27
  RUN_TEST(test_MemNewWillNowSupportSizesGreaterThanTheDefinesCMockSize, 35);
@@ -22,8 +22,8 @@ extern void test_ThatWeCanAskForAllSortsOfSizes(void);
22
22
 
23
23
  int main(void)
24
24
  {
25
- UnityBegin();
26
25
  Unity.TestFile = "TestCMock.c";
26
+ UnityBegin(Unity.TestFile);
27
27
 
28
28
  RUN_TEST(test_MemNewWillReturnNullIfGivenIllegalSizes, 21);
29
29
  RUN_TEST(test_MemChainWillReturnNullAndDoNothingIfGivenIllegalInformation, 32);
@@ -151,11 +151,13 @@ class SystemTestGenerator
151
151
  out.puts("#include \"#{include}\"")
152
152
  end
153
153
  out.puts('')
154
- out.puts("#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)")
154
+ out.puts("#if defined(__GNUC__) && !defined(__ICC)")
155
+ out.puts("#if !defined(__clang__)")
155
156
  out.puts("#pragma GCC diagnostic ignored \"-Wpragmas\"")
156
157
  out.puts("#endif")
157
158
  out.puts('#pragma GCC diagnostic ignored "-Wunknown-pragmas"')
158
159
  out.puts('#pragma GCC diagnostic ignored "-Wduplicate-decl-specifier"')
160
+ out.puts("#endif")
159
161
  out.puts('')
160
162
  yield(out)
161
163
  out.puts('')
@@ -170,11 +172,13 @@ class SystemTestGenerator
170
172
  out.puts("#include \"#{include}\"")
171
173
  end
172
174
  out.puts('')
173
- out.puts("#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)")
175
+ out.puts("#if defined(__GNUC__) && !defined(__ICC)")
176
+ out.puts("#if !defined(__clang__)")
174
177
  out.puts("#pragma GCC diagnostic ignored \"-Wpragmas\"")
175
178
  out.puts("#endif")
176
179
  out.puts('#pragma GCC diagnostic ignored "-Wunknown-pragmas"')
177
180
  out.puts('#pragma GCC diagnostic ignored "-Wduplicate-decl-specifier"')
181
+ out.puts("#endif")
178
182
  out.puts('')
179
183
  yield(out)
180
184
  out.puts('')
@@ -4,11 +4,13 @@
4
4
  [Released under MIT License. Please refer to license.txt for details]
5
5
  ========================================== */
6
6
 
7
- #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)
7
+ #if defined(__GNUC__) && !defined(__ICC)
8
+ #if !defined(__clang__)
8
9
  #pragma GCC diagnostic ignored "-Wpragmas"
9
10
  #endif
10
11
  #pragma GCC diagnostic ignored "-Wunknown-pragmas"
11
12
  #pragma GCC diagnostic ignored "-Wduplicate-decl-specifier"
13
+ #endif
12
14
 
13
15
  struct _DUMMY_T { unsigned int a; float b; };
14
16
 
@@ -2,48 +2,46 @@
2
2
  # CMock Project - Automatic Mock Generation for C
3
3
  # Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
4
4
  # [Released under MIT License. Please refer to license.txt for details]
5
- # ==========================================
6
- [ "/../config/test_environment",
7
- "/../vendor/behaviors/lib/behaviors"
8
- ].each do |req|
9
- require File.expand_path(File.dirname(__FILE__)) + req
10
- end
5
+ # ==========================================
11
6
 
12
- # Note from Matt July 16 2012: not sure why this is here, as 1.9 comes with
13
- # minitest, an implementation for Test::Unit in 1.9.
14
- # Using test-unit makes hardmock quite unhappy.
15
- # Long-term solution: replace hardmock with a mocking library like rr or rspec
16
- # that is well maintained into the future. hardmock is off of life support.
17
- #gem install test-unit -v 1.2.3
18
- # ruby_version = RUBY_VERSION.split('.')
19
- # if (ruby_version[1].to_i == 9) and (ruby_version[2].to_i > 1)
20
- # require 'rubygems'
21
- # gem 'test-unit'
22
- # end
23
- require 'test/unit'
24
- require 'hardmock'
25
7
 
26
- class Test::Unit::TestCase
27
- extend Behaviors
28
-
29
- #these are helpful test structures which can be used during tests
30
-
31
- def test_return
32
- {
33
- :int => {:type => "int", :name => 'cmock_to_return', :ptr? => false, :const? => false, :void? => false, :str => 'int cmock_to_return'},
34
- :int_ptr => {:type => "int*", :name => 'cmock_to_return', :ptr? => true, :const? => false, :void? => false, :str => 'int* cmock_to_return'},
35
- :void => {:type => "void", :name => 'cmock_to_return', :ptr? => false, :const? => false, :void? => true, :str => 'void cmock_to_return'},
36
- :string => {:type => "char*", :name => 'cmock_to_return', :ptr? => false, :const? => true, :void? => false, :str => 'const char* cmock_to_return'},
37
- }
38
- end
8
+ require 'minitest/autorun'
39
9
 
40
- def test_arg
41
- {
42
- :int => {:type => "int", :name => 'MyInt', :ptr? => false, :const? => false},
43
- :int_ptr => {:type => "int*", :name => 'MyIntPtr', :ptr? => true, :const? => false},
44
- :mytype => {:type => "MY_TYPE", :name => 'MyMyType', :ptr? => false, :const? => true},
45
- :mytype_ptr => {:type => "MY_TYPE*", :name => 'MyMyTypePtr', :ptr? => true, :const? => false},
46
- :string => {:type => "char*", :name => 'MyStr', :ptr? => false, :const? => true},
47
- }
10
+ def create_mocks(*mocks)
11
+ mocks.each do |mock|
12
+ eval "@#{mock} = Minitest::Mock.new"
48
13
  end
49
14
  end
15
+
16
+ def create_stub(funcs)
17
+ stub = Class.new
18
+ #if (RUBY_VERSION.split('.')[0].to_i >= 2)
19
+ # funcs.each_pair {|k,v| stub.define_singleton_method(k) {|*unused| return v } }
20
+ #else
21
+ blob = "class << stub\n"
22
+ funcs.each_pair {|k,v| blob += "def #{k.to_s}(unused=nil)\n #{v.inspect}\nend\n" }
23
+ blob += "end"
24
+ eval blob
25
+ #end
26
+ stub
27
+ end
28
+
29
+ def test_return
30
+ {
31
+ :int => {:type => "int", :name => 'cmock_to_return', :ptr? => false, :const? => false, :void? => false, :str => 'int cmock_to_return'},
32
+ :int_ptr => {:type => "int*", :name => 'cmock_to_return', :ptr? => true, :const? => false, :void? => false, :str => 'int* cmock_to_return'},
33
+ :void => {:type => "void", :name => 'cmock_to_return', :ptr? => false, :const? => false, :void? => true, :str => 'void cmock_to_return'},
34
+ :string => {:type => "char*", :name => 'cmock_to_return', :ptr? => false, :const? => true, :void? => false, :str => 'const char* cmock_to_return'},
35
+ }
36
+ end
37
+
38
+ def test_arg
39
+ {
40
+ :int => {:type => "int", :name => 'MyInt', :ptr? => false, :const? => false},
41
+ :int_ptr => {:type => "int*", :name => 'MyIntPtr', :ptr? => true, :const? => false},
42
+ :mytype => {:type => "MY_TYPE", :name => 'MyMyType', :ptr? => false, :const? => true},
43
+ :mytype_ptr => {:type => "MY_TYPE*", :name => 'MyMyTypePtr', :ptr? => true, :const? => false},
44
+ :string => {:type => "char*", :name => 'MyStr', :ptr? => false, :const? => true},
45
+ }
46
+ end
47
+
@@ -2,19 +2,16 @@
2
2
  # CMock Project - Automatic Mock Generation for C
3
3
  # Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
4
4
  # [Released under MIT License. Please refer to license.txt for details]
5
- # ==========================================
5
+ # ==========================================
6
+
6
7
 
7
8
  require File.expand_path(File.dirname(__FILE__)) + "/../test_helper"
8
9
  require 'cmock_config'
9
10
 
10
- class CMockConfigTest < Test::Unit::TestCase
11
- def setup
12
- end
13
11
 
14
- def teardown
15
- end
16
-
17
- should "use default settings when no parameters are specified" do
12
+ describe CMockConfig, "Verify CMockConfig Module" do
13
+
14
+ it "use default settings when no parameters are specified" do
18
15
  config = CMockConfig.new
19
16
  assert_equal(CMockConfig::CMockDefaultOptions[:mock_path], config.mock_path)
20
17
  assert_equal(CMockConfig::CMockDefaultOptions[:includes], config.includes)
@@ -22,8 +19,8 @@ class CMockConfigTest < Test::Unit::TestCase
22
19
  assert_equal(CMockConfig::CMockDefaultOptions[:plugins], config.plugins)
23
20
  assert_equal(CMockConfig::CMockDefaultOptions[:treat_externs], config.treat_externs)
24
21
  end
25
-
26
- should "replace only options specified in a hash" do
22
+
23
+ it "replace only options specified in a hash" do
27
24
  test_includes = ['hello']
28
25
  test_attributes = ['blah', 'bleh']
29
26
  config = CMockConfig.new(:includes => test_includes, :attributes => test_attributes)
@@ -33,8 +30,8 @@ class CMockConfigTest < Test::Unit::TestCase
33
30
  assert_equal(CMockConfig::CMockDefaultOptions[:plugins], config.plugins)
34
31
  assert_equal(CMockConfig::CMockDefaultOptions[:treat_externs], config.treat_externs)
35
32
  end
36
-
37
- should "replace only options specified in a yaml file" do
33
+
34
+ it "replace only options specified in a yaml file" do
38
35
  test_plugins = [:soda, :pizza]
39
36
  config = CMockConfig.new("#{File.expand_path(File.dirname(__FILE__))}/cmock_config_test.yml")
40
37
  assert_equal(CMockConfig::CMockDefaultOptions[:mock_path], config.mock_path)
@@ -43,8 +40,8 @@ class CMockConfigTest < Test::Unit::TestCase
43
40
  assert_equal(:include, config.treat_externs)
44
41
  end
45
42
 
46
- should "populate treat_as map with internal standard_treat_as_map defaults, redefine defaults, and add custom values" do
47
-
43
+ it "populate treat_as map with internal standard_treat_as_map defaults, redefine defaults, and add custom values" do
44
+
48
45
  user_treat_as1 = {
49
46
  'BOOL' => 'UINT8', # redefine standard default
50
47
  'unsigned long' => 'INT', # redefine standard default
@@ -55,10 +52,10 @@ class CMockConfigTest < Test::Unit::TestCase
55
52
  'BOOL' => 'INT16', # redefine standard default
56
53
  'U16' => 'HEX16' # custom value
57
54
  }
58
-
55
+
59
56
  config1 = CMockConfig.new({:treat_as => user_treat_as1})
60
57
  config2 = CMockConfig.new({:treat_as => user_treat_as2})
61
-
58
+
62
59
  # ----- USER SET 1
63
60
  # standard defaults
64
61
  assert_equal('INT', config1.treat_as['BOOL_T'])
@@ -73,16 +70,16 @@ class CMockConfigTest < Test::Unit::TestCase
73
70
  # overrides
74
71
  assert_equal('UINT8', config1.treat_as['BOOL'])
75
72
  assert_equal('INT', config1.treat_as['unsigned long'])
76
-
73
+
77
74
  # added custom values
78
75
  assert_equal('UINT8', config1.treat_as['U8'])
79
76
  assert_equal('UINT16', config1.treat_as['U16'])
80
-
77
+
81
78
  # standard_treat_as_map: unchanged
82
79
  assert_equal('INT', config1.standard_treat_as_map['BOOL'])
83
- assert_equal('HEX32', config1.standard_treat_as_map['unsigned long'])
80
+ assert_equal('HEX32', config1.standard_treat_as_map['unsigned long'])
84
81
  assert_equal('STRING', config1.standard_treat_as_map['char*'])
85
-
82
+
86
83
  # ----- USER SET 2
87
84
  # standard defaults
88
85
  assert_equal('INT', config2.treat_as['BOOL_T'])
@@ -97,25 +94,25 @@ class CMockConfigTest < Test::Unit::TestCase
97
94
 
98
95
  # overrides
99
96
  assert_equal('INT16', config2.treat_as['BOOL'])
100
-
97
+
101
98
  # added custom values
102
99
  assert_equal('HEX16', config2.treat_as['U16'])
103
-
100
+
104
101
  # standard_treat_as_map: unchanged
105
102
  assert_equal('INT', config2.standard_treat_as_map['BOOL'])
106
- assert_equal('HEX32', config2.standard_treat_as_map['unsigned long'])
103
+ assert_equal('HEX32', config2.standard_treat_as_map['unsigned long'])
107
104
  assert_equal('STRING', config2.standard_treat_as_map['char*'])
108
105
  end
109
-
110
- should "standard treat_as map should be incorruptable" do
106
+
107
+ it "standard treat_as map should be incorruptable" do
111
108
  config = CMockConfig.new({})
112
-
109
+
113
110
  assert_equal('INT', config.standard_treat_as_map['BOOL_T'])
114
-
111
+
115
112
  local = config.standard_treat_as_map
116
113
  local['BOOL_T'] = "U8"
117
-
114
+
118
115
  assert_equal('INT', config.standard_treat_as_map['BOOL_T'])
119
116
  end
120
-
117
+
121
118
  end
@@ -2,29 +2,26 @@
2
2
  # CMock Project - Automatic Mock Generation for C
3
3
  # Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
4
4
  # [Released under MIT License. Please refer to license.txt for details]
5
- # ==========================================
5
+ # ==========================================
6
6
 
7
7
  require File.expand_path(File.dirname(__FILE__)) + "/../test_helper"
8
8
  require 'cmock_file_writer'
9
9
 
10
- class CMockFileWriterTest < Test::Unit::TestCase
11
- def setup
10
+ describe CMockFileWriter, "Verify CMockFileWriter Module" do
11
+
12
+ before do
12
13
  create_mocks :config
13
14
  @cmock_file_writer = CMockFileWriter.new(@config)
14
15
  end
15
16
 
16
- def teardown
17
- end
18
-
19
- should "have set up internal accessors correctly on init" do
20
- assert_equal(@config, @cmock_file_writer.config)
17
+ after do
21
18
  end
22
-
23
- should "complain if a block was not specified when calling create" do
19
+
20
+ it "complain if a block was not specified when calling create" do
24
21
  begin
25
22
  @cmock_file_writer.create_file("test.txt")
26
23
  assert false, "Should Have Thrown An Error When Calling Without A Block"
27
24
  rescue
28
25
  end
29
- end
26
+ end
30
27
  end