HWUI: add leak check for macrobench
Change-Id: Id2037921fdbe599b3c722f2e1d17b99f3b74361c
diff --git a/libs/hwui/tests/common/TestUtils.cpp b/libs/hwui/tests/common/TestUtils.cpp
index c3eb0ea..930067a 100644
--- a/libs/hwui/tests/common/TestUtils.cpp
+++ b/libs/hwui/tests/common/TestUtils.cpp
@@ -20,6 +20,7 @@
#include "DeferredLayerUpdater.h"
#include "LayerRenderer.h"
+#include <renderthread/EglManager.h>
#include <utils/Unicode.h>
namespace android {
@@ -112,12 +113,18 @@
void TestUtils::TestTask::run() {
// RenderState only valid once RenderThread is running, so queried here
- RenderState& renderState = renderthread::RenderThread::getInstance().renderState();
+ renderthread::RenderThread& renderThread = renderthread::RenderThread::getInstance();
+ bool hasEglContext = renderThread.eglManager().hasEglContext();
+ RenderState& renderState = renderThread.renderState();
+ if (!hasEglContext) {
+ renderState.onGLContextCreated();
+ }
- renderState.onGLContextCreated();
- rtCallback(renderthread::RenderThread::getInstance());
- renderState.flush(Caches::FlushMode::Full);
- renderState.onGLContextDestroyed();
+ rtCallback(renderThread);
+ if (!hasEglContext) {
+ renderState.flush(Caches::FlushMode::Full);
+ renderState.onGLContextDestroyed();
+ }
}
std::unique_ptr<uint16_t[]> TestUtils::asciiToUtf16(const char* str) {