Oilpan: blink_heap_unittests: Test case have memory leak checked by Lsan

1. For case TraceIfNeeded, modify TraceIfNeededTester to inherit from GarbageCollectedFinalized and at the end of test case TraceIfNeeded trigger a GC.
   After GC, the destructor of TraceIfNeededTester will dereference the RefPtr<OffHeapInt> instance, stop the leak.
2. For case MapWithCustomWeaknessHandling and MapWithCustomWeaknessHandling2, need clear the Persistent handle and trigger a GC at the end of test case.

R=ager@chromium.org, oilpan-reviews@chromium.org
BUG=401018

Review URL: https://codereview.chromium.org/452723002

git-svn-id: svn://svn.chromium.org/blink/trunk@179938 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 09d18e87
......@@ -4975,12 +4975,13 @@ TEST(HeapTest, RecursiveMutex)
}
template<typename T>
class TraceIfNeededTester : public GarbageCollected<TraceIfNeededTester<T> > {
class TraceIfNeededTester : public GarbageCollectedFinalized<TraceIfNeededTester<T> > {
public:
static TraceIfNeededTester<T>* create() { return new TraceIfNeededTester<T>(); }
static TraceIfNeededTester<T>* create(const T& obj) { return new TraceIfNeededTester<T>(obj); }
void trace(Visitor* visitor) { TraceIfNeeded<T>::trace(visitor, &m_obj); }
T& obj() { return m_obj; }
~TraceIfNeededTester() { }
private:
TraceIfNeededTester() { }
explicit TraceIfNeededTester(const T& obj) : m_obj(obj) { }
......
......@@ -58,6 +58,7 @@ int main(int argc, char** argv)
blink::ThreadState::attachMainThread();
blink::EventTracer::initialize();
int result = base::RunUnitTestsUsingBaseTestSuite(argc, argv);
blink::Heap::collectAllGarbage();
blink::ThreadState::detachMainThread();
blink::Heap::shutdown();
return result;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment