summaryrefslogtreecommitdiffstats
path: root/lldb/tools/lldb-perf/lib/TestCase.h
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/tools/lldb-perf/lib/TestCase.h')
-rw-r--r--lldb/tools/lldb-perf/lib/TestCase.h80
1 files changed, 80 insertions, 0 deletions
diff --git a/lldb/tools/lldb-perf/lib/TestCase.h b/lldb/tools/lldb-perf/lib/TestCase.h
new file mode 100644
index 00000000000..f2d67de6662
--- /dev/null
+++ b/lldb/tools/lldb-perf/lib/TestCase.h
@@ -0,0 +1,80 @@
+//
+// TestCase.h
+// PerfTestDriver
+//
+// Created by Enrico Granata on 3/7/13.
+// Copyright (c) 2013 Apple Inc. All rights reserved.
+//
+
+#ifndef __PerfTestDriver__TestCase__
+#define __PerfTestDriver__TestCase__
+
+#include "lldb/API/LLDB.h"
+#include "Measurement.h"
+
+using namespace lldb;
+
+namespace lldb { namespace perf
+{
+class TestCase
+{
+public:
+ TestCase();
+
+ struct ActionWanted
+ {
+ enum class Type
+ {
+ eAWNext,
+ eAWContinue,
+ eAWFinish,
+ eAWKill
+ } type;
+ SBThread thread;
+ };
+
+ virtual
+ ~TestCase ()
+ {}
+
+ virtual void
+ Setup (int argc, const char** argv);
+
+ virtual ActionWanted
+ TestStep (int counter) = 0;
+
+ bool
+ Launch (const char** args, const char* cwd);
+
+ void
+ Loop();
+
+ void
+ SetVerbose (bool);
+
+ bool
+ GetVerbose ();
+
+ virtual void
+ Results () = 0;
+
+ template <typename G,typename A>
+ Measurement<G,A> CreateMeasurement (A a, const char* name = NULL)
+ {
+ return Measurement<G,A> (a,name);
+ }
+
+ static void
+ Run (TestCase& test, int argc, const char** argv);
+
+protected:
+ SBDebugger m_debugger;
+ SBTarget m_target;
+ SBProcess m_process;
+ SBThread m_thread;
+ SBListener m_listener;
+ bool m_verbose;
+};
+} }
+
+#endif /* defined(__PerfTestDriver__TestCase__) */
OpenPOWER on IntegriCloud