diff options
Diffstat (limited to 'tinyusb/test/vendor/ceedling/plugins/fake_function_framework/spec/fff_mock_header_generator_spec.rb')
-rwxr-xr-x | tinyusb/test/vendor/ceedling/plugins/fake_function_framework/spec/fff_mock_header_generator_spec.rb | 304 |
1 files changed, 0 insertions, 304 deletions
diff --git a/tinyusb/test/vendor/ceedling/plugins/fake_function_framework/spec/fff_mock_header_generator_spec.rb b/tinyusb/test/vendor/ceedling/plugins/fake_function_framework/spec/fff_mock_header_generator_spec.rb deleted file mode 100755 index e6ac11dd..00000000 --- a/tinyusb/test/vendor/ceedling/plugins/fake_function_framework/spec/fff_mock_header_generator_spec.rb +++ /dev/null @@ -1,304 +0,0 @@ -require 'stringio' -require 'fff_mock_generator.rb' -require 'header_generator.rb' - -# Test the contents of the .h file created for the mock. -describe "FffMockGenerator.create_mock_header" do - - context "when there is nothing to mock," do - let(:mock_header) { - parsed_header = {} - FffMockGenerator.create_mock_header("display", "mock_display", parsed_header) - } - it "then the generated header file starts with an opening include guard" do - expect(mock_header).to start_with( - "#ifndef mock_display_H\n" + - "#define mock_display_H") - end - it "then the generated file ends with a closing include guard" do - expect(mock_header).to end_with( - "#endif // mock_display_H\n") - end - it "then the generated file includes the fff header" do - expect(mock_header).to include( - %{#include "fff.h"\n}) - end - it "then the generated file has a prototype for the init function" do - expect(mock_header).to include( - "void mock_display_Init(void);") - end - it "then the generated file has a prototype for the verify function" do - expect(mock_header).to include( - "void mock_display_Verify(void);") - end - it "then the generated file has a prototype for the destroy function" do - expect(mock_header).to include( - "void mock_display_Destroy(void);") - end - end - - context "when there is a function with no args and a void return," do - let(:mock_header) { - parsed_header = create_cmock_style_parsed_header( - [{:name => 'display_turnOffStatusLed', :return_type => 'void'}]) - FffMockGenerator.create_mock_header("display", "mock_display", parsed_header) - } - it "then the generated header file starts with an opening include guard" do - expect(mock_header).to start_with( - "#ifndef mock_display_H\n" + - "#define mock_display_H") - end - it "then the generated header file contains a fake function declaration" do - expect(mock_header).to include( - "DECLARE_FAKE_VOID_FUNC0(display_turnOffStatusLed);" - ) - end - it "then the generated file ends with a closing include guard" do - expect(mock_header).to end_with( - "#endif // mock_display_H\n") - end - end - - context "when there is a function with no args and a bool return," do - let(:mock_header) { - parsed_header = create_cmock_style_parsed_header( - [{:name => 'display_isError', :return_type => 'bool'}]) - FffMockGenerator.create_mock_header("display", "mock_display", parsed_header) - } - it "then the generated file contains the fake function declaration" do - expect(mock_header).to include( - "DECLARE_FAKE_VALUE_FUNC0(bool, display_isError);" - ) - end - end - - context "when there is a function with no args and an int return," do - let(:mock_header) { - parsed_header = create_cmock_style_parsed_header( - [{:name => 'display_isError', :return_type => 'int'}]) - FffMockGenerator.create_mock_header("display", "mock_display", parsed_header) - } - it "then the generated file contains the fake function declaration" do - expect(mock_header).to include( - "DECLARE_FAKE_VALUE_FUNC0(int, display_isError);" - ) - end - end - - context "when there is a function with args and a void return," do - let(:mock_header) { - parsed_header = create_cmock_style_parsed_header( - [{:name => 'display_setVolume', :return_type => 'void', :args => ['int']}]) - FffMockGenerator.create_mock_header("display", "mock_display", parsed_header) - } - it "then the generated file contains the fake function declaration" do - expect(mock_header).to include( - "DECLARE_FAKE_VOID_FUNC1(display_setVolume, int);" - ) - end - end - - context "when there is a function with args and a value return," do - let(:mock_header) { - parsed_header = create_cmock_style_parsed_header( - [{:name => 'a_function', :return_type => 'int', :args => ['char *']}]) - FffMockGenerator.create_mock_header("display", "mock_display", parsed_header) - } - it "then the generated file contains the fake function declaration" do - expect(mock_header).to include( - "FAKE_VALUE_FUNC1(int, a_function, char *);" - ) - end - end - - context "when there is a function with many args and a void return," do - let(:mock_header) { - parsed_header = create_cmock_style_parsed_header( - [{:name => 'a_function', :return_type => 'void', - :args => ['int', 'char *', 'int', 'int', 'bool', 'applesauce']}]) - FffMockGenerator.create_mock_header("display", "mock_display", parsed_header) - } - it "then the generated file contains the fake function declaration" do - expect(mock_header).to include( - "DECLARE_FAKE_VOID_FUNC6(a_function, int, char *, int, int, bool, applesauce);" - ) - end - end - - context "when there are multiple functions," do - let(:mock_header) { - parsed_header = create_cmock_style_parsed_header( - [ {:name => 'a_function', :return_type => 'int', :args => ['char *']}, - {:name => 'another_function', :return_type => 'void'}, - {:name => 'three', :return_type => 'bool', :args => ['float', 'int']} - ]) - FffMockGenerator.create_mock_header("display", "mock_display", parsed_header) - } - it "then the generated file contains the first fake function declaration" do - expect(mock_header).to include( - "DECLARE_FAKE_VALUE_FUNC1(int, a_function, char *);" - ) - end - it "then the generated file contains the second fake function declaration" do - expect(mock_header).to include( - "DECLARE_FAKE_VOID_FUNC0(another_function);" - ) - end - it "then the generated file contains the third fake function declaration" do - expect(mock_header).to include( - "DECLARE_FAKE_VALUE_FUNC2(bool, three, float, int);" - ) - end - end - - context "when there is a typedef," do - let(:mock_header) { - parsed_header = create_cmock_style_parsed_header( - nil, ["typedef void (*displayCompleteCallback) (void);"]) - FffMockGenerator.create_mock_header("display", "mock_display", parsed_header) - } - it "then the generated file contains the typedef" do - expect(mock_header).to include( - "typedef void (*displayCompleteCallback) (void);" - ) - end - end - - context "when there is a void function with variable arguments" do - let(:mock_header){ - parsed_header = {} - parsed_header[:functions] = [{ - :name => "function_with_var_args", - :return => {:type => "void"}, - :var_arg => "...", - :args => [{:type => 'char *'}] - }] - FffMockGenerator.create_mock_header("display", "mock_display", parsed_header) - } - it "then the generated file contains the vararg declaration" do - expect(mock_header).to include( - "DECLARE_FAKE_VOID_FUNC2_VARARG(function_with_var_args, char *, ...)" - ) - end - end - - context "when there is a function with a return value and variable arguments" do - let(:mock_header){ - parsed_header = {} - parsed_header[:functions] = [{ - :name => "function_with_var_args", - :return => {:type => "int"}, - :var_arg => "...", - :args => [{:type => 'char *'}] - }] - FffMockGenerator.create_mock_header("display", "mock_display", parsed_header) - } - it "then the generated file contains the vararg declaration" do - expect(mock_header).to include( - "DECLARE_FAKE_VALUE_FUNC2_VARARG(int, function_with_var_args, char *, ...)" - ) - end - end - - context "when there is a void function with variable arguments and " + - "additional arguments" do - let(:mock_header){ - parsed_header = {} - parsed_header[:functions] = [{ - :name => "function_with_var_args", - :return => {:type => "void"}, - :var_arg => "...", - :args => [{:type => 'char *'}, {:type => 'int'}] - }] - FffMockGenerator.create_mock_header("display", "mock_display", parsed_header) - } - it "then the generated file contains the vararg declaration" do - expect(mock_header).to include( - "DECLARE_FAKE_VOID_FUNC3_VARARG(function_with_var_args, char *, int, ...)" - ) - end - end - - context "when there is a function with a pointer to a const value" do - let(:mock_header){ - parsed_header = {} - parsed_header[:functions] = [{ - :name => "const_test_function", - :return => {:type => "void"}, - :args => [{:type => "char *", :name => "a", :ptr? => false, :const? => true}, - {:type => "char *", :name => "b", :ptr? => false, :const? => false}] - }] - FffMockGenerator.create_mock_header("display", "mock_display", parsed_header) - } - it "then the generated file contains the correct const argument in the declaration" do - expect(mock_header).to include( - "DECLARE_FAKE_VOID_FUNC2(const_test_function, const char *, char *)" - ) - end - end - - context "when there is a function that returns a const pointer" do - let(:mock_header){ - parsed_header = {} - parsed_header[:functions] = [{ - :name => "return_const_pointer_test_function", - :modifier => "const", - :return => {:type => "char *" }, - :args => [{:type => "int", :name => "a"}] - }] - FffMockGenerator.create_mock_header("display", "mock_display", parsed_header) - } - it "then the generated file contains the correct const return value in the declaration" do - expect(mock_header).to include( - "DECLARE_FAKE_VALUE_FUNC1(const char *, return_const_pointer_test_function, int)" - ) - end - end - - context "when there is a function that returns a const int" do - let(:mock_header){ - parsed_header = {} - parsed_header[:functions] = [{ - :name => "return_const_int_test_function", - :modifier => "const", - :return => {:type => "int" }, - :args => [] - }] - FffMockGenerator.create_mock_header("display", "mock_display", parsed_header) - } - it "then the generated file contains the correct const return value in the declaration" do - expect(mock_header).to include( - "DECLARE_FAKE_VALUE_FUNC0(const int, return_const_int_test_function)" - ) - end - end - - context "when there are pre-includes" do - let(:mock_header) { - parsed_header = {} - FffMockGenerator.create_mock_header("display", "mock_display", parsed_header, - [%{"another_header.h"}]) - } - it "then they are included before the other files" do - expect(mock_header).to include( - %{#include "another_header.h"\n} + - %{#include "fff.h"} - ) - end - end - - context "when there are post-includes" do - let(:mock_header) { - parsed_header = {} - FffMockGenerator.create_mock_header("display", "mock_display", parsed_header, - nil, [%{"another_header.h"}]) - } - it "then they are included after the other files" do - expect(mock_header).to include( - %{#include "display.h"\n} + - %{#include "another_header.h"\n} - ) - end - end - -end |