ceedling 0.29.0 → 0.29.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/assets/project_as_gem.yml +2 -5
  3. data/assets/project_with_guts.yml +2 -5
  4. data/assets/project_with_guts_gcov.yml +2 -5
  5. data/bin/ceedling +14 -12
  6. data/ceedling.sublime-project +26 -23
  7. data/docs/CeedlingPacket.md +17 -2
  8. data/docs/CeedlingUpgrade.md +83 -0
  9. data/lib/ceedling/build_invoker_utils.rb +1 -1
  10. data/lib/ceedling/cacheinator_helper.rb +2 -2
  11. data/lib/ceedling/dependinator.rb +2 -2
  12. data/lib/ceedling/generator_test_results.rb +13 -2
  13. data/lib/ceedling/tasks_base.rake +17 -23
  14. data/lib/ceedling/tasks_filesystem.rake +12 -3
  15. data/lib/ceedling/tasks_tests.rake +1 -1
  16. data/lib/ceedling/test_invoker.rb +1 -1
  17. data/lib/ceedling/version.rb +28 -14
  18. data/plugins/gcov/gcov.rake +3 -3
  19. data/plugins/junit_tests_report/lib/junit_tests_report.rb +4 -3
  20. data/spec/spec_system_helper.rb +42 -2
  21. data/spec/support/test_example.fail +2 -0
  22. data/spec/support/test_example.pass +2 -0
  23. data/spec/support/test_example_ignore.pass +2 -0
  24. data/spec/support/test_example_mangled.pass +1 -0
  25. data/spec/support/test_example_with_time.pass +2 -0
  26. data/spec/system/deployment_spec.rb +6 -0
  27. data/vendor/cmock/docs/CMock_Summary.md +8 -1
  28. data/vendor/cmock/lib/cmock_config.rb +11 -1
  29. data/vendor/cmock/lib/cmock_generator.rb +7 -0
  30. data/vendor/cmock/lib/cmock_generator_plugin_callback.rb +2 -2
  31. data/vendor/cmock/lib/cmock_header_parser.rb +123 -13
  32. data/vendor/cmock/src/cmock.h +1 -1
  33. data/vendor/cmock/test/system/test_compilation/config.yml +1 -0
  34. data/vendor/cmock/test/system/test_compilation/inline.h +23 -0
  35. data/vendor/cmock/test/system/test_interactions/all_plugins_coexist.yml +1 -0
  36. data/vendor/cmock/test/unit/cmock_config_test.rb +3 -0
  37. data/vendor/cmock/test/unit/cmock_config_test.yml +2 -1
  38. data/vendor/cmock/test/unit/cmock_generator_main_test.rb +3 -0
  39. data/vendor/cmock/test/unit/cmock_generator_plugin_callback_test.rb +4 -4
  40. data/vendor/cmock/test/unit/cmock_header_parser_test.rb +272 -0
  41. metadata +4 -3
  42. data/out.fail +0 -22
@@ -11,7 +11,7 @@
11
11
 
12
12
  #define CMOCK_VERSION_MAJOR 2
13
13
  #define CMOCK_VERSION_MINOR 5
14
- #define CMOCK_VERSION_BUILD 0
14
+ #define CMOCK_VERSION_BUILD 1
15
15
  #define CMOCK_VERSION ((CMOCK_VERSION_MAJOR << 16) | (CMOCK_VERSION_MINOR << 8) | CMOCK_VERSION_BUILD)
16
16
 
17
17
  //should be big enough to index full range of CMOCK_MEM_MAX
@@ -4,6 +4,7 @@
4
4
  :includes: []
5
5
  :mock_path: ./system/generated/
6
6
  :mock_prefix: mock_
7
+ :treat_inlines: :include
7
8
  :treat_as_void:
8
9
  - OSEK_TASK
9
10
  - VOID_TYPE_CRAZINESS
@@ -0,0 +1,23 @@
1
+
2
+ static inline int dummy_func_0(void) {
3
+ return 5;
4
+ }
5
+
6
+ inline static int dummy_func_1(int a) {
7
+ int a = dummy_func_0();
8
+ int b = 10;
9
+
10
+ return a + b;
11
+ }
12
+
13
+ int inline static dummy_func_2(int a, char b, float c) {
14
+ c += 3.14;
15
+ b -= 32;
16
+ return a + (int)(b) + (int)c;
17
+ }
18
+
19
+ void dummy_normal_func(int a);
20
+
21
+ inline void dummy_func_3(void) {
22
+ //NOP
23
+ }
@@ -12,6 +12,7 @@
12
12
  :callback_after_arg_check: true
