Commit cc47edb8 authored by Ilya Lavrenov's avatar Ilya Lavrenov Committed by Konstantin Matskevich

more strict checks and reseting state

parent aa23a842
...@@ -40,6 +40,7 @@ ...@@ -40,6 +40,7 @@
//M*/ //M*/
#include "test_precomp.hpp" #include "test_precomp.hpp"
#include "opencv2/ts/ocl_test.hpp"
#include <string> #include <string>
#include <iostream> #include <iostream>
...@@ -249,8 +250,13 @@ TEST(UMat, Sync) ...@@ -249,8 +250,13 @@ TEST(UMat, Sync)
EXPECT_EQ(0, cv::norm(um.getMat(ACCESS_READ), cv::Mat(um.size(), um.type(), 19), NORM_INF)); EXPECT_EQ(0, cv::norm(um.getMat(ACCESS_READ), cv::Mat(um.size(), um.type(), 19), NORM_INF));
} }
#define EXPECT_MAT_NEAR(m1, m2) ASSERT_EQ(0, cv::norm(m1, m1, cv::NORM_INF))
TEST(UMat, setOpenCL) TEST(UMat, setOpenCL)
{ {
// save the current state
bool useOCL = ocl::useOpenCL();
Mat m = (Mat_<uchar>(3,3)<<0,1,2,3,4,5,6,7,8); Mat m = (Mat_<uchar>(3,3)<<0,1,2,3,4,5,6,7,8);
ocl::setUseOpenCL(true); ocl::setUseOpenCL(true);
...@@ -264,12 +270,25 @@ TEST(UMat, setOpenCL) ...@@ -264,12 +270,25 @@ TEST(UMat, setOpenCL)
ocl::setUseOpenCL(true); ocl::setUseOpenCL(true);
countNonZero(um1); countNonZero(um1);
countNonZero(um2); countNonZero(um2);
um1.copyTo(um2); um1.copyTo(um2);
EXPECT_MAT_NEAR(um1, um2);
EXPECT_MAT_NEAR(um1, m);
um2.copyTo(um1); um2.copyTo(um1);
EXPECT_MAT_NEAR(um1, m);
EXPECT_MAT_NEAR(um1, um2);
ocl::setUseOpenCL(false); ocl::setUseOpenCL(false);
countNonZero(um1); countNonZero(um1);
countNonZero(um2); countNonZero(um2);
um1.copyTo(um2); um1.copyTo(um2);
EXPECT_MAT_NEAR(um1, um2);
EXPECT_MAT_NEAR(um1, m);
um2.copyTo(um1); um2.copyTo(um1);
EXPECT_MAT_NEAR(um1, um2);
EXPECT_MAT_NEAR(um1, m);
// reset state to the previous one
ocl::setUseOpenCL(useOCL);
} }
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