- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
虽然我已经使用 C 语言一段时间了,但我对 TDD 还是有些陌生。因此,我正在使用 ceedling 来测试我的嵌入式项目。
我可以在 gcc 中rake test:all
,但我现在正试图将其移动到嵌入式目标模拟器。我正在通过“project.yml”文件指定我的交叉编译器、链接器等。
当我 rake test:all
时,在“编译 cmock.c”时出现错误(其他几个文件编译没有问题):
< path_to_cmock >/cmock.c:17:31: error: size of array 'CMock_Guts_Buffer' is too large
在此之后还有其他错误,但这是将它们踢掉的错误。
当我转到 cmock.c
时,我在文件顶部看到了这个:
#ifdef CMOCK_MEM_DYNAMIC
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 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
完美,所以我只需要找到声明它们的位置。我进行了文本搜索,结果发现它们没有在任何地方声明...所以我怀疑它们来自 ceedling 中的默认值。
我找到了 CMOCK 的文档,在“编译选项”下,
A number of #defines also exist for customizing the cmock experience...
它接着列出了我在源代码中找到的#defines,但没有说明在哪里可以找到它们。我试图用适当的定义制作一个包含文件,并通过“project.yml”传递包含文件,但没有成功。
我怀疑答案简单得令人难以置信,只是在我搜索过的任何地方都没有概述。谢谢你的时间,
最佳答案
当然,答案就在眼前。
在“project.yml”文件中,有一个名为“defines”的部分。默认定义是:
:defines:
# in order to add common defines:
# 1) remove the trailing [] from the :common: section
# 2) add entries to the :common: section (e.g. :test: has TEST defined)
:commmon: &common_defines []
:test:
- *common_defines
- TEST
:test_preprocess:
- *common_defines
- TEST
我只是为我的目标添加了定义:
:defines:
# in order to add common defines:
# 1) remove the trailing [] from the :common: section
# 2) add entries to the :common: section (e.g. :test: has TEST defined)
:commmon: &common_defines
- __dsPIC33EP32MC204__
- UNITY_INT_WIDTH=16
- CMOCK_MEM_INDEX_TYPE=uint16_t
- CMOCK_MEM_PTR_AS_INT=uint16_t
- CMOCK_MEM_ALIGN=1
- CMOCK_MEM_SIZE=1024
- CMOCK_MEM_STATIC
:test:
- *common_defines
- TEST
:test_preprocess:
- *common_defines
- TEST
关于取消如何将定义传递给 CMock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37078332/
我是 Cmock 的新手,这是一个 C 中的模拟框架,正在尝试开始使用它。我采用了 exmaples 目录中提供的“make_example”并对其进行了一些修改。我的代码出现在下面: ///////
我开始从事测试驱动的 C 语言开发。 我使用 CMock 通过运行以下命令来生成我的模拟类: ruby cmock.rb ../../../src/util.h 我当前的包结构是: app/root
虽然我已经使用 C 语言一段时间了,但我对 TDD 还是有些陌生。因此,我正在使用 ceedling 来测试我的嵌入式项目。 我可以在 gcc 中rake test:all,但我现在正试图将其移动到嵌
有没有办法将我的项目切换为使用 rake 作为其构建系统?我有一个使用 Make 作为其构建系统的大型项目,并且想为单元测试添加 CMock 功能(我已经成功地使用了 Unity),但是没有找到关于将
我一直在为 STM32 设置 Ceedling。 howto 非常稀缺,到目前为止,我几乎什么都没用谷歌搜索。幸运的是,该框架相对于它的大小而言是相对透明的。 This是 PIC 配置。我设置了类似的
我在 Ubuntu 16.04 和 Eclipse 4.7.2 下使用 Ceedling。到目前为止,一切正常,但我无法使 _ExpectWithArray 模拟函数正常工作。 例如,我有以下需要模拟
是否基本上可以模拟要测试的文件的功能? 例如我想测试由这些函数组成的文件 self_test.c: #include "self_test.h" uint8_t function_1(uint8_t
我想使用 XCode 5 使用 C 和 C++ 进行开发。我特别喜欢 XCTest 和 Xcode 的集成以及使用 OSX Server 获得的 CI 功能。我想要一个模拟框架,理想情况下是一个自动生
我是一名优秀的程序员,十分优秀!