Path: blob/master/modules/core/test/ocl/test_image2d.cpp
16339 views
// This file is part of OpenCV project.1// It is subject to the license terms in the LICENSE file found in the top-level directory2// of this distribution and at http://opencv.org/license.html.34// Copyright (C) 2014, Itseez, Inc., all rights reserved.5// Third party copyrights are property of their respective owners.67#include "../test_precomp.hpp"8#include "opencv2/ts/ocl_test.hpp"910#ifdef HAVE_OPENCL1112namespace opencv_test {13namespace ocl {1415TEST(Image2D, createAliasEmptyUMat)16{17if (cv::ocl::haveOpenCL())18{19UMat um;20EXPECT_FALSE(cv::ocl::Image2D::canCreateAlias(um));21}22else23std::cout << "OpenCL runtime not found. Test skipped." << std::endl;24}2526TEST(Image2D, createImage2DWithEmptyUMat)27{28if (cv::ocl::haveOpenCL())29{30UMat um;31EXPECT_ANY_THROW(cv::ocl::Image2D image(um));32}33else34std::cout << "OpenCL runtime not found. Test skipped." << std::endl;35}3637TEST(Image2D, createAlias)38{39if (cv::ocl::haveOpenCL())40{41const cv::ocl::Device & d = cv::ocl::Device::getDefault();42int minor = d.deviceVersionMinor(), major = d.deviceVersionMajor();4344// aliases is OpenCL 1.2 extension45if (1 < major || (1 == major && 2 <= minor))46{47UMat um(128, 128, CV_8UC1);48bool isFormatSupported = false, canCreateAlias = false;4950EXPECT_NO_THROW(isFormatSupported = cv::ocl::Image2D::isFormatSupported(CV_8U, 1, false));51EXPECT_NO_THROW(canCreateAlias = cv::ocl::Image2D::canCreateAlias(um));5253if (isFormatSupported && canCreateAlias)54{55EXPECT_NO_THROW(cv::ocl::Image2D image(um, false, true));56}57else58std::cout << "Impossible to create alias for selected image. Test skipped." << std::endl;59}60}61else62std::cout << "OpenCL runtime not found. Test skipped" << std::endl;63}6465TEST(Image2D, turnOffOpenCL)66{67if (cv::ocl::haveOpenCL())68{69// save the current state70bool useOCL = cv::ocl::useOpenCL();71bool isFormatSupported = false;7273cv::ocl::setUseOpenCL(true);74UMat um(128, 128, CV_8UC1);7576cv::ocl::setUseOpenCL(false);77EXPECT_NO_THROW(isFormatSupported = cv::ocl::Image2D::isFormatSupported(CV_8U, 1, true));7879if (isFormatSupported)80{81EXPECT_NO_THROW(cv::ocl::Image2D image(um));82}83else84std::cout << "CV_8UC1 is not supported for OpenCL images. Test skipped." << std::endl;8586// reset state to the previous one87cv::ocl::setUseOpenCL(useOCL);88}89else90std::cout << "OpenCL runtime not found. Test skipped." << std::endl;91}9293} } // namespace opencv_test::ocl9495#endif // HAVE_OPENCL9697