aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/google/protobuf/testing/googletest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/google/protobuf/testing/googletest.cc')
-rw-r--r--src/google/protobuf/testing/googletest.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/google/protobuf/testing/googletest.cc b/src/google/protobuf/testing/googletest.cc
index 99dbbb32..1339b332 100644
--- a/src/google/protobuf/testing/googletest.cc
+++ b/src/google/protobuf/testing/googletest.cc
@@ -233,5 +233,19 @@ void ScopedMemoryLog::HandleLog(LogLevel level, const char* filename,
}
}
+namespace {
+
+// Force shutdown at process exit so that we can test for memory leaks. To
+// actually check for leaks, I suggest using the heap checker included with
+// google-perftools. Set it to "draconian" mode to ensure that every last
+// call to malloc() has a corresponding free().
+struct ForceShutdown {
+ ~ForceShutdown() {
+ ShutdownProtobufLibrary();
+ }
+} force_shutdown;
+
+} // namespace
+
} // namespace protobuf
} // namespace google