testmemleak: added checks for class members
This commit is contained in:
parent
aba1ef0d0e
commit
deca59aa86
|
@ -57,6 +57,8 @@ public:
|
|||
TEST_CASE( func1 );
|
||||
TEST_CASE( func2 );
|
||||
|
||||
TEST_CASE( class1 );
|
||||
|
||||
}
|
||||
|
||||
void simple1()
|
||||
|
@ -452,6 +454,65 @@ public:
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void class1()
|
||||
{
|
||||
check( "class Fred\n"
|
||||
"{\n"
|
||||
"private:\n"
|
||||
" char *str1;\n"
|
||||
" char *str2;\n"
|
||||
"public:\n"
|
||||
" Fred();\n"
|
||||
" ~Fred();\n"
|
||||
"};\n"
|
||||
"\n"
|
||||
"Fred::Fred()\n"
|
||||
"{\n"
|
||||
" str1 = new char[10];\n"
|
||||
" str2 = new char[10];\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"Fred::~Fred()\n"
|
||||
"{\n"
|
||||
" delete [] str2;\n"
|
||||
"}\n" );
|
||||
|
||||
ASSERT_EQUALS( std::string("[test.cpp:1]: Memory leak: Fred::str1\n"), errout.str() );
|
||||
}
|
||||
|
||||
|
||||
void class2()
|
||||
{
|
||||
check( "class Fred\n"
|
||||
"{\n"
|
||||
"private:\n"
|
||||
" char *str1;\n"
|
||||
"public:\n"
|
||||
" Fred();\n"
|
||||
" ~Fred();\n"
|
||||
"};\n"
|
||||
"\n"
|
||||
"Fred::Fred()\n"
|
||||
"{\n"
|
||||
" str1 = new char[10];\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"Fred::~Fred()\n"
|
||||
"{\n"
|
||||
" free(str1);\n"
|
||||
"}\n" );
|
||||
|
||||
ASSERT_EQUALS( std::string("[test.cpp:17]: Mismatching allocation and deallocation: Fred::str1\n"), errout.str() );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
REGISTER_FIXTURE( TestMemleak )
|
||||
|
|
Loading…
Reference in New Issue