Made perf tests record module name, selected implementation and number of threads.

pull/1030/head
Roman Donchenko 12 years ago
parent 936236e4b1
commit b581f27249
  1. 9
      modules/ts/include/opencv2/ts/ts_perf.hpp
  2. 5
      modules/ts/src/ts_perf.cpp

@ -260,6 +260,7 @@ public:
static void Init(int argc, const char* const argv[]);
static void Init(const std::vector<std::string> & availableImpls,
int argc, const char* const argv[]);
static void RecordRunParameters();
static std::string getDataPath(const std::string& relativePath);
static std::string getSelectedImpl();
@ -477,20 +478,22 @@ CV_EXPORTS void PrintTo(const Size& sz, ::std::ostream* os);
#define CV_PERF_UNWRAP_IMPLS(...) __VA_ARGS__
// "plain" should always be one of the implementations
#define CV_PERF_TEST_MAIN_WITH_IMPLS(testsuitname, impls, ...) \
#define CV_PERF_TEST_MAIN_WITH_IMPLS(modulename, impls, ...) \
int main(int argc, char **argv)\
{\
while (++argc >= (--argc,-1)) {__VA_ARGS__; break;} /*this ugly construction is needed for VS 2005*/\
std::string impls_[] = { CV_PERF_UNWRAP_IMPLS impls };\
::perf::Regression::Init(#testsuitname);\
::perf::Regression::Init(#modulename);\
::perf::TestBase::Init(std::vector<std::string>(impls_, impls_ + sizeof impls_ / sizeof *impls_),\
argc, argv);\
::testing::InitGoogleTest(&argc, argv);\
cvtest::printVersionInfo();\
::testing::Test::RecordProperty("cv_module_name", #modulename);\
::perf::TestBase::RecordRunParameters();\
return RUN_ALL_TESTS();\
}
#define CV_PERF_TEST_MAIN(testsuitname, ...) CV_PERF_TEST_MAIN_WITH_IMPLS(testsuitname, ("plain"), __VA_ARGS__)
#define CV_PERF_TEST_MAIN(modulename, ...) CV_PERF_TEST_MAIN_WITH_IMPLS(modulename, ("plain"), __VA_ARGS__)
#define TEST_CYCLE_N(n) for(declare.iterations(n); startTimer(), next(); stopTimer())
#define TEST_CYCLE() for(; startTimer(), next(); stopTimer())

@ -734,6 +734,11 @@ void TestBase::Init(const std::vector<std::string> & availableImpls,
_timeadjustment = _calibrate();
}
void TestBase::RecordRunParameters()
{
::testing::Test::RecordProperty("cv_implementation", param_impl);
::testing::Test::RecordProperty("cv_num_threads", param_threads);
}
std::string TestBase::getSelectedImpl()
{

Loading…
Cancel
Save