mirror of
https://github.com/ThrowTheSwitch/CMock.git
synced 2026-07-30 15:57:50 +00:00
Merge branch 'master' into array-typedefs
This commit is contained in:
+1
-2
@@ -5,10 +5,9 @@ os:
|
||||
- linux
|
||||
|
||||
rvm:
|
||||
- "2.2.2"
|
||||
- "2.3"
|
||||
|
||||
before_install:
|
||||
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then rvm install 2.1 && rvm use 2.1 && ruby -v; fi
|
||||
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo apt-get install --assume-yes --quiet gcc-multilib; fi
|
||||
|
||||
install:
|
||||
|
||||
@@ -153,7 +153,7 @@ only needs to be called once per test. It will then ignore any further calls to
|
||||
particular mock. The IgnoreAndReturn works similarly, except that it has the added
|
||||
benefit of knowing what to return when that call happens. If the mock is called more
|
||||
times than IgnoreAndReturn was called, it will keep returning the last value without
|
||||
complaint. If it's called less times, it will also ignore that. You SAID you didn't
|
||||
complaint. If it's called fewer times, it will also ignore that. You SAID you didn't
|
||||
care how many times it was called, right?
|
||||
|
||||
* `void func(void)` => `void func_Ignore(void)`
|
||||
@@ -586,7 +586,7 @@ based on other settings, particularly Unity's settings.
|
||||
* `CMOCK_MEM_SIZE`
|
||||
In static mode this is the total amount of memory you are allocating
|
||||
to Cmock. In Dynamic mode this is the size of each chunk allocated
|
||||
at once (larger numbers grab more memory but require less mallocs).
|
||||
at once (larger numbers grab more memory but require fewer mallocs).
|
||||
|
||||
* `CMOCK_MEM_ALIGN`
|
||||
The way to align your data to. Not everything is as flexible as
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
CC ?= gcc
|
||||
BUILD_DIR ?= ./build
|
||||
SRC_DIR ?= ./src
|
||||
TEST_DIR ?= ./test
|
||||
TEST_BUILD_DIR ?= ${BUILD_DIR}/test
|
||||
export BUILD_DIR ?= ./build
|
||||
export SRC_DIR ?= ./src
|
||||
export TEST_DIR ?= ./test
|
||||
export TEST_BUILD_DIR ?= ${BUILD_DIR}/test
|
||||
TEST_MAKEFILE = ${TEST_BUILD_DIR}/MakefileTestSupport
|
||||
OBJ ?= ${BUILD_DIR}/obj
|
||||
OBJ_DIR = ${OBJ}
|
||||
|
||||
@@ -151,7 +151,7 @@ module RakefileHelpers
|
||||
report command_string
|
||||
output = `#{command_string}`.chomp
|
||||
report(output) if (verbose && !output.nil? && (output.length > 0))
|
||||
unless $?.exitstatus.zero? || ok_to_fail
|
||||
unless (!$?.nil? && $?.exitstatus.zero?) || ok_to_fail
|
||||
raise "Command failed. (Returned #{$?.exitstatus})"
|
||||
end
|
||||
return output
|
||||
|
||||
@@ -37,6 +37,8 @@ class CMockConfig
|
||||
:includes_c_pre_header => nil,
|
||||
:includes_c_post_header => nil,
|
||||
:orig_header_include_fmt => "#include \"%s\"",
|
||||
:array_size_type => [],
|
||||
:array_size_name => 'size|len',
|
||||
}
|
||||
|
||||
def initialize(options=nil)
|
||||
|
||||
@@ -57,9 +57,7 @@ class CMockGenerator
|
||||
private if $ThisIsOnlyATest.nil? ##############################
|
||||
|
||||
def create_mock_subdir()
|
||||
if @subdir
|
||||
@file_writer.create_subdir(@subdir)
|
||||
end
|
||||
@file_writer.create_subdir(@subdir)
|
||||
end
|
||||
|
||||
def create_mock_header_file(parsed_stuff)
|
||||
@@ -95,6 +93,7 @@ class CMockGenerator
|
||||
file << "/* AUTOGENERATED FILE. DO NOT EDIT. */\n"
|
||||
file << "#ifndef _#{define_name}_H\n"
|
||||
file << "#define _#{define_name}_H\n\n"
|
||||
file << "#include \"#{@framework}.h\"\n"
|
||||
@includes_h_pre_orig_header.each {|inc| file << "#include #{inc}\n"}
|
||||
file << @config.orig_header_include_fmt.gsub(/%s/, "#{orig_filename}") + "\n"
|
||||
@includes_h_post_orig_header.each {|inc| file << "#include #{inc}\n"}
|
||||
@@ -144,7 +143,6 @@ class CMockGenerator
|
||||
file << "#include <string.h>\n"
|
||||
file << "#include <stdlib.h>\n"
|
||||
file << "#include <setjmp.h>\n"
|
||||
file << "#include \"#{@framework}.h\"\n"
|
||||
file << "#include \"cmock.h\"\n"
|
||||
@includes_c_pre_header.each {|inc| file << "#include #{inc}\n"}
|
||||
file << "#include \"#{header_file}\"\n"
|
||||
|
||||
@@ -75,7 +75,7 @@ class CMockGeneratorUtils
|
||||
else
|
||||
assert_expr = "sizeof(#{arg[:name]}) == sizeof(#{arg[:type]}) ? 1 : -1"
|
||||
comment = "/* add #{arg[:type]} to :treat_as_array if this causes an error */"
|
||||
" memcpy(&#{dest}, &#{arg[:name]},\n" +
|
||||
" memcpy((void*)(&#{dest}), (void*)(&#{arg[:name]}),\n" +
|
||||
" sizeof(#{arg[:type]}[#{assert_expr}])); #{comment}\n"
|
||||
end
|
||||
end
|
||||
@@ -103,7 +103,13 @@ class CMockGeneratorUtils
|
||||
def code_call_argument_loader(function)
|
||||
if (function[:args_string] != "void")
|
||||
args = function[:args].map do |m|
|
||||
(@arrays and m[:ptr?]) ? "#{m[:name]}, 1" : m[:name]
|
||||
if (@arrays and m[:ptr?] and not m[:array_data?])
|
||||
"#{m[:name]}, 1"
|
||||
elsif (@arrays and m[:array_size?])
|
||||
"#{m[:name]}, #{m[:name]}"
|
||||
else
|
||||
m[:name]
|
||||
end
|
||||
end
|
||||
" CMockExpectParameters_#{function[:name]}(cmock_call_instance, #{args.join(', ')});\n"
|
||||
else
|
||||
|
||||
@@ -18,6 +18,8 @@ class CMockHeaderParser
|
||||
@treat_as_void = (['void'] + cfg.treat_as_void).uniq
|
||||
@declaration_parse_matcher = /([\d\w\s\*\(\),\[\]]+??)\(([\d\w\s\*\(\),\.\[\]+-]*)\)$/m
|
||||
@standards = (['int','short','char','long','unsigned','signed'] + cfg.treat_as.keys).uniq
|
||||
@array_size_name = cfg.array_size_name
|
||||
@array_size_type = (['int', 'size_t'] + cfg.array_size_type).uniq
|
||||
@when_no_prototypes = cfg.when_no_prototypes
|
||||
@local_as_void = @treat_as_void
|
||||
@verbosity = cfg.verbosity
|
||||
@@ -196,6 +198,18 @@ class CMockHeaderParser
|
||||
|
||||
args << arg_info
|
||||
end
|
||||
|
||||
# Try to find array pair in parameters following this pattern : <type> * <name>, <@array_size_type> <@array_size_name>
|
||||
args.each_with_index {|val, index|
|
||||
next_index = index + 1
|
||||
if (args.length > next_index)
|
||||
if (val[:ptr?] == true and args[next_index][:name].match(@array_size_name) and @array_size_type.include?(args[next_index][:type]))
|
||||
val[:array_data?] = true
|
||||
args[next_index][:array_size?] = true
|
||||
end
|
||||
end
|
||||
}
|
||||
|
||||
return args
|
||||
end
|
||||
|
||||
|
||||
@@ -34,9 +34,9 @@ File.open(TEST_MAKEFILE, "w") do |mkfile|
|
||||
|
||||
# Define make variables
|
||||
mkfile.puts "CC ?= gcc"
|
||||
mkfile.puts "BUILD_DIR ?= ./build"
|
||||
mkfile.puts "SRC_DIR ?= ./src"
|
||||
mkfile.puts "TEST_DIR ?= ./test"
|
||||
mkfile.puts "BUILD_DIR = #{BUILD_DIR}"
|
||||
mkfile.puts "SRC_DIR = #{SRC_DIR}"
|
||||
mkfile.puts "TEST_DIR = #{TEST_DIR}"
|
||||
mkfile.puts "TEST_CFLAGS ?= -DTEST"
|
||||
mkfile.puts "CMOCK_DIR ?= #{CMOCK_DIR}"
|
||||
mkfile.puts "UNITY_DIR ?= #{UNITY_DIR}"
|
||||
@@ -60,8 +60,8 @@ File.open(TEST_MAKEFILE, "w") do |mkfile|
|
||||
test_targets = []
|
||||
generator = UnityTestRunnerGenerator.new
|
||||
|
||||
# headers that begin with prefix or end with suffix are not included
|
||||
all_headers = Dir["#{SRC_DIR}/**/*.h"]
|
||||
# headers that begin with prefix or end with suffix are not included
|
||||
all_headers = Dir["#{SRC_DIR}/**/*.h"]
|
||||
|
||||
def reject_mock_files(file)
|
||||
extn = File.extname file
|
||||
@@ -73,7 +73,7 @@ File.open(TEST_MAKEFILE, "w") do |mkfile|
|
||||
end
|
||||
|
||||
all_headers = all_headers.reject { |f| reject_mock_files(f) }
|
||||
|
||||
|
||||
makefile_targets = []
|
||||
|
||||
test_sources.each do |test|
|
||||
@@ -96,7 +96,7 @@ File.open(TEST_MAKEFILE, "w") do |mkfile|
|
||||
if not makefile_targets.include? module_obj
|
||||
makefile_targets.push(module_obj)
|
||||
mkfile.puts "#{module_obj}: #{module_src}"
|
||||
mkfile.puts "\t${CC} -o $@ -c $< ${TEST_CFLAGS} -I #{SRC_DIR} ${INCLUDE_PATH}"
|
||||
mkfile.puts "\t${CC} -o $@ -c $< ${TEST_CFLAGS} -I ${SRC_DIR} ${INCLUDE_PATH}"
|
||||
mkfile.puts ""
|
||||
end
|
||||
|
||||
@@ -112,7 +112,7 @@ File.open(TEST_MAKEFILE, "w") do |mkfile|
|
||||
if not makefile_targets.include? linkonlymodule_obj
|
||||
makefile_targets.push(linkonlymodule_obj)
|
||||
mkfile.puts "#{linkonlymodule_obj}: #{linkonlymodule_src}"
|
||||
mkfile.puts "\t${CC} -o $@ -c $< ${TEST_CFLAGS} -I #{SRC_DIR} ${INCLUDE_PATH}"
|
||||
mkfile.puts "\t${CC} -o $@ -c $< ${TEST_CFLAGS} -I ${SRC_DIR} ${INCLUDE_PATH}"
|
||||
mkfile.puts ""
|
||||
end
|
||||
end
|
||||
|
||||
+10
-3
@@ -10,7 +10,7 @@
|
||||
//public constants to be used by mocks
|
||||
const char* CMockStringOutOfMemory = "CMock has run out of memory. Please allocate more.";
|
||||
const char* CMockStringCalledMore = "Called more times than expected.";
|
||||
const char* CMockStringCalledLess = "Called less times than expected.";
|
||||
const char* CMockStringCalledLess = "Called fewer times than expected.";
|
||||
const char* CMockStringCalledEarly = "Called earlier than expected.";
|
||||
const char* CMockStringCalledLate = "Called later than expected.";
|
||||
const char* CMockStringCallOrder = "Called out of order.";
|
||||
@@ -26,8 +26,7 @@ static unsigned char* CMock_Guts_Buffer = NULL;
|
||||
static CMOCK_MEM_INDEX_TYPE CMock_Guts_BufferSize = CMOCK_MEM_ALIGN_SIZE;
|
||||
static CMOCK_MEM_INDEX_TYPE CMock_Guts_FreePtr;
|
||||
#else
|
||||
static CMOCK_MEM_INDEX_TYPE CMock_Guts_BufferArray[(CMOCK_MEM_SIZE + CMOCK_MEM_INDEX_SIZE - 1) / CMOCK_MEM_INDEX_SIZE];
|
||||
#define CMock_Guts_Buffer ((unsigned char*)CMock_Guts_BufferArray)
|
||||
static unsigned char CMock_Guts_Buffer[CMOCK_MEM_SIZE + CMOCK_MEM_ALIGN_SIZE];
|
||||
static CMOCK_MEM_INDEX_TYPE CMock_Guts_BufferSize = CMOCK_MEM_SIZE + CMOCK_MEM_ALIGN_SIZE;
|
||||
static CMOCK_MEM_INDEX_TYPE CMock_Guts_FreePtr;
|
||||
#endif
|
||||
@@ -169,6 +168,14 @@ void* CMock_Guts_GetAddressFor(CMOCK_MEM_INDEX_TYPE index)
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------
|
||||
// CMock_Guts_MemBytesCapacity
|
||||
//-------------------------------------------------------
|
||||
CMOCK_MEM_INDEX_TYPE CMock_Guts_MemBytesCapacity(void)
|
||||
{
|
||||
return (sizeof(CMock_Guts_Buffer) - CMOCK_MEM_ALIGN_SIZE);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------
|
||||
// CMock_Guts_MemBytesFree
|
||||
//-------------------------------------------------------
|
||||
|
||||
@@ -30,6 +30,7 @@ CMOCK_MEM_INDEX_TYPE CMock_Guts_MemEndOfChain(CMOCK_MEM_INDEX_TYPE root_index);
|
||||
|
||||
void* CMock_Guts_GetAddressFor(CMOCK_MEM_INDEX_TYPE index);
|
||||
|
||||
CMOCK_MEM_INDEX_TYPE CMock_Guts_MemBytesCapacity(void);
|
||||
CMOCK_MEM_INDEX_TYPE CMock_Guts_MemBytesFree(void);
|
||||
CMOCK_MEM_INDEX_TYPE CMock_Guts_MemBytesUsed(void);
|
||||
void CMock_Guts_MemFreeAll(void);
|
||||
|
||||
+15
-5
@@ -25,8 +25,18 @@ void test_MemNewWillReturnNullIfGivenIllegalSizes(void)
|
||||
TEST_ASSERT_NULL( CMock_Guts_GetAddressFor(CMOCK_GUTS_NONE) );
|
||||
|
||||
//verify we're cleared still
|
||||
TEST_ASSERT_EQUAL(0, CMock_Guts_MemBytesUsed());
|
||||
TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE, CMock_Guts_MemBytesFree());
|
||||
TEST_ASSERT_LESS_OR_EQUAL_UINT32(CMOCK_MEM_SIZE, CMock_Guts_MemBytesCapacity());
|
||||
TEST_ASSERT_EQUAL_UINT32(0, CMock_Guts_MemBytesUsed());
|
||||
TEST_ASSERT_LESS_OR_EQUAL_UINT32(CMOCK_MEM_SIZE, CMock_Guts_MemBytesFree());
|
||||
}
|
||||
|
||||
void test_MemShouldProtectAgainstMemoryOverflow(void)
|
||||
{
|
||||
(void)CMock_Guts_MemNew(CMOCK_MEM_SIZE - TEST_MEM_INDEX_SIZE);
|
||||
|
||||
//verify we've used all the memory
|
||||
TEST_ASSERT_LESS_OR_EQUAL_UINT32(TEST_MEM_INDEX_SIZE, CMock_Guts_MemBytesFree());
|
||||
TEST_ASSERT_GREATER_OR_EQUAL_UINT32(CMOCK_MEM_SIZE, CMock_Guts_MemBytesUsed());
|
||||
}
|
||||
|
||||
void test_MemChainWillReturnNullAndDoNothingIfGivenIllegalInformation(void)
|
||||
@@ -258,11 +268,11 @@ void test_ThatWeCanAskForAllSortsOfSizes(void)
|
||||
}
|
||||
|
||||
//show that we can't ask for too much memory
|
||||
TEST_ASSERT_EQUAL_HEX(CMOCK_GUTS_NONE, CMock_Guts_MemNew(12));
|
||||
TEST_ASSERT_EQUAL_HEX(CMOCK_GUTS_NONE, CMock_Guts_MemNew(5));
|
||||
TEST_ASSERT_EQUAL_HEX(CMOCK_GUTS_NONE, CMock_Guts_MemNew(CMOCK_MEM_SIZE - sum + 8));
|
||||
TEST_ASSERT_EQUAL_HEX(CMOCK_GUTS_NONE, CMock_Guts_MemNew(CMOCK_MEM_SIZE - sum + 1));
|
||||
|
||||
//but we CAN ask for something that will still fit
|
||||
next = CMock_Guts_MemNew(4);
|
||||
next = CMock_Guts_MemNew(CMOCK_MEM_SIZE - sum - 4);
|
||||
TEST_ASSERT_MESSAGE(next != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
|
||||
|
||||
first = CMock_Guts_MemChain(first, next);
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
- 'TEST'
|
||||
- 'CMOCK_MEM_STATIC'
|
||||
- 'CMOCK_MEM_SIZE=128'
|
||||
#- 'CMOCK_MEM_SIZE=40000'
|
||||
- 'CMOCK_MEM_ALIGN=2'
|
||||
- 'CMOCK_MEM_INDEX_TYPE=int'
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ extern void setUp(void);
|
||||
extern void tearDown(void);
|
||||
|
||||
extern void test_MemNewWillReturnNullIfGivenIllegalSizes(void);
|
||||
extern void test_MemShouldProtectAgainstMemoryOverflow(void);
|
||||
extern void test_MemChainWillReturnNullAndDoNothingIfGivenIllegalInformation(void);
|
||||
extern void test_MemNextWillReturnNullIfGivenABadRoot(void);
|
||||
extern void test_ThatWeCanClaimAndChainAFewElementsTogether(void);
|
||||
@@ -26,13 +27,14 @@ int main(void)
|
||||
UnityBegin(Unity.TestFile);
|
||||
|
||||
RUN_TEST(test_MemNewWillReturnNullIfGivenIllegalSizes, 21);
|
||||
RUN_TEST(test_MemChainWillReturnNullAndDoNothingIfGivenIllegalInformation, 32);
|
||||
RUN_TEST(test_MemNextWillReturnNullIfGivenABadRoot, 46);
|
||||
RUN_TEST(test_ThatWeCanClaimAndChainAFewElementsTogether, 57);
|
||||
RUN_TEST(test_MemEndOfChain, 282);
|
||||
RUN_TEST(test_ThatCMockStopsReturningMoreDataWhenItRunsOutOfMemory, 139);
|
||||
RUN_TEST(test_ThatCMockStopsReturningMoreDataWhenAskForMoreThanItHasLeftEvenIfNotAtExactEnd, 185);
|
||||
RUN_TEST(test_ThatWeCanAskForAllSortsOfSizes, 233);
|
||||
RUN_TEST(test_MemShouldProtectAgainstMemoryOverflow, 33);
|
||||
RUN_TEST(test_MemChainWillReturnNullAndDoNothingIfGivenIllegalInformation, 42);
|
||||
RUN_TEST(test_MemNextWillReturnNullIfGivenABadRoot, 56);
|
||||
RUN_TEST(test_ThatWeCanClaimAndChainAFewElementsTogether, 67);
|
||||
RUN_TEST(test_MemEndOfChain, 149);
|
||||
RUN_TEST(test_ThatCMockStopsReturningMoreDataWhenItRunsOutOfMemory, 195);
|
||||
RUN_TEST(test_ThatCMockStopsReturningMoreDataWhenAskForMoreThanItHasLeftEvenIfNotAtExactEnd, 244);
|
||||
RUN_TEST(test_ThatWeCanAskForAllSortsOfSizes, 298);
|
||||
|
||||
UnityEnd();
|
||||
return 0;
|
||||
|
||||
@@ -100,7 +100,7 @@
|
||||
|
||||
- :pass: FALSE
|
||||
:should: 'fail because bar() is called twice but is expected once'
|
||||
:verify_error: 'Called less times than expected'
|
||||
:verify_error: 'Called fewer times than expected'
|
||||
:code: |
|
||||
test()
|
||||
{
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
}
|
||||
|
||||
- :pass: FALSE
|
||||
:should: 'ignore foo() call details and notice if we called foo() less times than expected'
|
||||
:should: 'ignore foo() call details and notice if we called foo() fewer times than expected'
|
||||
:code: |
|
||||
test()
|
||||
{
|
||||
|
||||
@@ -92,6 +92,7 @@ describe CMockGenerator, "Verify CMockGenerator Module" do
|
||||
"/* AUTOGENERATED FILE. DO NOT EDIT. */\n",
|
||||
"#ifndef _#{define_name}\n",
|
||||
"#define _#{define_name}\n\n",
|
||||
"#include \"unity.h\"\n",
|
||||
"#include \"ConfigRequiredHeader1.h\"\n",
|
||||
"#include \"ConfigRequiredHeader2.h\"\n",
|
||||
"#include \"#{orig_filename}\"\n",
|
||||
@@ -147,6 +148,7 @@ describe CMockGenerator, "Verify CMockGenerator Module" do
|
||||
"/* AUTOGENERATED FILE. DO NOT EDIT. */\n",
|
||||
"#ifndef _#{define_name}\n",
|
||||
"#define _#{define_name}\n\n",
|
||||
"#include \"unity.h\"\n",
|
||||
"#include \"ConfigRequiredHeader1.h\"\n",
|
||||
"#include \"ConfigRequiredHeader2.h\"\n",
|
||||
"#include \"#{orig_filename}\"\n",
|
||||
@@ -185,6 +187,7 @@ describe CMockGenerator, "Verify CMockGenerator Module" do
|
||||
"/* AUTOGENERATED FILE. DO NOT EDIT. */\n",
|
||||
"#ifndef _#{define_name}\n",
|
||||
"#define _#{define_name}\n\n",
|
||||
"#include \"unity.h\"\n",
|
||||
"#include \"ConfigRequiredHeader1.h\"\n",
|
||||
"#include \"ConfigRequiredHeader2.h\"\n",
|
||||
"#include \"#{orig_filename}\"\n",
|
||||
@@ -222,6 +225,7 @@ describe CMockGenerator, "Verify CMockGenerator Module" do
|
||||
"/* AUTOGENERATED FILE. DO NOT EDIT. */\n",
|
||||
"#ifndef _#{define_name}\n",
|
||||
"#define _#{define_name}\n\n",
|
||||
"#include \"unity.h\"\n",
|
||||
"#include \"ConfigRequiredHeader1.h\"\n",
|
||||
"#include \"ConfigRequiredHeader2.h\"\n",
|
||||
"#include \"#{orig_filename}\"\n",
|
||||
@@ -308,7 +312,6 @@ describe CMockGenerator, "Verify CMockGenerator Module" do
|
||||
"#include <string.h>\n",
|
||||
"#include <stdlib.h>\n",
|
||||
"#include <setjmp.h>\n",
|
||||
"#include \"unity.h\"\n",
|
||||
"#include \"cmock.h\"\n",
|
||||
"#include \"MockPoutPoutFish.h\"\n",
|
||||
"\n",
|
||||
|
||||
@@ -106,7 +106,7 @@ describe CMockGeneratorUtils, "Verify CMockGeneratorUtils Module" do
|
||||
expected3 = " cmock_call_instance->Expected_Kiwi = Kiwi;\n"
|
||||
|
||||
arg4 = { :name => "Lime", :const? => false, :type => 'LIME_T', :ptr? => false }
|
||||
expected4 = " memcpy(&cmock_call_instance->Expected_Lime, &Lime,\n" +
|
||||
expected4 = " memcpy((void*)(&cmock_call_instance->Expected_Lime), (void*)(&Lime),\n" +
|
||||
" sizeof(LIME_T[sizeof(Lime) == sizeof(LIME_T) ? 1 : -1])); /* add LIME_T to :treat_as_array if this causes an error */\n"
|
||||
|
||||
assert_equal(expected1, @cmock_generator_utils_simple.code_add_an_arg_expectation(arg1))
|
||||
@@ -132,7 +132,7 @@ describe CMockGeneratorUtils, "Verify CMockGeneratorUtils Module" do
|
||||
" cmock_call_instance->ReturnThruPtr_Kiwi_Used = 0;\n"
|
||||
|
||||
arg4 = { :name => "Lime", :const? => false, :type => 'LIME_T', :ptr? => false }
|
||||
expected4 = " memcpy(&cmock_call_instance->Expected_Lime, &Lime,\n" +
|
||||
expected4 = " memcpy((void*)(&cmock_call_instance->Expected_Lime), (void*)(&Lime),\n" +
|
||||
" sizeof(LIME_T[sizeof(Lime) == sizeof(LIME_T) ? 1 : -1])); /* add LIME_T to :treat_as_array if this causes an error */\n" +
|
||||
" cmock_call_instance->IgnoreArg_Lime = 0;\n"
|
||||
|
||||
@@ -155,7 +155,7 @@ describe CMockGeneratorUtils, "Verify CMockGeneratorUtils Module" do
|
||||
}
|
||||
expected = "void CMockExpectParameters_Melon(CMOCK_Melon_CALL_INSTANCE* cmock_call_instance, stuff)\n{\n" +
|
||||
" cmock_call_instance->Expected_MyIntPtr = MyIntPtr;\n" +
|
||||
" memcpy(&cmock_call_instance->Expected_MyMyType, &MyMyType,\n" +
|
||||
" memcpy((void*)(&cmock_call_instance->Expected_MyMyType), (void*)(&MyMyType),\n" +
|
||||
" sizeof(MY_TYPE[sizeof(MyMyType) == sizeof(MY_TYPE) ? 1 : -1])); /* add MY_TYPE to :treat_as_array if this causes an error */\n" +
|
||||
" cmock_call_instance->Expected_MyStr = MyStr;\n" +
|
||||
"}\n\n"
|
||||
@@ -172,7 +172,7 @@ describe CMockGeneratorUtils, "Verify CMockGeneratorUtils Module" do
|
||||
" cmock_call_instance->Expected_MyIntPtr_Depth = MyIntPtr_Depth;\n" +
|
||||
" cmock_call_instance->IgnoreArg_MyIntPtr = 0;\n" +
|
||||
" cmock_call_instance->ReturnThruPtr_MyIntPtr_Used = 0;\n" +
|
||||
" memcpy(&cmock_call_instance->Expected_MyMyType, &MyMyType,\n" +
|
||||
" memcpy((void*)(&cmock_call_instance->Expected_MyMyType), (void*)(&MyMyType),\n" +
|
||||
" sizeof(MY_TYPE[sizeof(MyMyType) == sizeof(MY_TYPE) ? 1 : -1])); /* add MY_TYPE to :treat_as_array if this causes an error */\n" +
|
||||
" cmock_call_instance->IgnoreArg_MyMyType = 0;\n" +
|
||||
" cmock_call_instance->Expected_MyStr = MyStr;\n" +
|
||||
|
||||
@@ -23,6 +23,8 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
|
||||
@config.expect :when_no_prototypes, :error
|
||||
@config.expect :verbosity, 1
|
||||
@config.expect :treat_externs, :exclude
|
||||
@config.expect :array_size_type, ['int', 'size_t']
|
||||
@config.expect :array_size_name, 'size|len'
|
||||
|
||||
@parser = CMockHeaderParser.new(@config)
|
||||
end
|
||||
|
||||
Vendored
+1
-1
Submodule vendor/unity updated: 031f3bbe45...1100c5d8f0
Reference in New Issue
Block a user