|
|
|
@ -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()) |
|
|
|
|