13
13
  :callback_include_count: false
14
14
  :treat_externs: :include
15
+ :treat_inlines: :include
15
16
 
16
17
  :systest:
17
18
  :types: |
@@ -19,6 +19,7 @@ describe CMockConfig, "Verify CMockConfig Module" do
19
19
  assert_equal(CMockConfig::CMockDefaultOptions[:attributes], config.attributes)
20
20
  assert_equal(CMockConfig::CMockDefaultOptions[:plugins], config.plugins)
21
21
  assert_equal(CMockConfig::CMockDefaultOptions[:treat_externs], config.treat_externs)
22
+ assert_equal(CMockConfig::CMockDefaultOptions[:treat_inlines], config.treat_inlines)
22
23
  end
23
24
 
24
25
  it "replace only options specified in a hash" do
@@ -30,6 +31,7 @@ describe CMockConfig, "Verify CMockConfig Module" do
30
31
  assert_equal(test_attributes, config.attributes)
31
32
  assert_equal(CMockConfig::CMockDefaultOptions[:plugins], config.plugins)
32
33
  assert_equal(CMockConfig::CMockDefaultOptions[:treat_externs], config.treat_externs)
34
+ assert_equal(CMockConfig::CMockDefaultOptions[:treat_inlines], config.treat_inlines)
33
35
  end
34
36
 
35
37
  it "replace only options specified in a yaml file" do
@@ -40,6 +42,7 @@ describe CMockConfig, "Verify CMockConfig Module" do
40
42
  assert_nil(config.includes)
41
43
  assert_equal(test_plugins, config.plugins)
42
44
  assert_equal(:include, config.treat_externs)
45
+ assert_equal(:include, config.treat_inlines)
43
46
  end
44
47
 
45
48
  it "populate treat_as map with internal standard_treat_as_map defaults, redefine defaults, and add custom values" do
@@ -2,4 +2,5 @@
2
2
  :plugins:
3
3
  - 'soda'
4
4
  - 'pizza'
5
- :treat_externs: :include
5
+ :treat_externs: :include
6
+ :treat_inlines: :include
@@ -54,6 +54,7 @@ describe CMockGenerator, "Verify CMockGenerator Module" do
54
54
  @config.expect :includes_c_post_header, nil
55
55
  @config.expect :subdir, nil
56
56
  @config.expect :fail_on_unexpected_calls, true
57
+ @config.expect :treat_inlines, :exclude
57
58
  @cmock_generator = CMockGenerator.new(@config, @file_writer, @utils, @plugins)
58
59
  @cmock_generator.module_name = @module_name
59
60
  @cmock_generator.mock_name = "Mock#{@module_name}"
@@ -72,6 +73,7 @@ describe CMockGenerator, "Verify CMockGenerator Module" do
72
73
  @config.expect :includes_c_post_header, nil
73
74
  @config.expect :subdir, nil
74
75
  @config.expect :fail_on_unexpected_calls, true
76
+ @config.expect :treat_inlines, :exclude
75
77
  @cmock_generator_strict = CMockGenerator.new(@config, @file_writer, @utils, @plugins)
76
78
  @cmock_generator_strict.module_name = @module_name
77
79
  @cmock_generator_strict.mock_name = "Mock#{@module_name}"
@@ -133,6 +135,7 @@ describe CMockGenerator, "Verify CMockGenerator Module" do
133
135
  @config.expect :includes_c_post_header, nil
134
136
  @config.expect :subdir, nil
135
137
  @config.expect :fail_on_unexpected_calls, true
138
+ @config.expect :treat_inlines, :exclude
136
139
  @cmock_generator2 = CMockGenerator.new(@config, @file_writer, @utils, @plugins)
137
140
  @cmock_generator2.module_name = "Pout-Pout Fish"
138
141
  @cmock_generator2.mock_name = "MockPout-Pout Fish"
@@ -191,9 +191,9 @@ describe CMockGeneratorPluginCallback, "Verify CMockGeneratorPluginCallback Modu
191
191
  expected = [" if (!Mock.Apple_CallbackBool &&\n",
192
192
  " Mock.Apple_CallbackFunctionPointer != NULL)\n",
193
193
  " {\n",
194
- " int ret = Mock.Apple_CallbackFunctionPointer(Mock.Apple_CallbackCalls++);\n",
194
+ " int cmock_cb_ret = Mock.Apple_CallbackFunctionPointer(Mock.Apple_CallbackCalls++);\n",
195
195
  " UNITY_CLR_DETAILS();\n",
196
- " return ret;\n",
196
+ " return cmock_cb_ret;\n",
197
197
  " }\n"
198
198
  ].join
