Commit 6582afcd authored by Alexander Alekhin's avatar Alexander Alekhin

ts: add BigData tests category (skipped by default)

Pass --test_bigdata to allow launching of "BigData" tests.
parent e0dbe5cf
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
namespace cvtest { namespace cvtest {
void checkIppStatus(); void checkIppStatus();
extern bool skipUnstableTests; extern bool skipUnstableTests;
extern bool runBigDataTests;
extern int testThreads; extern int testThreads;
} }
...@@ -43,7 +44,7 @@ extern int testThreads; ...@@ -43,7 +44,7 @@ extern int testThreads;
#undef TEST #undef TEST
#define TEST(test_case_name, test_name) \ #define TEST_(test_case_name, test_name, BODY_IMPL) \
class GTEST_TEST_CLASS_NAME_(test_case_name, test_name) : public ::testing::Test {\ class GTEST_TEST_CLASS_NAME_(test_case_name, test_name) : public ::testing::Test {\
public:\ public:\
GTEST_TEST_CLASS_NAME_(test_case_name, test_name)() {}\ GTEST_TEST_CLASS_NAME_(test_case_name, test_name)() {}\
...@@ -65,9 +66,37 @@ extern int testThreads; ...@@ -65,9 +66,37 @@ extern int testThreads;
::testing::Test::TearDownTestCase, \ ::testing::Test::TearDownTestCase, \
new ::testing::internal::TestFactoryImpl<\ new ::testing::internal::TestFactoryImpl<\
GTEST_TEST_CLASS_NAME_(test_case_name, test_name)>);\ GTEST_TEST_CLASS_NAME_(test_case_name, test_name)>);\
void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::TestBody() CV__TEST_BODY_IMPL( #test_case_name "_" #test_name ) \ void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::TestBody() BODY_IMPL( #test_case_name "_" #test_name ) \
void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::Body() void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::Body()
#define TEST(test_case_name, test_name) TEST_(test_case_name, test_name, CV__TEST_BODY_IMPL)
#define CV__TEST_BIGDATA_BODY_IMPL(name) \
{ \
if (!cvtest::runBigDataTests) \
{ \
printf("[ SKIP ] BigData tests are disabled\n"); \
return; \
} \
CV__TRACE_APP_FUNCTION_NAME(name); \
try { \
CV__TEST_INIT \
Body(); \
CV__TEST_CLEANUP \
} \
catch (cvtest::SkipTestException& e) \
{ \
printf("[ SKIP ] %s\n", e.what()); \
} \
} \
// Special type of tests which require / use or validate processing of huge amount of data (>= 2Gb)
#if defined(_M_X64) || defined(__x86_64__) || defined(__aarch64__)
#define BIGDATA_TEST(test_case_name, test_name) TEST_(BigData_ ## test_case_name, test_name, CV__TEST_BIGDATA_BODY_IMPL)
#else
#define BIGDATA_TEST(test_case_name, test_name) TEST_(BigData_ ## test_case_name, DISABLED_ ## test_name, CV__TEST_BIGDATA_BODY_IMPL)
#endif
#undef TEST_F #undef TEST_F
#define TEST_F(test_fixture, test_name)\ #define TEST_F(test_fixture, test_name)\
class GTEST_TEST_CLASS_NAME_(test_fixture, test_name) : public test_fixture {\ class GTEST_TEST_CLASS_NAME_(test_fixture, test_name) : public test_fixture {\
......
...@@ -699,6 +699,7 @@ void checkIppStatus() ...@@ -699,6 +699,7 @@ void checkIppStatus()
} }
bool skipUnstableTests = false; bool skipUnstableTests = false;
bool runBigDataTests = false;
int testThreads = 0; int testThreads = 0;
void parseCustomOptions(int argc, char **argv) void parseCustomOptions(int argc, char **argv)
...@@ -708,6 +709,7 @@ void parseCustomOptions(int argc, char **argv) ...@@ -708,6 +709,7 @@ void parseCustomOptions(int argc, char **argv)
"{ test_seed |809564 |seed for random numbers generator }" "{ test_seed |809564 |seed for random numbers generator }"
"{ test_threads |-1 |the number of worker threads, if parallel execution is enabled}" "{ test_threads |-1 |the number of worker threads, if parallel execution is enabled}"
"{ skip_unstable |false |skip unstable tests }" "{ skip_unstable |false |skip unstable tests }"
"{ test_bigdata |false |run BigData tests (>=2Gb) }"
"{ h help |false |print help info }"; "{ h help |false |print help info }";
cv::CommandLineParser parser(argc, argv, command_line_keys); cv::CommandLineParser parser(argc, argv, command_line_keys);
...@@ -730,6 +732,7 @@ void parseCustomOptions(int argc, char **argv) ...@@ -730,6 +732,7 @@ void parseCustomOptions(int argc, char **argv)
testThreads = parser.get<int>("test_threads"); testThreads = parser.get<int>("test_threads");
skipUnstableTests = parser.get<bool>("skip_unstable"); skipUnstableTests = parser.get<bool>("skip_unstable");
runBigDataTests = parser.get<bool>("test_bigdata");
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment