From 8d5f7d076aa0bf1612cbae7817d802cbb4c42d4a Mon Sep 17 00:00:00 2001
From: hjk <qtc-committer@nokia.com>
Date: Thu, 26 Jan 2012 13:14:00 +0100
Subject: [PATCH] debugger: add 'inline benchmarking' for the plugin itself

Change-Id: Iad7e197f7d7ee14156562c3de7960fe65c7e85fe
Reviewed-by: hjk <qthjk@ovi.com>
---
 src/plugins/debugger/debuggerplugin.cpp | 36 ++++++++++++++++++++++++-
 src/plugins/debugger/debuggerplugin.h   |  1 +
 2 files changed, 36 insertions(+), 1 deletion(-)

diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index fb208649d39..e96c94b1381 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -134,8 +134,14 @@
 #include <QtTest/QTest>
 #include <QtTest/QSignalSpy>
 #include <QtTest/QTestEventLoop>
+
+//#define WITH_BENCHMARK
+#ifdef WITH_BENCHMARK
+#include <valgrind/callgrind.h>
 #endif
 
+#endif // WITH_TESTS
+
 #include <climits>
 
 #define DEBUG_STATE 1
@@ -864,13 +870,14 @@ public slots:
     void testStateMachine2();
     void testStateMachine3();
 
+    void testBenchmark1();
+
 public:
     bool m_testSuccess;
     QList<TestCallBack> m_testCallbacks;
 
 #endif
 
-
 public slots:
     void updateDebugActions();
 
@@ -3835,7 +3842,34 @@ void DebuggerPluginPrivate::testStateMachine3()
     testUnloadProject();
     testFinished();
 }
+
+
+///////////////////////////////////////////////////////////////////////////
+
+void DebuggerPlugin::testBenchmark()
+{
+    theDebuggerCore->testBenchmark1();
+}
+
+enum FakeEnum { FakeDebuggerCommonSettingsId };
+
+void DebuggerPluginPrivate::testBenchmark1()
+{
+#ifdef WITH_BENCHMARK
+    CALLGRIND_START_INSTRUMENTATION;
+    volatile Core::Id id1 = Core::Id(DEBUGGER_COMMON_SETTINGS_ID);
+    CALLGRIND_STOP_INSTRUMENTATION;
+    CALLGRIND_DUMP_STATS;
+
+    CALLGRIND_START_INSTRUMENTATION;
+    volatile FakeEnum id2 = FakeDebuggerCommonSettingsId;
+    CALLGRIND_STOP_INSTRUMENTATION;
+    CALLGRIND_DUMP_STATS;
 #endif
+}
+
+
+#endif // if  WITH_TESTS
 
 } // namespace Debugger
 
diff --git a/src/plugins/debugger/debuggerplugin.h b/src/plugins/debugger/debuggerplugin.h
index 0f960f4f0e3..3b476103e02 100644
--- a/src/plugins/debugger/debuggerplugin.h
+++ b/src/plugins/debugger/debuggerplugin.h
@@ -77,6 +77,7 @@ private:
 
 #ifdef WITH_TESTS
 private slots:
+    void testBenchmark();
     void testPythonDumpers();
     void testStateMachine();
 #endif
-- 
GitLab