小编Mum*_*les的帖子

私人方法的单元测试

我正在编写一些单元测试.特别是我想测试一些私有方法.

到目前为止,我已经提出了使用.

#define private public
Run Code Online (Sandbox Code Playgroud)

但我对此并不满意,因为它会从单元测试的角度破坏所有封装.

您使用什么方法对私有方法进行单元测试.

c++ unit-testing private-methods

93
推荐指数
7
解决办法
6万
查看次数

gcc结构中的内存对齐

我将应用程序移植到C中的ARM平台,该应用程序也在x86处理器上运行,并且必须向后兼容.

我现在有一些变量对齐的问题.我已经阅读了gcc手册,因为 __attribute__((aligned(4),packed))我解释了所说的内容,因为struct的开头与4字节边界对齐,并且由于packed语句,内部保持不变.

最初我有这个,但偶尔它与4字节边界不对齐.

typedef struct  
{  
 unsigned int code;  
 unsigned int length;  
 unsigned int seq;  
 unsigned int request;  
 unsigned char nonce[16];  
 unsigned short  crc;  
} __attribute__((packed)) CHALLENGE;
Run Code Online (Sandbox Code Playgroud)

所以我把它改成了这个.

typedef struct  
{  
 unsigned int code;  
 unsigned int length;  
 unsigned int seq;  
 unsigned int request;  
 unsigned char nonce[16];  
 unsigned short  crc;  
} __attribute__((aligned(4),packed)) CHALLENGE;
Run Code Online (Sandbox Code Playgroud)

该明白我前面所说似乎是不正确的,这两个结构是现在对齐到4字节边界,和现在的内部数据对齐到四个字节边界,但因为尾结构,该结构的大小已增加大小从42到44个字节.这个大小是至关重要的,因为我们有其他依赖于结构为42字节的应用程序.

有些人可以向我描述如何执行我需要的操作.任何帮助深表感谢.

c gcc arm memory-management gcc4

13
推荐指数
2
解决办法
4万
查看次数

标签 统计

arm ×1

c ×1

c++ ×1

gcc ×1

gcc4 ×1

memory-management ×1

private-methods ×1

unit-testing ×1