Merge pull request #24223 from asmorkalov:as/24186_revert

Revert PR 24186 as it forces skipping tests
pull/24227/head
Alexander Smorkalov 1 year ago committed by GitHub
commit af9be78ead
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 36
      modules/core/test/test_misc.cpp
  2. 2
      modules/python/test/tests_common.py
  3. 42
      modules/ts/include/opencv2/ts/ts_ext.hpp
  4. 13
      modules/ts/src/ts_tags.cpp

@ -917,41 +917,5 @@ REGISTER_TYPED_TEST_CASE_P(Rect_Test, Overflows);
typedef ::testing::Types<int, float, double> RectTypes; typedef ::testing::Types<int, float, double> RectTypes;
INSTANTIATE_TYPED_TEST_CASE_P(Negative_Test, Rect_Test, RectTypes); INSTANTIATE_TYPED_TEST_CASE_P(Negative_Test, Rect_Test, RectTypes);
// Expected that SkipTestException thrown in the constructor should skip test but not fail
struct TestFixtureSkip: public ::testing::Test {
TestFixtureSkip(bool throwEx = true) {
if (throwEx) {
throw SkipTestException("Skip test at constructor");
}
}
};
TEST_F(TestFixtureSkip, NoBodyRun) {
FAIL() << "Unreachable code called";
}
// Check no test body started in case of skip exception at static SetUpTestCase
struct TestSetUpTestCaseSkip: public ::testing::Test {
static void SetUpTestCase() {
throw SkipTestException("Skip test at SetUpTestCase");
}
};
TEST_F(TestSetUpTestCaseSkip, NoBodyRun) {
FAIL() << "Unreachable code called";
}
TEST_F(TestSetUpTestCaseSkip, NoBodyRun2) {
FAIL() << "Unreachable code called";
}
struct TestSetUpSkip: public ::testing::Test {
virtual void SetUp() {
throw SkipTestException("Skip test at SetUp");
}
};
TEST_F(TestSetUpSkip, NoBodyRun) {
FAIL() << "Unreachable code called";
}
}} // namespace }} // namespace

@ -36,8 +36,6 @@ class NewOpenCVTests(unittest.TestCase):
return candidate return candidate
if required: if required:
self.fail('File ' + filename + ' not found') self.fail('File ' + filename + ' not found')
else:
self.skipTest('File ' + filename + ' not found')
return None return None

