From a44c21da086bf1005fc500d4dcb5208fc3caccaa Mon Sep 17 00:00:00 2001 From: Reijo Tomperi Date: Fri, 12 Dec 2008 19:21:34 +0000 Subject: [PATCH] testmemleak: Added 2 tests, fopen() and popen() should return resource leak, instead of memory leak --- testmemleak.cpp | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/testmemleak.cpp b/testmemleak.cpp index 946e732ae..ef58d5d62 100644 --- a/testmemleak.cpp +++ b/testmemleak.cpp @@ -103,7 +103,9 @@ private: TEST_CASE( switch2 ); TEST_CASE( ret1 ); - TEST_CASE( ret2 ); + TEST_CASE( ret2 ); + TEST_CASE( ret3 ); + TEST_CASE( ret4 ); TEST_CASE( mismatch1 ); @@ -129,7 +131,7 @@ private: TEST_CASE( realloc2 ); TEST_CASE( assign ); - + // TODO TEST_CASE( varid ); } @@ -685,8 +687,25 @@ private: ASSERT_EQUALS( std::string("[test.cpp:6]: Memory leak: abc\n"), errout.str() ); } - - + void ret3() + { + check( "void foo()\n" + "{\n" + " FILE *filep = fopen(\"myfile.txt\",\"w\");\n" + "}\n" ); + + ASSERT_EQUALS( std::string("[test.cpp:4]: Resource leak: filep\n"), errout.str() ); + } + + void ret4() + { + check( "void foo()\n" + "{\n" + " FILE *p = popen( \"ls -l\", \"r\");\n" + "}\n" ); + + ASSERT_EQUALS( std::string("[test.cpp:4]: Resource leak: p\n"), errout.str() ); + } void mismatch1() {