diff --git a/testbufferoverrun.cpp b/testbufferoverrun.cpp index b9e424f00..112100d1b 100644 --- a/testbufferoverrun.cpp +++ b/testbufferoverrun.cpp @@ -319,6 +319,6 @@ private: }; -static TestBufferOverrun testbufferoverrun; +REGISTER_TEST( TestBufferOverrun ); diff --git a/testcharvar.cpp b/testcharvar.cpp index 00f67dae7..c75988b13 100644 --- a/testcharvar.cpp +++ b/testcharvar.cpp @@ -77,5 +77,5 @@ private: } }; -static TestCharVar testcharvar; +REGISTER_TEST( TestCharVar ); diff --git a/testconstructors.cpp b/testconstructors.cpp index b04fb5b46..447c9b53b 100644 --- a/testconstructors.cpp +++ b/testconstructors.cpp @@ -97,4 +97,4 @@ private: }; -static TestConstructors testconstructors; +REGISTER_TEST( TestConstructors ); diff --git a/testdivision.cpp b/testdivision.cpp index 0be9f2f79..506de5a7a 100644 --- a/testdivision.cpp +++ b/testdivision.cpp @@ -128,6 +128,6 @@ private: } }; -static TestDivision testdivision; +REGISTER_TEST( TestDivision ); diff --git a/testmemleak.cpp b/testmemleak.cpp index 25cd0b1b0..ed6b9b6de 100644 --- a/testmemleak.cpp +++ b/testmemleak.cpp @@ -61,6 +61,7 @@ private: TEST_CASE( func2 ); TEST_CASE( class1 ); + TEST_CASE( class2 ); } void simple1() @@ -461,14 +462,29 @@ private: "}\n" ); ASSERT_EQUALS( std::string("[test.cpp:8]: Memory leak: p\n"), errout.str() ); } + + + void func6() + { + check( "struct ab\n" + "{\n" + " int a;\n" + " int b;\n" + "};\n" + "\n" + "static void f()\n" + "{\n" + " struct ab *p = malloc(sizeof(struct ab));\n" + " foo(&p->b);\n" + "}\n" ); + ASSERT_EQUALS( std::string("[test.cpp:11]: Memory leak: p\n"), errout.str() ); + } */ - - void class1() { check( "class Fred\n" @@ -526,6 +542,6 @@ private: }; -static TestMemleak testmemleak; +REGISTER_TEST( TestMemleak ); diff --git a/testsuite.h b/testsuite.h index eb802ed90..83ba65064 100644 --- a/testsuite.h +++ b/testsuite.h @@ -28,4 +28,5 @@ public: #define TEST_CASE( NAME ) if ( runTest(#NAME) ) NAME (); #define ASSERT_EQUALS( EXPECTED , ACTUAL ) if (EXPECTED!=ACTUAL) assertFail(__FILE__, __LINE__); +#define REGISTER_TEST( CLASSNAME ) namespace { CLASSNAME instance; };