summaryrefslogtreecommitdiffstats
path: root/tinyusb/test/vendor/ceedling/plugins/fake_function_framework/spec/header_generator.rb
diff options
context:
space:
mode:
Diffstat (limited to 'tinyusb/test/vendor/ceedling/plugins/fake_function_framework/spec/header_generator.rb')
-rwxr-xr-xtinyusb/test/vendor/ceedling/plugins/fake_function_framework/spec/header_generator.rb51
1 files changed, 51 insertions, 0 deletions
diff --git a/tinyusb/test/vendor/ceedling/plugins/fake_function_framework/spec/header_generator.rb b/tinyusb/test/vendor/ceedling/plugins/fake_function_framework/spec/header_generator.rb
new file mode 100755
index 00000000..cda27844
--- /dev/null
+++ b/tinyusb/test/vendor/ceedling/plugins/fake_function_framework/spec/header_generator.rb
@@ -0,0 +1,51 @@
+# Create a CMock-style parsed header hash. This the type of hash created by
+# CMock when parsing header files for automock generation. It contains all of
+# includes, typedefs and functions (with return types and arguments) parsed from
+# the header file.
+def create_cmock_style_parsed_header(functions, typedefs = nil)
+ parsed_header = {
+ :includes => nil,
+ :functions => [],
+ :typedefs => []
+ }
+
+ # Add the typedefs.
+ if typedefs
+ typedefs.each do |typedef|
+ parsed_header[:typedefs] << typedef
+ end
+ end
+
+ # Add the functions.
+ if functions
+ functions.each do |function|
+ # Build the array of arguments.
+ args = []
+ if function.key?(:args)
+ function[:args].each do |arg|
+ args << {
+ :type => arg
+ }
+ end
+ end
+ parsed_header[:functions] << {
+ :name => function[:name],
+ :modifier => "",
+ :return => {
+ :type => function[:return_type],
+ :name => "cmock_to_return",
+ :ptr? => false,
+ :const? => false,
+ :str => "void cmock_to_return",
+ :void? => true
+ },
+ :var_arg => nil,
+ :args_string => "void",
+ :args => args,
+ :args_call => "",
+ :contains_ptr? => false
+ }
+ end
+ end
+ parsed_header
+end \ No newline at end of file