@ -47,18 +47,6 @@ bool checkBigDataTests();
} \ } \
} \ } \
#define CV__TEST_SETUP_IMPL(parent_class) \
{ \
try { \
parent_class::SetUp(); \
} catch (const cvtest::details::SkipTestExceptionBase& e) { \
printf("[ SKIP ] %s\n", e.what()); \
} \
}
struct DummyTest : public ::testing::Test {
virtual void TestBody() CV_OVERRIDE {}
};
#undef TEST #undef TEST
#define TEST_(test_case_name, test_name, parent_class, bodyMethodName, BODY_ATTR, BODY_IMPL) \ #define TEST_(test_case_name, test_name, parent_class, bodyMethodName, BODY_ATTR, BODY_IMPL) \
@ -72,17 +60,6 @@ struct DummyTest : public ::testing::Test {
GTEST_DISALLOW_COPY_AND_ASSIGN_(\ GTEST_DISALLOW_COPY_AND_ASSIGN_(\
GTEST_TEST_CLASS_NAME_(test_case_name, test_name));\ GTEST_TEST_CLASS_NAME_(test_case_name, test_name));\
};\ };\
class test_case_name##test_name##_factory : public ::testing::internal::TestFactoryBase { \
public:\
virtual ::testing::Test* CreateTest() { \
try { \
return new GTEST_TEST_CLASS_NAME_(test_case_name, test_name); \
} catch (const cvtest::details::SkipTestExceptionBase& e) { \
printf("[ SKIP ] %s\n", e.what()); \
return new DummyTest(); \
} \
} \
};\
\ \
::testing::TestInfo* const GTEST_TEST_CLASS_NAME_(test_case_name, test_name)\ ::testing::TestInfo* const GTEST_TEST_CLASS_NAME_(test_case_name, test_name)\
::test_info_ =\ ::test_info_ =\
@ -92,7 +69,8 @@ struct DummyTest : public ::testing::Test {
(::testing::internal::GetTestTypeId()), \ (::testing::internal::GetTestTypeId()), \
parent_class::SetUpTestCase, \ parent_class::SetUpTestCase, \
parent_class::TearDownTestCase, \ parent_class::TearDownTestCase, \
new test_case_name##test_name##_factory);\ new ::testing::internal::TestFactoryImpl<\
GTEST_TEST_CLASS_NAME_(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)::TestBody() BODY_IMPL( #test_case_name "_" #test_name ) \
void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::bodyMethodName() void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::bodyMethodName()
@ -131,22 +109,10 @@ struct DummyTest : public ::testing::Test {
private:\ private:\
virtual void TestBody() CV_OVERRIDE;\ virtual void TestBody() CV_OVERRIDE;\
virtual void Body(); \ virtual void Body(); \
virtual void SetUp() CV_OVERRIDE; \
static ::testing::TestInfo* const test_info_ GTEST_ATTRIBUTE_UNUSED_;\ static ::testing::TestInfo* const test_info_ GTEST_ATTRIBUTE_UNUSED_;\
GTEST_DISALLOW_COPY_AND_ASSIGN_(\ GTEST_DISALLOW_COPY_AND_ASSIGN_(\
GTEST_TEST_CLASS_NAME_(test_fixture, test_name));\ GTEST_TEST_CLASS_NAME_(test_fixture, test_name));\
};\ };\
class test_fixture##test_name##_factory : public ::testing::internal::TestFactoryBase { \
public:\
virtual ::testing::Test* CreateTest() { \
try { \
return new GTEST_TEST_CLASS_NAME_(test_fixture, test_name); \
} catch (const cvtest::details::SkipTestExceptionBase& e) { \
printf("[ SKIP ] %s\n", e.what()); \
return new DummyTest(); \
} \
} \
};\
\ \
::testing::TestInfo* const GTEST_TEST_CLASS_NAME_(test_fixture, test_name)\ ::testing::TestInfo* const GTEST_TEST_CLASS_NAME_(test_fixture, test_name)\
::test_info_ =\ ::test_info_ =\
@ -156,9 +122,9 @@ struct DummyTest : public ::testing::Test {
(::testing::internal::GetTypeId<test_fixture>()), \ (::testing::internal::GetTypeId<test_fixture>()), \
test_fixture::SetUpTestCase, \ test_fixture::SetUpTestCase, \
test_fixture::TearDownTestCase, \ test_fixture::TearDownTestCase, \
new test_fixture##test_name##_factory);\ new ::testing::internal::TestFactoryImpl<\
GTEST_TEST_CLASS_NAME_(test_fixture, test_name)>);\
void GTEST_TEST_CLASS_NAME_(test_fixture, test_name)::TestBody() CV__TEST_BODY_IMPL( #test_fixture "_" #test_name ) \ void GTEST_TEST_CLASS_NAME_(test_fixture, test_name)::TestBody() CV__TEST_BODY_IMPL( #test_fixture "_" #test_name ) \
void GTEST_TEST_CLASS_NAME_(test_fixture, test_name)::SetUp() CV__TEST_SETUP_IMPL(test_fixture) \
void GTEST_TEST_CLASS_NAME_(test_fixture, test_name)::Body() void GTEST_TEST_CLASS_NAME_(test_fixture, test_name)::Body()
// Don't use directly // Don't use directly

@ -11,7 +11,7 @@ namespace cvtest {
static bool printTestTag = false; static bool printTestTag = false;
static std::vector<std::string> currentDirectTestTags, currentImpliedTestTags; static std::vector<std::string> currentDirectTestTags, currentImpliedTestTags;
static std::vector<const ::testing::TestCase*> skipped_tests; static std::vector<const ::testing::TestInfo*> skipped_tests;
static std::map<std::string, int>& getTestTagsSkipCounts() static std::map<std::string, int>& getTestTagsSkipCounts()
{ {
@ -26,7 +26,7 @@ static std::map<std::string, int>& getTestTagsSkipExtraCounts()
void testTagIncreaseSkipCount(const std::string& tag, bool isMain, bool appendSkipTests) void testTagIncreaseSkipCount(const std::string& tag, bool isMain, bool appendSkipTests)
{ {
if (appendSkipTests) if (appendSkipTests)
skipped_tests.push_back(::testing::UnitTest::GetInstance()->current_test_case()); skipped_tests.push_back(::testing::UnitTest::GetInstance()->current_test_info());
std::map<std::string, int>& counts = isMain ? getTestTagsSkipCounts() : getTestTagsSkipExtraCounts(); std::map<std::string, int>& counts = isMain ? getTestTagsSkipCounts() : getTestTagsSkipExtraCounts();
std::map<std::string, int>::iterator i = counts.find(tag); std::map<std::string, int>::iterator i = counts.find(tag);
if (i == counts.end()) if (i == counts.end())
@ -280,11 +280,6 @@ static bool isTestTagSkipped(const std::string& testTag, CV_OUT std::string& ski
void checkTestTags() void checkTestTags()
{ {
if (std::find(skipped_tests.begin(), skipped_tests.end(),
::testing::UnitTest::GetInstance()->current_test_case()) != skipped_tests.end()) {
throw details::SkipTestExceptionBase(false);
}
std::string skipTag; std::string skipTag;
const std::vector<std::string>& testTags = currentDirectTestTags; const std::vector<std::string>& testTags = currentDirectTestTags;
{ {
@ -312,7 +307,7 @@ void checkTestTags()
} }
if (found != tags.size()) if (found != tags.size())
{ {
skipped_tests.push_back(::testing::UnitTest::GetInstance()->current_test_case()); skipped_tests.push_back(::testing::UnitTest::GetInstance()->current_test_info());
throw details::SkipTestExceptionBase("Test tags don't pass required tags list (--test_tag parameter)", true); throw details::SkipTestExceptionBase("Test tags don't pass required tags list (--test_tag parameter)", true);
} }
} }
@ -346,7 +341,7 @@ void checkTestTags()
if (!skip_message.empty()) if (!skip_message.empty())
{ {
skipped_tests.push_back(::testing::UnitTest::GetInstance()->current_test_case()); skipped_tests.push_back(::testing::UnitTest::GetInstance()->current_test_info());
throw details::SkipTestExceptionBase(skip_message, true); throw details::SkipTestExceptionBase(skip_message, true);
} }
} }

Loading…
Cancel
Save