Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(379)

Unified Diff: mojo/system/embedder/test_embedder.cc

Issue 136793026: Mojo: Add leak detection to mojo::embedder::test::Shutdown(). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« mojo/system/core_impl.h ('K') | « mojo/system/embedder/test_embedder.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/system/embedder/test_embedder.cc
diff --git a/mojo/system/embedder/test_embedder.cc b/mojo/system/embedder/test_embedder.cc
index 6b6bb630c80dc09e3c307b700ce42ee29f9206d8..37c9e8b540dece8f37b657449f654a22873c80bf 100644
--- a/mojo/system/embedder/test_embedder.cc
+++ b/mojo/system/embedder/test_embedder.cc
@@ -5,22 +5,45 @@
#include "mojo/system/embedder/test_embedder.h"
#include "base/logging.h"
+#include "base/macros.h"
#include "mojo/system/core_impl.h"
namespace mojo {
+
+namespace system {
+namespace internal {
+
+bool ShutdownCheckNoLeaks(CoreImpl* core_impl) {
+ // No point in taking the lock.
+ if (core_impl->handle_table_.empty())
+ return true;
+
+ for (CoreImpl::HandleTableMap::const_iterator it =
+ core_impl->handle_table_.begin();
+ it != core_impl->handle_table_.end();
+ ++it) {
+ LOG(ERROR) << "Mojo embedder shutdown: Leaking handle " << (*it).first;
+ }
+ return false;
+}
+
+} // namespace internal
+} // namespace system
+
namespace embedder {
namespace test {
-void Shutdown() {
+bool Shutdown() {
system::CoreImpl* core_impl = static_cast<system::CoreImpl*>(Core::Get());
CHECK(core_impl);
Core::Reset();
- // TODO(vtl): Check for leaks, etc.
-
+ bool rv = system::internal::ShutdownCheckNoLeaks(core_impl);
delete core_impl;
+ return rv;
}
} // namespace test
} // namespace embedder
+
} // namespace mojo
« mojo/system/core_impl.h ('K') | « mojo/system/embedder/test_embedder.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698