Merge remote-tracking branch 'origin/2.4' into merge-2.4
Conflicts: modules/ocl/include/opencv2/ocl/ocl.hpp modules/ocl/src/arithm.cpp modules/ocl/src/build_warps.cpp modules/ocl/src/color.cpp modules/ocl/src/haar.cpp modules/ocl/src/imgproc.cpp modules/ocl/src/split_merge.cpp modules/ocl/test/test_color.cpp samples/cpp/3calibration.cpp samples/cpp/OpenEXRimages_HDR_Retina_toneMapping.cpp samples/cpp/OpenEXRimages_HDR_Retina_toneMapping_video.cpp samples/cpp/Qt_sample/main.cpp samples/cpp/camshiftdemo.cpp samples/cpp/descriptor_extractor_matcher.cpp samples/cpp/distrans.cpp samples/cpp/generic_descriptor_match.cpp samples/cpp/grabcut.cpp samples/cpp/morphology2.cpp samples/cpp/segment_objects.cpp samples/cpp/stereo_calib.cpp samples/cpp/tutorial_code/Histograms_Matching/compareHist_Demo.cpp samples/cpp/tutorial_code/core/mat_mask_operations/mat_mask_operations.cpp samples/cpp/tutorial_code/introduction/display_image/display_image.cpp samples/cpp/tutorial_code/introduction/windows_visual_studio_Opencv/Test.cpp samples/cpp/tutorial_code/objectDetection/objectDetection.cpp samples/cpp/tutorial_code/objectDetection/objectDetection2.cpp samples/cpp/video_dmtx.cpp
This commit is contained in:
@@ -237,6 +237,7 @@ typedef struct CV_EXPORTS performance_metrics
|
||||
TERM_TIME = 1,
|
||||
TERM_INTERRUPT = 2,
|
||||
TERM_EXCEPTION = 3,
|
||||
TERM_SKIP_TEST = 4, // there are some limitations and test should be skipped
|
||||
TERM_UNKNOWN = -1
|
||||
};
|
||||
|
||||
@@ -273,6 +274,8 @@ public:
|
||||
static enum PERF_STRATEGY getPerformanceStrategy();
|
||||
static enum PERF_STRATEGY setPerformanceStrategy(enum PERF_STRATEGY strategy);
|
||||
|
||||
class PerfSkipTestException: public cv::Exception {};
|
||||
|
||||
protected:
|
||||
virtual void PerfTestBody() = 0;
|
||||
|
||||
|
@@ -1174,7 +1174,14 @@ void TestBase::reportMetrics(bool toJUnitXML)
|
||||
{
|
||||
performance_metrics& m = calcMetrics();
|
||||
|
||||
if (toJUnitXML)
|
||||
if (m.terminationReason == performance_metrics::TERM_SKIP_TEST)
|
||||
{
|
||||
if (toJUnitXML)
|
||||
{
|
||||
RecordProperty("custom_status", "skipped");
|
||||
}
|
||||
}
|
||||
else if (toJUnitXML)
|
||||
{
|
||||
RecordProperty("bytesIn", (int)m.bytesIn);
|
||||
RecordProperty("bytesOut", (int)m.bytesOut);
|
||||
@@ -1266,21 +1273,30 @@ void TestBase::SetUp()
|
||||
|
||||
void TestBase::TearDown()
|
||||
{
|
||||
if (!HasFailure() && !verified)
|
||||
ADD_FAILURE() << "The test has no sanity checks. There should be at least one check at the end of performance test.";
|
||||
|
||||
validateMetrics();
|
||||
if (HasFailure())
|
||||
reportMetrics(false);
|
||||
if (metrics.terminationReason == performance_metrics::TERM_SKIP_TEST)
|
||||
{
|
||||
LOGI("\tTest was skipped");
|
||||
GTEST_SUCCEED() << "Test was skipped";
|
||||
}
|
||||
else
|
||||
{
|
||||
const ::testing::TestInfo* const test_info = ::testing::UnitTest::GetInstance()->current_test_info();
|
||||
const char* type_param = test_info->type_param();
|
||||
const char* value_param = test_info->value_param();
|
||||
if (value_param) printf("[ VALUE ] \t%s\n", value_param), fflush(stdout);
|
||||
if (type_param) printf("[ TYPE ] \t%s\n", type_param), fflush(stdout);
|
||||
reportMetrics(true);
|
||||
if (!HasFailure() && !verified)
|
||||
ADD_FAILURE() << "The test has no sanity checks. There should be at least one check at the end of performance test.";
|
||||
|
||||
validateMetrics();
|
||||
if (HasFailure())
|
||||
{
|
||||
reportMetrics(false);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
const ::testing::TestInfo* const test_info = ::testing::UnitTest::GetInstance()->current_test_info();
|
||||
const char* type_param = test_info->type_param();
|
||||
const char* value_param = test_info->value_param();
|
||||
if (value_param) printf("[ VALUE ] \t%s\n", value_param), fflush(stdout);
|
||||
if (type_param) printf("[ TYPE ] \t%s\n", type_param), fflush(stdout);
|
||||
reportMetrics(true);
|
||||
}
|
||||
|
||||
std::string TestBase::getDataPath(const std::string& relativePath)
|
||||
@@ -1330,6 +1346,11 @@ void TestBase::RunPerfTestBody()
|
||||
{
|
||||
this->PerfTestBody();
|
||||
}
|
||||
catch(PerfSkipTestException&)
|
||||
{
|
||||
metrics.terminationReason = performance_metrics::TERM_SKIP_TEST;
|
||||
return;
|
||||
}
|
||||
catch(PerfEarlyExitException&)
|
||||
{
|
||||
metrics.terminationReason = performance_metrics::TERM_INTERRUPT;
|
||||
|
Reference in New Issue
Block a user