123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- // This file is part of OpenCV project.
- // It is subject to the license terms in the LICENSE file found in the top-level directory
- // of this distribution and at http://opencv.org/license.html.
- // Copyright (C) 2014, Itseez, Inc., all rights reserved.
- // Third party copyrights are property of their respective owners.
- #include "../test_precomp.hpp"
- #include "opencv2/ts/ocl_test.hpp"
- #ifdef HAVE_OPENCL
- namespace opencv_test {
- namespace ocl {
- TEST(Image2D, createAliasEmptyUMat)
- {
- if (cv::ocl::haveOpenCL())
- {
- UMat um;
- EXPECT_FALSE(cv::ocl::Image2D::canCreateAlias(um));
- }
- else
- std::cout << "OpenCL runtime not found. Test skipped." << std::endl;
- }
- TEST(Image2D, createImage2DWithEmptyUMat)
- {
- if (cv::ocl::haveOpenCL())
- {
- UMat um;
- EXPECT_ANY_THROW(cv::ocl::Image2D image(um));
- }
- else
- std::cout << "OpenCL runtime not found. Test skipped." << std::endl;
- }
- TEST(Image2D, createAlias)
- {
- if (cv::ocl::haveOpenCL())
- {
- const cv::ocl::Device & d = cv::ocl::Device::getDefault();
- int minor = d.deviceVersionMinor(), major = d.deviceVersionMajor();
- // aliases is OpenCL 1.2 extension
- if (1 < major || (1 == major && 2 <= minor))
- {
- UMat um(128, 128, CV_8UC1);
- bool isFormatSupported = false, canCreateAlias = false;
- EXPECT_NO_THROW(isFormatSupported = cv::ocl::Image2D::isFormatSupported(CV_8U, 1, false));
- EXPECT_NO_THROW(canCreateAlias = cv::ocl::Image2D::canCreateAlias(um));
- if (isFormatSupported && canCreateAlias)
- {
- EXPECT_NO_THROW(cv::ocl::Image2D image(um, false, true));
- }
- else
- std::cout << "Impossible to create alias for selected image. Test skipped." << std::endl;
- }
- }
- else
- std::cout << "OpenCL runtime not found. Test skipped" << std::endl;
- }
- TEST(Image2D, turnOffOpenCL)
- {
- if (cv::ocl::haveOpenCL())
- {
- // save the current state
- bool useOCL = cv::ocl::useOpenCL();
- bool isFormatSupported = false;
- cv::ocl::setUseOpenCL(true);
- UMat um(128, 128, CV_8UC1);
- cv::ocl::setUseOpenCL(false);
- EXPECT_NO_THROW(isFormatSupported = cv::ocl::Image2D::isFormatSupported(CV_8U, 1, true));
- if (isFormatSupported)
- {
- EXPECT_NO_THROW(cv::ocl::Image2D image(um));
- }
- else
- std::cout << "CV_8UC1 is not supported for OpenCL images. Test skipped." << std::endl;
-
- // reset state to the previous one
- cv::ocl::setUseOpenCL(useOCL);
- }
- else
- std::cout << "OpenCL runtime not found. Test skipped." << std::endl;
- }
- } } // namespace opencv_test::ocl
- #endif // HAVE_OPENCL
|