199
199
  returned = @cmock_generator_plugin_callback.mock_implementation_precheck(function)
@@ -246,9 +246,9 @@ describe CMockGeneratorPluginCallback, "Verify CMockGeneratorPluginCallback Modu
246
246
  expected = [" if (!Mock.Apple_CallbackBool &&\n",
247
247
  " Mock.Apple_CallbackFunctionPointer != NULL)\n",
248
248
  " {\n",
249
- " int ret = Mock.Apple_CallbackFunctionPointer(steak, flag, Mock.Apple_CallbackCalls++);\n",
249
+ " int cmock_cb_ret = Mock.Apple_CallbackFunctionPointer(steak, flag, Mock.Apple_CallbackCalls++);\n",
250
250
  " UNITY_CLR_DETAILS();\n",
251
- " return ret;\n",
251
+ " return cmock_cb_ret;\n",
252
252
  " }\n"
253
253
  ].join
254
254
  returned = @cmock_generator_plugin_callback.mock_implementation_precheck(function)
@@ -23,6 +23,7 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
23
23
  @config.expect :when_no_prototypes, :error
24
24
  @config.expect :verbosity, 1
25
25
  @config.expect :treat_externs, :exclude
26
+ @config.expect :treat_inlines, :exclude
26
27
  @config.expect :array_size_type, ['int', 'size_t']
27
28
  @config.expect :array_size_name, 'size|len'
28
29
 
@@ -453,6 +454,60 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
453
454
  assert_equal(expected, @parser.import_source(source).map!{|s|s.strip})
454
455
  end
455
456
 
457
+ it "leave inline functions if inline to be included" do
458
+ source =
459
+ "extern uint32 foobar(unsigned int);\n" +
460
+ "uint32 extern_name_func(unsigned int);\n" +
461
+ "uint32 funcinline(unsigned int);\n" +
462
+ "inline void inlineBar(unsigned int);\n" +
463
+ "extern int extern_bar(void);\n" +
464
+ "static inline void staticinlineBar(unsigned int);\n" +
465
+ "static inline void bar(unsigned int);\n" +
466
+ "static inline void bar(unsigned int)\n" +
467
+ "{\n" +
468
+ " // NOP\n" +
469
+ "}\n"
470
+
471
+ expected =
472
+ [ "uint32 extern_name_func(unsigned int)",
473
+ "uint32 funcinline(unsigned int)",
474
+ "void inlineBar(unsigned int)",
475
+ "void staticinlineBar(unsigned int)",
476
+ "void bar(unsigned int)"
477
+ ]
478
+
479
+ @parser.treat_inlines = :include
480
+ assert_equal(expected, @parser.import_source(source).map!{|s|s.strip})
481
+ end
482
+
483
+ it "leave inline and extern functions if inline and extern to be included" do
484
+ source =
485
+ "extern uint32 foobar(unsigned int);\n" +
486
+ "uint32 extern_name_func(unsigned int);\n" +
487
+ "uint32 funcinline(unsigned int);\n" +
488
+ "inline void inlineBar(unsigned int);\n" +
489
+ "extern int extern_bar(void);\n" +
490
+ "static inline void staticinlineBar(unsigned int);\n" +
491
+ "static inline void bar(unsigned int);\n" +
492
+ "static inline void bar(unsigned int)\n" +
493
+ "{\n" +
494
+ " // NOP\n" +
495
+ "}\n"
496
+
497
+ expected =
498
+ [ "extern uint32 foobar(unsigned int)",
499
+ "uint32 extern_name_func(unsigned int)",
500
+ "uint32 funcinline(unsigned int)",
501
+ "void inlineBar(unsigned int)",
502
+ "extern int extern_bar(void)",
503
+ "void staticinlineBar(unsigned int)",
504
+ "void bar(unsigned int)"
505
+ ]
506
+
507
+ @parser.treat_externs = :include
508
+ @parser.treat_inlines = :include
509
+ assert_equal(expected, @parser.import_source(source).map!{|s|s.strip})
510
+ end
456
511
 
457
512
  it "remove defines" do
458
513
  source =
