CPP: Add test cases.

This commit is contained in:
Geoffrey White
2018-11-27 17:20:14 +00:00
parent f4ec168666
commit 7107cec503
2 changed files with 43 additions and 0 deletions

View File

@@ -8,6 +8,8 @@
| DeleteThis.cpp:56:3:56:24 | ... = ... | Resource ptr10 is acquired by class MyClass3 but not released anywhere in this class. |
| DeleteThis.cpp:58:3:58:24 | ... = ... | Resource ptr12 is acquired by class MyClass3 but not released anywhere in this class. |
| DeleteThis.cpp:60:3:60:24 | ... = ... | Resource ptr14 is acquired by class MyClass3 but not released anywhere in this class. |
| DeleteThis.cpp:111:3:111:20 | ... = ... | Resource b is acquired by class MyClass7 but not released anywhere in this class. |
| DeleteThis.cpp:112:3:112:20 | ... = ... | Resource c is acquired by class MyClass7 but not released anywhere in this class. |
| ExternalOwners.cpp:49:3:49:20 | ... = ... | Resource a is acquired by class MyScreen but not released anywhere in this class. |
| ListDelete.cpp:21:3:21:21 | ... = ... | Resource first is acquired by class MyThingColection but not released anywhere in this class. |
| NoDestructor.cpp:23:3:23:20 | ... = ... | Resource n is acquired by class MyClass5 but not released anywhere in this class. |

View File

@@ -82,3 +82,44 @@ private:
MyClass2 *ptr10, *ptr11, *ptr12, *ptr13, *ptr14, *ptr15;
MyClass2 *ptr20;
};
class MyClass4
{
public:
virtual void Release() = 0;
};
class MyClass5 : public MyClass4
{
public:
void Release()
{
delete this;
}
};
class MyClass6 : public MyClass5
{
};
class MyClass7
{
public:
MyClass7()
{
a = new MyClass5(); // GOOD
b = new MyClass5(); // GOOD [FALSE POSITIVE]
c = new MyClass6(); // GOOD [FALSE POSITIVE]
}
~MyClass7()
{
a->Release();
b->Release();
c->Release();
}
MyClass5 *a;
MyClass4 *b;
MyClass4 *c;
};