diff options
author | Enrico Granata <egranata@apple.com> | 2013-04-02 21:31:18 +0000 |
---|---|---|
committer | Enrico Granata <egranata@apple.com> | 2013-04-02 21:31:18 +0000 |
commit | 4e969282fd60e439149ac8e58b39eb60495758d8 (patch) | |
tree | 8d1b412a78d52d6a1f45ea1e0c6c52a692862a64 | |
parent | d83bfce6d48d5f1c99198ce8106129bfd7a4ea2a (diff) | |
download | bcm5719-llvm-4e969282fd60e439149ac8e58b39eb60495758d8.tar.gz bcm5719-llvm-4e969282fd60e439149ac8e58b39eb60495758d8.zip |
Misc fixes:
- make an overload of Launch() that takes an init list of const char* if all you need to tweak in the launch info are the command-line arguments
- make Run() return an int that you can use as an exit-code
- make dynamic values work properly when recursing in FetchVariables()
- make the po output more obvious in verbose mode
llvm-svn: 178578
-rw-r--r-- | lldb/tools/lldb-perf/lib/TestCase.cpp | 14 | ||||
-rw-r--r-- | lldb/tools/lldb-perf/lib/TestCase.h | 8 | ||||
-rw-r--r-- | lldb/tools/lldb-perf/lib/Xcode.cpp | 4 |
3 files changed, 22 insertions, 4 deletions
diff --git a/lldb/tools/lldb-perf/lib/TestCase.cpp b/lldb/tools/lldb-perf/lib/TestCase.cpp index c4b01998c23..ac8c402ac8b 100644 --- a/lldb/tools/lldb-perf/lib/TestCase.cpp +++ b/lldb/tools/lldb-perf/lib/TestCase.cpp @@ -117,6 +117,15 @@ TestCase::Launch (lldb::SBLaunchInfo &launch_info) return false; } +bool +TestCase::Launch (std::initializer_list<const char*> args) +{ + std::vector<const char*> args_vect(args); + args_vect.push_back(NULL); + lldb::SBLaunchInfo launch_info((const char**)&args_vect[0]); + return Launch(launch_info); +} + void TestCase::SetVerbose (bool b) { @@ -296,7 +305,7 @@ TestCase::Loop () if (GetVerbose()) printf("I am gonna die at step %d\n",m_step); } -void +int TestCase::Run (TestCase& test, int argc, const char** argv) { if (test.Setup(argc, argv)) @@ -304,6 +313,9 @@ TestCase::Run (TestCase& test, int argc, const char** argv) test.Loop(); Results results; test.WriteResults(results); + return RUN_SUCCESS; } + else + return RUN_SETUP_ERROR; } diff --git a/lldb/tools/lldb-perf/lib/TestCase.h b/lldb/tools/lldb-perf/lib/TestCase.h index d9a7c9fa8a0..3d2e0e94fbc 100644 --- a/lldb/tools/lldb-perf/lib/TestCase.h +++ b/lldb/tools/lldb-perf/lib/TestCase.h @@ -83,6 +83,9 @@ public: bool Launch (lldb::SBLaunchInfo &launch_info); + bool + Launch (std::initializer_list<const char*> args = {}); + void Loop(); @@ -113,7 +116,7 @@ public: return MemoryMeasurement<A> (a,name, description); } - static void + static int Run (TestCase& test, int argc, const char** argv); virtual bool @@ -158,6 +161,9 @@ public: return m_step; } + static const int RUN_SUCCESS = 0; + static const int RUN_SETUP_ERROR = 100; + protected: lldb::SBDebugger m_debugger; lldb::SBTarget m_target; diff --git a/lldb/tools/lldb-perf/lib/Xcode.cpp b/lldb/tools/lldb-perf/lib/Xcode.cpp index c095ea407c1..7b35e1c8cb5 100644 --- a/lldb/tools/lldb-perf/lib/Xcode.cpp +++ b/lldb/tools/lldb-perf/lib/Xcode.cpp @@ -33,7 +33,7 @@ Xcode::FetchVariable (SBValue value, uint32_t expand, bool verbose) auto count = value.GetNumChildren(); for (int i = 0; i < count; i++) { - SBValue child(value.GetChildAtIndex(i,value.IsDynamic() ? lldb::eDynamicCanRunTarget : lldb::eNoDynamicValues, true)); + SBValue child(value.GetChildAtIndex(i, lldb::eDynamicCanRunTarget, true)); FetchVariable (child,expand-1,verbose); } } @@ -117,7 +117,7 @@ Xcode::RunExpression (SBFrame frame, const char* expression, bool po, bool verbo { auto descr = value.GetObjectDescription(); if (descr) - printf("%s\n",descr); + printf("po = %s\n",descr); } } |