Added option to remove setjmp.h from generated mock files as not supported on all embedded systems

This commit is contained in:
Jean Rubillon
2020-09-08 20:50:48 +01:00
parent afa294982e
commit 72b356b97d
3 changed files with 15 additions and 2 deletions
+7
View File
@@ -477,6 +477,13 @@ from the defaults. We've tried to specify what the defaults are below.
* default: `['(?:__attribute__\s*\(+.*?\)+)']`
* `:has_setjmp_h`:
Some embedded systems don't have <setjmp.h> available. Setting this to false
removes references to this header file and the ability to use cexception.
* default: true
* `:subdir`:
This is a relative subdirectory for your mocks. Set this to e.g. "sys" in
order to create a mock for `sys/types.h` in `(:mock_path)/sys/`.
+1
View File
@@ -41,6 +41,7 @@ class CMockConfig
:array_size_type => [],
:array_size_name => 'size|len',
:skeleton => false,
:has_setjmp_h => true,
# Format to look for inline functions.
# This is a combination of "static" and "inline" keywords ("static inline", "inline static", "inline", "static")
+7 -2
View File
@@ -19,6 +19,7 @@ class CMockGenerator
@ordered = @config.enforce_strict_ordering
@framework = @config.framework.to_s
@fail_on_unexpected_calls = @config.fail_on_unexpected_calls
@has_setjmp_h = @config.has_setjmp_h
@subdir = @config.subdir
@@ -169,7 +170,9 @@ class CMockGenerator
file << "/* AUTOGENERATED FILE. DO NOT EDIT. */\n" unless functions.empty?
file << "#include <string.h>\n"
file << "#include <stdlib.h>\n"
file << "#include <setjmp.h>\n"
if @has_setjmp_h
file << "#include <setjmp.h>\n"
end
file << "#include \"cmock.h\"\n"
@includes_c_pre_header.each { |inc| file << "#include #{inc}\n" }
file << "#include \"#{header_file}\"\n"
@@ -205,7 +208,9 @@ class CMockGenerator
end
def create_extern_declarations(file)
file << "extern jmp_buf AbortFrame;\n"
if @has_setjmp_h
file << "extern jmp_buf AbortFrame;\n"
end
if @ordered
file << "extern int GlobalExpectCount;\n"
file << "extern int GlobalVerifyOrder;\n"