@@ -1725,4 +1780,221 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
1725
1780
  end
1726
1781
  end
1727
1782
 
1783
+ it "Transform inline functions doesn't change a header with no inlines" do
1784
+ source =
1785
+ "#ifndef _NOINCLUDES\n" +
1786
+ "#define _NOINCLUDES\n" +
1787
+ "#include \"unity.h\"\n" +
1788
+ "#include \"cmock.h\"\n" +
1789
+ "#include \"YetAnotherHeader.h\"\n" +
1790
+ "\n" +
1791
+ "/* Ignore the following warnings since we are copying code */\n" +
1792
+ "#if defined(__GNUC__) && !defined(__ICC) && !defined(__TMS470__)\n" +
1793
+ "#if __GNUC__ > 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ > 6 || (__GNUC_MINOR__ == 6 && __GNUC_PATCHLEVEL__ > 0)))\n" +
1794
+ "#pragma GCC diagnostic push\n" +
1795
+ "#endif\n" +
1796
+ "#if !defined(__clang__)\n" +
1797
+ "#pragma GCC diagnostic ignored \"-Wpragmas\"\n" +
1798
+ "#endif\n" +
1799
+ "#pragma GCC diagnostic ignored \"-Wunknown-pragmas\"\n" +
1800
+ "#pragma GCC diagnostic ignored \"-Wduplicate-decl-specifier\"\n" +
1801
+ "#endif\n" +
1802
+ "\n" +
1803
+ "struct my_struct {\n" +
1804
+ "int a;\n" +
1805
+ "int b;\n" +
1806
+ "int b;\n" +
1807
+ "char c;\n" +
1808
+ "};\n" +
1809
+ "int my_function(int a);\n" +
1810
+ "int my_better_function(struct my_struct *s);\n" +
1811
+ "\n" +
1812
+ "#endif _NOINCLUDES\n"
1813
+
1814
+ assert_equal(source, @parser.transform_inline_functions(source))
1815
+ end
1816
+
1817
+ it "Transform inline functions changes inline functions to function declarations" do
1818
+ source =
1819
+ "#ifndef _NOINCLUDES\n" +
1820
+ "#define _NOINCLUDES\n" +
1821
+ "#include \"unity.h\"\n" +
1822
+ "#include \"cmock.h\"\n" +
1823
+ "#include \"YetAnotherHeader.h\"\n" +
1824
+ "\n" +
1825
+ "/* Ignore the following warnings since we are copying code */\n" +
1826
+ "#if defined(__GNUC__) && !defined(__ICC) && !defined(__TMS470__)\n" +
1827
+ "#if __GNUC__ > 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ > 6 || (__GNUC_MINOR__ == 6 && __GNUC_PATCHLEVEL__ > 0)))\n" +
1828
+ "#pragma GCC diagnostic push\n" +
1829
+ "#endif\n" +
1830
+ "#if !defined(__clang__)\n" +
1831
+ "#pragma GCC diagnostic ignored \"-Wpragmas\"\n" +
1832
+ "#endif\n" +
1833
+ "#pragma GCC diagnostic ignored \"-Wunknown-pragmas\"\n" +
1834
+ "#pragma GCC diagnostic ignored \"-Wduplicate-decl-specifier\"\n" +
1835
+ "#endif\n" +
1836
+ "\n" +
1837
+ "struct my_struct {\n" +
1838
+ "int a;\n" +
1839
+ "int b;\n" +
1840
+ "int b;\n" +
1841
+ "char c;\n" +
1842
+ "};\n" +
1843
+ "int my_function(int a);\n" +
1844
+ "int my_better_function(struct my_struct *s);\n" +
1845
+ "static inline int staticinlinebar(struct my_struct *s)\n" + # This is a function with a lot of indentation levels, we should be able to handle it
1846
+ "{\n" +
1847
+ "\t{\n" +
1848
+ "\t\t{\n" +
1849
+ "\t\t\treturn s->a;\n" +
1850
+ "\t\t}\n" +
1851
+ "\t}\n" +
1852
+ "}\n" +
1853
+ "static inline int staticinlinefunc(struct my_struct *s)\n" +
1854
+ "{\n" +
1855
+ " return s->a;\n" +
1856
+ "}\n" +
1857
+ "int bar(struct my_struct *s);\n" + # A normal function to screw with our parser
1858
+ "inline static int inlinestaticfunc(int a) {\n" +
1859
+ " return a + 42;\n" +
1860
+ "}\n" +
1861
+ "inline int StaticInlineFunc(struct my_struct *s)\n" +
1862
+ "{\n" +
1863
+ " return get_member_a(s) + 42;\n" +
1864
+ "}\n" +
1865
+ "int inline StaticInlineBar(struct my_struct *s)\n" +
1866
+ "{\n" +
1867
+ " return get_member_a(s) + 42;\n" +
1868
+ "}\n" +
1869
+ "struct staticinlinestruct {\n" + # Add a structure declaration between the inline functions, just to make sure we don't touch it!
1870
+ "int a;\n" +
1871
+ "};\n" +
1872
+ "\n" +
1873
+ "struct staticinlinestruct fubarstruct(struct my_struct *s);\n" + # Another normal function to screw with our parser
1874
+ "static inline struct staticinlinestruct inlinefubarfunction(struct my_struct *s)\n" +
1875
+ "{\n" +
1876
+ " return (struct staticinlinestruct)*s;\n" +
1877
+ "}\n" +
1878
+ "int fubar(struct my_struct *s);\n" + # Another normal function to screw with our parser
1879
+ "inline int stuff(int num)" +
1880
+ "{" +
1881
+ " int reg = 0x12;" +
1882
+ " if (num > 0)" +
1883
+ " {" +
1884
+ " reg |= (0x0Eu);" +
1885
+ " }" +
1886
+ " else" +
1887
+ " {" +
1888
+ " reg |= (0x07u);" +
1889
+ " }" +
1890
+ " return reg;" +
1891
+ "}" +
1892
+ "\n" +
1893
+ "int inline static dummy_func_2(int a, char b, float c) {" + # This is a sneaky one, inline static is placed AFTER the return value
1894
+ " c += 3.14;" +
1895
+ " b -= 32;" +
1896
+ " return a + (int)(b) + (int)c;" +
1897
+ "}" +
1898
+ "#endif _NOINCLUDES\n"
1899
+
1900
+ expected =
1901
+ "#ifndef _NOINCLUDES\n" +
1902
+ "#define _NOINCLUDES\n" +
1903
+ "#include \"unity.h\"\n" +
1904
+ "#include \"cmock.h\"\n" +
1905
+ "#include \"YetAnotherHeader.h\"\n" +
1906
+ "\n" +
1907
+ "/* Ignore the following warnings since we are copying code */\n" +
1908
+ "#if defined(__GNUC__) && !defined(__ICC) && !defined(__TMS470__)\n" +
1909
+ "#if __GNUC__ > 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ > 6 || (__GNUC_MINOR__ == 6 && __GNUC_PATCHLEVEL__ > 0)))\n" +
1910
+ "#pragma GCC diagnostic push\n" +
1911
+ "#endif\n" +
1912
+ "#if !defined(__clang__)\n" +
1913
+ "#pragma GCC diagnostic ignored \"-Wpragmas\"\n" +
1914
+ "#endif\n" +
1915
+ "#pragma GCC diagnostic ignored \"-Wunknown-pragmas\"\n" +
1916
+ "#pragma GCC diagnostic ignored \"-Wduplicate-decl-specifier\"\n" +
1917
+ "#endif\n" +
1918
+ "\n" +
1919
+ "struct my_struct {\n" +
1920
+ "int a;\n" +
1921
+ "int b;\n" +
1922
+ "int b;\n" +
1923
+ "char c;\n" +
1924
+ "};\n" +
1925
+ "int my_function(int a);\n" +
1926
+ "int my_better_function(struct my_struct *s);\n" +
1927
+ "int staticinlinebar(struct my_struct *s);\n" +
1928
+ "int staticinlinefunc(struct my_struct *s);\n" +
1929
+ "int bar(struct my_struct *s);\n" +
1930
+ "int inlinestaticfunc(int a);\n" +
1931
+ "int StaticInlineFunc(struct my_struct *s);\n" +
1932
+ "int StaticInlineBar(struct my_struct *s);\n" +
1933
+ "struct staticinlinestruct {\n" +
1934
+ "int a;\n" +
1935
+ "};\n" +
1936
+ "\n" +
1937
+ "struct staticinlinestruct fubarstruct(struct my_struct *s);\n" +
1938
+ "struct staticinlinestruct inlinefubarfunction(struct my_struct *s);\n" +
1939
+ "int fubar(struct my_struct *s);\n" +
1940
+ "int stuff(int num);\n" +
1941
+ "int dummy_func_2(int a, char b, float c);" +
1942
+ "#endif _NOINCLUDES\n"
1943
+
1944
+ assert_equal(expected, @parser.transform_inline_functions(source))
1945
+ end
1946
+
1947
+ it "Count number of pairs of braces in function succesfully" do
1948
+ source =
1949
+ "int foo(struct my_struct *s)\n" +
1950
+ "{\n" +
1951
+ " return get_member_a(s) + 42;\n" +
1952
+ "}\n"
1953
+ complex_source =
1954
+ "int bar(struct my_struct *s)\n" +
1955
+ "{\n" +
1956
+ "\tint a = 6;\n" +
1957
+ "\tint res = foo(&(struct my_struct){.nr = a});\n" +
1958
+ "\t{\n" +
1959
+ "\t\tint a = 5;\n" +
1960
+ "\t\tint res = foo(&(struct my_struct){.nr = a});\n" +
1961
+ "\t\t{\n" +
1962
+ "\t\t\tstruct my_struct a = {.nr = 1};\n" +
1963
+ "\t\t}\n" +
1964
+ "\t}\n" +
1965
+ "\treturn 42;\n" +
1966
+ "}\n"
1967
+
1968
+ assert_equal(1, @parser.count_number_of_pairs_of_braces_in_function(source))
1969
+ assert_equal(6, @parser.count_number_of_pairs_of_braces_in_function(complex_source))
1970
+ end
1971
+
1972
+ it "Count number of pairs of braces returns 0 if bad source is supplied" do
1973
+ bad_source_0 =
1974
+ "int foo(struct my_struct *s)\n" +
1975
+ "{\n" +
1976
+ " return get_member_a(s) + 42;\n" +
1977
+ "\n" # Missing closing brace
1978
+ bad_source_1 =
1979
+ "int bar(struct my_struct *s)\n" +
1980
+ "{\n" +
1981
+ "\tint a = 6;\n" +
1982
+ "\tint res = foo(&(struct my_struct){.nr = a});\n" +
1983
+ "\t{\n" +
1984
+ "\t\tint a = 5;\n" +
1985
+ "\t\tint res = foo(&(struct my_struct){.nr = a});\n" +
1986
+ "\t\t{\n" +
1987
+ "\t\t\n" + # Missing closing brace
1988
+ "\t}\n" +
1989
+ "\treturn 42;\n" +
1990
+ "}\n"
1991
+ bad_source_2 =
1992
+ "int foo(struct my_struct *s)\n" +
1993
+ "\n" # No braces in source
1994
+
1995
+ assert_equal(0, @parser.count_number_of_pairs_of_braces_in_function(bad_source_0))
1996
+ assert_equal(0, @parser.count_number_of_pairs_of_braces_in_function(bad_source_1))
1997
+ assert_equal(0, @parser.count_number_of_pairs_of_braces_in_function(bad_source_2))
1998
+ end
1999
+
1728
2000
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ceedling
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.29.0
4
+ version: 0.29.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Karlesky, Mark VanderVoord
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2019-11-01 00:00:00.000000000 Z
13
+ date: 2019-11-13 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: thor
@@ -87,6 +87,7 @@ files:
87
87
  - docs/CeedlingPacket.md
88
88
  - docs/CeedlingPacket.odt
89
89
  - docs/CeedlingPacket.pdf
90
+ - docs/CeedlingUpgrade.md
90
91
  - docs/ThrowTheSwitchCodingStandard.md
91
92
  - examples/blinky/project.yml
92
93
  - examples/blinky/rakefile.rb
@@ -254,7 +255,6 @@ files:
254
255
  - lib/ceedling/version.rb
255
256
  - lib/ceedling/yaml_wrapper.rb
256
257
  - license.txt
257
- - out.fail
258
258
  - plugins/beep/README.md
259
259
  - plugins/beep/lib/beep.rb
260
260
  - plugins/bullseye/assets/template.erb
@@ -675,6 +675,7 @@ files:
675
675
  - vendor/cmock/test/system/test_compilation/callingconv.h
676
676
  - vendor/cmock/test/system/test_compilation/config.yml
677
677
  - vendor/cmock/test/system/test_compilation/const.h
678
+ - vendor/cmock/test/system/test_compilation/inline.h
678
679
  - vendor/cmock/test/system/test_compilation/osek.h
679
680
  - vendor/cmock/test/system/test_compilation/parsing.h
680
681
  - vendor/cmock/test/system/test_interactions/all_plugins_but_other_limits.yml