内存泄漏单元测试c ++

Ste*_*rst 5 c++ unit-testing memory-leaks

我刚刚在我的应用程序中解决了内存泄漏问题,现在我想编写一个单元测试来确保不再发生这种情况.

我正在寻找一种方法来检测当前应用程序(工作集)的内存使用情况,在某些函数之前和之后.

例如:

long mem_used= GetMemUsed(); 
/* Do some work */
/* clean up */

if( mem_used != GetMemUsed() ) {
    Error( "Memory leek" ); 
}
Run Code Online (Sandbox Code Playgroud)

我发现有很多方法可以检测整个系统的内存使用情况,但是目前的应用程序都没有.

建议,链接,代码片段?

Fer*_*cio 6

Boost.Test会在测试运行结束时自动告诉您是否有任何单元测试泄露了内存.

我不知道是否有任何其他C++单元测试框架提供这种功能.

  • 仅在MS编译器上支持内存泄漏:http://www.boost.org/doc/libs/1_44_0/libs/test/doc/html/execution-monitor/user-guide.html (2认同)

Ed *_* S. 5

我非常喜欢ValGrind这类事情.这些工具已经存在; 您不需要编写自己的单元测试来检测内存泄漏.