git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55332
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
static const char OPTION_AVG_COUNT = 'a';
static const char OPTION_NUM_RUNS = 'n';
static const char OPTION_AVG_COUNT = 'a';
static const char OPTION_NUM_RUNS = 'n';
+static const char OPTION_NUMERIC_PARAM = 'p';
// ----------------------------------------------------------------------------
// BenchApp declaration
// ----------------------------------------------------------------------------
// BenchApp declaration
virtual int OnRun();
virtual int OnExit();
virtual int OnRun();
virtual int OnExit();
+ // accessor
+ int GetNumericParameter() const { return m_numParam; }
+
private:
// list all registered benchmarks
void ListBenchmarks();
private:
// list all registered benchmarks
void ListBenchmarks();
// command lines options/parameters
wxSortedArrayString m_toRun;
long m_numRuns,
// command lines options/parameters
wxSortedArrayString m_toRun;
long m_numRuns,
+ m_avgCount,
+ m_numParam;
+IMPLEMENT_APP_CONSOLE(BenchApp)
+
// ============================================================================
// ============================================================================
-// Bench::Function implementation
+// Bench namespace symbols implementation
// ============================================================================
Bench::Function *Bench::Function::ms_head = NULL;
// ============================================================================
Bench::Function *Bench::Function::ms_head = NULL;
+long Bench::GetNumericParameter()
+{
+ return wxGetApp().GetNumericParameter();
+}
+
// ============================================================================
// BenchApp implementation
// ============================================================================
// ============================================================================
// BenchApp implementation
// ============================================================================
-IMPLEMENT_APP_CONSOLE(BenchApp)
-
BenchApp::BenchApp()
{
m_avgCount = 10;
m_numRuns = 10000; // just some default (TODO: switch to time-based one)
BenchApp::BenchApp()
{
m_avgCount = 10;
m_numRuns = 10000; // just some default (TODO: switch to time-based one)
}
bool BenchApp::OnInit()
}
bool BenchApp::OnInit()
m_numRuns
),
wxCMD_LINE_VAL_NUMBER);
m_numRuns
),
wxCMD_LINE_VAL_NUMBER);
+ parser.AddOption(OPTION_NUMERIC_PARAM,
+ "num-param",
+ "numeric parameter used by some benchmark functions "
+ "(default: 1)",
+ wxCMD_LINE_VAL_NUMBER);
+
parser.AddParam("benchmark name",
wxCMD_LINE_VAL_STRING,
wxCMD_LINE_PARAM_OPTIONAL | wxCMD_LINE_PARAM_MULTIPLE);
parser.AddParam("benchmark name",
wxCMD_LINE_VAL_STRING,
wxCMD_LINE_PARAM_OPTIONAL | wxCMD_LINE_PARAM_MULTIPLE);
parser.Found(OPTION_AVG_COUNT, &m_avgCount);
parser.Found(OPTION_NUM_RUNS, &m_numRuns);
parser.Found(OPTION_AVG_COUNT, &m_avgCount);
parser.Found(OPTION_NUM_RUNS, &m_numRuns);
+ parser.Found(OPTION_NUMERIC_PARAM, &m_numParam);
// construct sorted array for quick verification of benchmark names
wxSortedArrayString benchmarks;
// construct sorted array for quick verification of benchmark names
wxSortedArrayString benchmarks;
if ( m_toRun.Index(func->GetName()) == wxNOT_FOUND )
continue;
if ( m_toRun.Index(func->GetName()) == wxNOT_FOUND )
continue;
- wxPrintf("Benchmarking %s: ", func->GetName());
+ wxPrintf("Benchmarking %s(%ld): ", func->GetName(), m_numParam);
long timeMin = LONG_MAX,
timeMax = 0,
long timeMin = LONG_MAX,
timeMax = 0,
DECLARE_NO_COPY_CLASS(Function)
};
DECLARE_NO_COPY_CLASS(Function)
};
+/**
+ Get the numeric parameter.
+
+ Tests may use this parameter in whatever way they see fit, by default it is
+ 1 but can be set to a different value by user from the command line.
+ */
+long GetNumericParameter();
+
static wxString html;
if ( html.empty() )
{
static wxString html;
if ( html.empty() )
{
- wxFFile("htmltest.html").ReadAll(&html, wxConvUTF8);
+ wxString html1;
+ wxFFile("htmltest.html").ReadAll(&html1, wxConvUTF8);
+
+ // this is going to make for some invalid HTML, of course, but it
+ // doesn't really matter
+ for ( long n = 0; n < Bench::GetNumericParameter(); n++ )
+ html += html1;