2017-12-21 07:45:38 +08:00
|
|
|
/*
|
2020-02-22 16:28:27 +08:00
|
|
|
* Copyright (C) 2017-2020 Intel Corporation
|
2017-12-21 07:45:38 +08:00
|
|
|
*
|
2018-09-18 15:11:08 +08:00
|
|
|
* SPDX-License-Identifier: MIT
|
2017-12-21 07:45:38 +08:00
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
2020-02-23 05:50:57 +08:00
|
|
|
#include "opencl/source/sampler/sampler.h"
|
2020-02-23 22:20:22 +08:00
|
|
|
#include "opencl/test/unit_test/mocks/mock_context.h"
|
2019-02-27 18:39:32 +08:00
|
|
|
|
2017-12-21 07:45:38 +08:00
|
|
|
#include "gtest/gtest.h"
|
|
|
|
|
2019-03-26 18:59:46 +08:00
|
|
|
using namespace NEO;
|
2017-12-21 07:45:38 +08:00
|
|
|
|
2020-05-18 22:13:59 +08:00
|
|
|
TEST(GetSamplerInfo, GivenInvalidFlagsWhenGettingSamplerInfoThenInvalidValueErrorIsReturnedAndValueSizeRetIsNotUpdated) {
|
2017-12-21 07:45:38 +08:00
|
|
|
MockContext context;
|
|
|
|
auto retVal = CL_INVALID_VALUE;
|
|
|
|
auto normalizedCoords = CL_TRUE;
|
|
|
|
auto addressingMode = CL_ADDRESS_MIRRORED_REPEAT;
|
|
|
|
auto filterMode = CL_FILTER_NEAREST;
|
|
|
|
auto sampler = Sampler::create(&context, normalizedCoords,
|
|
|
|
addressingMode, filterMode, retVal);
|
|
|
|
|
2020-05-18 22:13:59 +08:00
|
|
|
size_t valueSizeRet = 0x1234;
|
|
|
|
|
|
|
|
retVal = sampler->getInfo(0, 0, nullptr, &valueSizeRet);
|
2017-12-21 07:45:38 +08:00
|
|
|
EXPECT_EQ(CL_INVALID_VALUE, retVal);
|
2020-05-18 22:13:59 +08:00
|
|
|
EXPECT_EQ(0x1234u, valueSizeRet);
|
2017-12-21 07:45:38 +08:00
|
|
|
|
|
|
|
delete sampler;
|
|
|
|
}
|
|
|
|
|
|
|
|
struct GetSamplerInfo : public ::testing::TestWithParam<uint32_t /*cl_sampler_info*/> {
|
|
|
|
void SetUp() override {
|
|
|
|
param = GetParam();
|
|
|
|
}
|
|
|
|
|
|
|
|
cl_sampler_info param;
|
|
|
|
};
|
|
|
|
|
2020-09-28 14:39:33 +08:00
|
|
|
TEST_P(GetSamplerInfo, GivenValidParamWhenGettingInfoThenSuccessIsReturned) {
|
2017-12-21 07:45:38 +08:00
|
|
|
MockContext context;
|
|
|
|
auto retVal = CL_INVALID_VALUE;
|
|
|
|
auto normalizedCoords = CL_TRUE;
|
|
|
|
auto addressingMode = CL_ADDRESS_MIRRORED_REPEAT;
|
|
|
|
auto filterMode = CL_FILTER_NEAREST;
|
|
|
|
auto sampler = Sampler::create(&context, normalizedCoords, addressingMode,
|
2018-04-10 23:36:34 +08:00
|
|
|
filterMode, CL_FILTER_NEAREST, 2.0f, 3.0f, retVal);
|
2017-12-21 07:45:38 +08:00
|
|
|
|
|
|
|
size_t sizeReturned = 0;
|
|
|
|
retVal = sampler->getInfo(param, 0, nullptr, &sizeReturned);
|
|
|
|
ASSERT_EQ(CL_SUCCESS, retVal) << " param = " << param;
|
|
|
|
ASSERT_NE(0u, sizeReturned);
|
|
|
|
|
|
|
|
auto *object = new char[sizeReturned];
|
|
|
|
retVal = sampler->getInfo(param, sizeReturned, object, nullptr);
|
|
|
|
EXPECT_EQ(CL_SUCCESS, retVal);
|
|
|
|
|
|
|
|
delete[] object;
|
|
|
|
delete sampler;
|
|
|
|
}
|
|
|
|
|
|
|
|
// Define new command types to run the parameterized tests
|
|
|
|
cl_sampler_info samplerInfoParams[] = {
|
|
|
|
CL_SAMPLER_REFERENCE_COUNT,
|
|
|
|
CL_SAMPLER_CONTEXT,
|
|
|
|
CL_SAMPLER_NORMALIZED_COORDS,
|
|
|
|
CL_SAMPLER_ADDRESSING_MODE,
|
2018-04-10 23:36:34 +08:00
|
|
|
CL_SAMPLER_FILTER_MODE,
|
|
|
|
CL_SAMPLER_MIP_FILTER_MODE,
|
|
|
|
CL_SAMPLER_LOD_MIN,
|
|
|
|
CL_SAMPLER_LOD_MAX};
|
2017-12-21 07:45:38 +08:00
|
|
|
|
|
|
|
INSTANTIATE_TEST_CASE_P(
|
|
|
|
Sampler_,
|
|
|
|
GetSamplerInfo,
|
|
|
|
testing::ValuesIn(samplerInfoParams));
|