From cc47edb8504bb9e500667540183ee9e1d7fc4c0a Mon Sep 17 00:00:00 2001 From: Ilya Lavrenov Date: Sun, 2 Feb 2014 15:31:14 +0400 Subject: [PATCH] more strict checks and reseting state --- modules/core/test/test_umat.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/modules/core/test/test_umat.cpp b/modules/core/test/test_umat.cpp index 270de1323f..4c3f09a17d 100644 --- a/modules/core/test/test_umat.cpp +++ b/modules/core/test/test_umat.cpp @@ -40,6 +40,7 @@ //M*/ #include "test_precomp.hpp" +#include "opencv2/ts/ocl_test.hpp" #include #include @@ -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)); } +#define EXPECT_MAT_NEAR(m1, m2) ASSERT_EQ(0, cv::norm(m1, m1, cv::NORM_INF)) + TEST(UMat, setOpenCL) { + // save the current state + bool useOCL = ocl::useOpenCL(); + Mat m = (Mat_(3,3)<<0,1,2,3,4,5,6,7,8); ocl::setUseOpenCL(true); @@ -264,12 +270,25 @@ TEST(UMat, setOpenCL) ocl::setUseOpenCL(true); countNonZero(um1); countNonZero(um2); + um1.copyTo(um2); + EXPECT_MAT_NEAR(um1, um2); + EXPECT_MAT_NEAR(um1, m); um2.copyTo(um1); + EXPECT_MAT_NEAR(um1, m); + EXPECT_MAT_NEAR(um1, um2); ocl::setUseOpenCL(false); countNonZero(um1); countNonZero(um2); + um1.copyTo(um2); + EXPECT_MAT_NEAR(um1, um2); + EXPECT_MAT_NEAR(um1, m); um2.copyTo(um1); + EXPECT_MAT_NEAR(um1, um2); + EXPECT_MAT_NEAR(um1, m); + + // reset state to the previous one + ocl::setUseOpenCL(useOCL); }