小编yav*_*ens的帖子

是否可以对嵌入式软件的 C 宏进行单元测试?

我是如何为嵌入式软件测试一些特定的 C 宏的。

例如,如果我有以下宏:

/*
Set a pin as an input
port  (B,C, D or E) 
pin  - pin to set (0-7)
*/
#define _SET_INPUT_PIN(port,pin) DDR ## port &= ~(1<<pin)
#define SET_INPUT_PIN(...) _SET_INPUT_PIN(__VA_ARGS__)
Run Code Online (Sandbox Code Playgroud)

我想用两个端口测试它,一个存在(LED_OK)另一个不存在(LED_FAIL):

#define LED_OK   D,3
#define LED_FAIL D,8
Run Code Online (Sandbox Code Playgroud)

当我尝试测试它时,LED_OK 和 LED_FAIL 都可以正常工作,但某种警告/失败应该提醒 LED_FAIL 不存在,因为 PORTD 只定义了引脚 0 到 7。

那么,当我通过LED 时,如何检查“ pin ”是否在范围内?

c macros unit-testing avr

2
推荐指数
1
解决办法
75
查看次数

标签 统计

avr ×1

c ×1

macros ×1

unit-testing ×1