From 6582afcdbb7b53b6bc9a51b1e9bd28ee050acf48 Mon Sep 17 00:00:00 2001 From: Alexander Alekhin Date: Tue, 15 May 2018 14:35:55 +0300 Subject: [PATCH] ts: add BigData tests category (skipped by default) Pass --test_bigdata to allow launching of "BigData" tests. --- modules/ts/include/opencv2/ts/ts_ext.hpp | 33 ++++++++++++++++++++++++++++++-- modules/ts/src/ts.cpp | 3 +++ 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/modules/ts/include/opencv2/ts/ts_ext.hpp b/modules/ts/include/opencv2/ts/ts_ext.hpp index 11ee1c9..37c3995 100644 --- a/modules/ts/include/opencv2/ts/ts_ext.hpp +++ b/modules/ts/include/opencv2/ts/ts_ext.hpp @@ -11,6 +11,7 @@ namespace cvtest { void checkIppStatus(); extern bool skipUnstableTests; +extern bool runBigDataTests; extern int testThreads; } @@ -43,7 +44,7 @@ extern int testThreads; #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 {\ public:\ GTEST_TEST_CLASS_NAME_(test_case_name, test_name)() {}\ @@ -65,9 +66,37 @@ extern int testThreads; ::testing::Test::TearDownTestCase, \ new ::testing::internal::TestFactoryImpl<\ 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() +#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 #define TEST_F(test_fixture, test_name)\ class GTEST_TEST_CLASS_NAME_(test_fixture, test_name) : public test_fixture {\ diff --git a/modules/ts/src/ts.cpp b/modules/ts/src/ts.cpp index 7dd05fb..ee823a5 100644 --- a/modules/ts/src/ts.cpp +++ b/modules/ts/src/ts.cpp @@ -699,6 +699,7 @@ void checkIppStatus() } bool skipUnstableTests = false; +bool runBigDataTests = false; int testThreads = 0; 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_threads |-1 |the number of worker threads, if parallel execution is enabled}" "{ skip_unstable |false |skip unstable tests }" + "{ test_bigdata |false |run BigData tests (>=2Gb) }" "{ h help |false |print help info }"; cv::CommandLineParser parser(argc, argv, command_line_keys); @@ -730,6 +732,7 @@ void parseCustomOptions(int argc, char **argv) testThreads = parser.get("test_threads"); skipUnstableTests = parser.get("skip_unstable"); + runBigDataTests = parser.get("test_bigdata"); } -- 2.7.4