mirror of
https://github.com/ThrowTheSwitch/CMock.git
synced 2026-09-07 18:59:57 +00:00
Handle headers which only have inline-function-declarations
This means there is NO opening bracket, since there are no struct declarations or inline function definitions.
This commit is contained in:
@@ -160,7 +160,7 @@ class CMockHeaderParser
|
|||||||
first_open_bracket = inline_function_match.post_match.index("{")
|
first_open_bracket = inline_function_match.post_match.index("{")
|
||||||
first_semicolon = inline_function_match.post_match.index(";")
|
first_semicolon = inline_function_match.post_match.index(";")
|
||||||
|
|
||||||
if first_semicolon < first_open_bracket
|
if first_open_bracket.nil? or first_semicolon < first_open_bracket
|
||||||
puts "DECLARATION, IGNORE"
|
puts "DECLARATION, IGNORE"
|
||||||
source = inline_function_match.pre_match + inline_function_match.post_match
|
source = inline_function_match.pre_match + inline_function_match.post_match
|
||||||
next
|
next
|
||||||
|
|||||||
@@ -2119,6 +2119,19 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
|
|||||||
assert_equal(expected, @parser.transform_inline_functions(source))
|
assert_equal(expected, @parser.transform_inline_functions(source))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "Transform inline functions can handle header with only inline function declarations" do
|
||||||
|
source =
|
||||||
|
"static inline int dummy_func_decl(int a, char b, float c);\n" +
|
||||||
|
"\n"
|
||||||
|
|
||||||
|
expected =
|
||||||
|
"int dummy_func_decl(int a, char b, float c);\n" +
|
||||||
|
"\n"
|
||||||
|
|
||||||
|
@parser.treat_inlines = :include
|
||||||
|
assert_equal(expected, @parser.transform_inline_functions(source))
|
||||||
|
end
|
||||||
|
|
||||||
it "Transform inline functions takes user provided patterns into account" do
|
it "Transform inline functions takes user provided patterns into account" do
|
||||||
source =
|
source =
|
||||||
"static __inline__ __attribute__ ((always_inline)) uint16_t _somefunc (uint32_t a)\n" +
|
"static __inline__ __attribute__ ((always_inline)) uint16_t _somefunc (uint32_t a)\n" +
|
||||||
|
|||||||
Reference in New Issue
Block a user