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
diff --git a/lldb/tools/lldb-perf/lib/TestCase.cpp b/lldb/tools/lldb-perf/lib/TestCase.cpp
index c4b0199..ac8c402 100644
--- a/lldb/tools/lldb-perf/lib/TestCase.cpp
+++ b/lldb/tools/lldb-perf/lib/TestCase.cpp
@@ -117,6 +117,15 @@
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 @@
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 @@
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 d9a7c9f..3d2e0e94 100644
--- a/lldb/tools/lldb-perf/lib/TestCase.h
+++ b/lldb/tools/lldb-perf/lib/TestCase.h
@@ -83,6 +83,9 @@
bool
Launch (lldb::SBLaunchInfo &launch_info);
+ bool
+ Launch (std::initializer_list<const char*> args = {});
+
void
Loop();
@@ -113,7 +116,7 @@
return MemoryMeasurement<A> (a,name, description);
}
- static void
+ static int
Run (TestCase& test, int argc, const char** argv);
virtual bool
@@ -158,6 +161,9 @@
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 c095ea4..7b35e1c 100644
--- a/lldb/tools/lldb-perf/lib/Xcode.cpp
+++ b/lldb/tools/lldb-perf/lib/Xcode.cpp
@@ -33,7 +33,7 @@
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 @@
{
auto descr = value.GetObjectDescription();
if (descr)
- printf("%s\n",descr);
+ printf("po = %s\n",descr);
}
}