mirror of
https://github.com/KhronosGroup/OpenCL-CTS.git
synced 2026-03-19 06:09:01 +00:00
Implement negative tests for clEnqueueMarkerWithWaitList (#2502)
This change adds negative tests for `clEnqueueMarkerWithWaitList` Signed-off-by: Michael Rizkalla <michael.rizkalla@arm.com>
This commit is contained in:
@@ -6,6 +6,7 @@ set(${MODULE_NAME}_SOURCES
|
|||||||
main.cpp
|
main.cpp
|
||||||
negative_platform.cpp
|
negative_platform.cpp
|
||||||
negative_queue.cpp
|
negative_queue.cpp
|
||||||
|
negative_enqueue_marker.cpp
|
||||||
negative_enqueue_map_image.cpp
|
negative_enqueue_map_image.cpp
|
||||||
test_api_consistency.cpp
|
test_api_consistency.cpp
|
||||||
test_bool.cpp
|
test_bool.cpp
|
||||||
|
|||||||
97
test_conformance/api/negative_enqueue_marker.cpp
Normal file
97
test_conformance/api/negative_enqueue_marker.cpp
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
//
|
||||||
|
// Copyright (c) 2025 The Khronos Group Inc.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
#include "testBase.h"
|
||||||
|
#include "harness/typeWrappers.h"
|
||||||
|
|
||||||
|
REGISTER_TEST(negative_enqueue_marker_with_wait_list)
|
||||||
|
{
|
||||||
|
cl_platform_id platform = getPlatformFromDevice(device);
|
||||||
|
cl_context_properties props[3] = {
|
||||||
|
CL_CONTEXT_PLATFORM, reinterpret_cast<cl_context_properties>(platform),
|
||||||
|
0
|
||||||
|
};
|
||||||
|
|
||||||
|
cl_int err = CL_SUCCESS;
|
||||||
|
clContextWrapper ctx =
|
||||||
|
clCreateContext(props, 1, &device, nullptr, nullptr, &err);
|
||||||
|
test_error(err, "clCreateContext failed");
|
||||||
|
|
||||||
|
cl_event ret_event = nullptr;
|
||||||
|
|
||||||
|
err = clEnqueueMarkerWithWaitList(nullptr, 0, nullptr, &ret_event);
|
||||||
|
test_failure_error_ret(err, CL_INVALID_COMMAND_QUEUE,
|
||||||
|
"clEnqueueMarkerWithWaitList should return "
|
||||||
|
"CL_INVALID_COMMAND_QUEUE when: \"command_queue is "
|
||||||
|
"not a valid host command-queue\" using a nullptr",
|
||||||
|
TEST_FAIL);
|
||||||
|
test_assert_error(ret_event == nullptr,
|
||||||
|
"if clEnqueueMarkerWithWaitList failed, no ret_event "
|
||||||
|
"should be created");
|
||||||
|
|
||||||
|
clEventWrapper different_ctx_event = clCreateUserEvent(ctx, &err);
|
||||||
|
test_error(err, "clCreateUserEvent failed");
|
||||||
|
|
||||||
|
err =
|
||||||
|
clEnqueueMarkerWithWaitList(queue, 1, &different_ctx_event, &ret_event);
|
||||||
|
test_failure_error_ret(
|
||||||
|
err, CL_INVALID_CONTEXT,
|
||||||
|
"clEnqueueMarkerWithWaitList should return CL_INVALID_CONTEXT when: "
|
||||||
|
"\"The context of both the command queue and the events in ret_event "
|
||||||
|
"wait list are not the same\"",
|
||||||
|
TEST_FAIL);
|
||||||
|
test_assert_error(ret_event == nullptr,
|
||||||
|
"if clEnqueueMarkerWithWaitList failed, no ret_event "
|
||||||
|
"should be created");
|
||||||
|
|
||||||
|
err = clEnqueueMarkerWithWaitList(queue, 1, nullptr, &ret_event);
|
||||||
|
test_failure_error_ret(
|
||||||
|
err, CL_INVALID_EVENT_WAIT_LIST,
|
||||||
|
"clEnqueueMarkerWithWaitList should return CL_INVALID_EVENT_WAIT_LIST "
|
||||||
|
"when: \"num_events_in_wait_list > 0 but event_wait_list is NULL\"",
|
||||||
|
TEST_FAIL);
|
||||||
|
test_assert_error(ret_event == nullptr,
|
||||||
|
"if clEnqueueMarkerWithWaitList failed, no ret_event "
|
||||||
|
"should be created");
|
||||||
|
|
||||||
|
|
||||||
|
clEventWrapper event = clCreateUserEvent(context, &err);
|
||||||
|
test_error(err, "clCreateUserEvent failed");
|
||||||
|
|
||||||
|
err = clEnqueueMarkerWithWaitList(queue, 0, &event, &ret_event);
|
||||||
|
test_failure_error_ret(
|
||||||
|
err, CL_INVALID_EVENT_WAIT_LIST,
|
||||||
|
"clEnqueueMarkerWithWaitList should return CL_INVALID_EVENT_WAIT_LIST "
|
||||||
|
"when: \"num_events_in_wait_list is 0 but event_wait_list is not "
|
||||||
|
"NULL\"",
|
||||||
|
TEST_FAIL);
|
||||||
|
test_assert_error(ret_event == nullptr,
|
||||||
|
"if clEnqueueMarkerWithWaitList failed, no ret_event "
|
||||||
|
"should be created");
|
||||||
|
|
||||||
|
cl_event invalid_event_wait_list[] = { nullptr };
|
||||||
|
err = clEnqueueMarkerWithWaitList(queue, 1, invalid_event_wait_list,
|
||||||
|
&ret_event);
|
||||||
|
test_failure_error_ret(
|
||||||
|
err, CL_INVALID_EVENT_WAIT_LIST,
|
||||||
|
"clEnqueueMarkerWithWaitList should return CL_INVALID_EVENT_WAIT_LIST "
|
||||||
|
"when: \"event objects in event_wait_list are not valid events\"",
|
||||||
|
TEST_FAIL);
|
||||||
|
test_assert_error(ret_event == nullptr,
|
||||||
|
"if clEnqueueMarkerWithWaitList failed, no ret_event "
|
||||||
|
"should be created");
|
||||||
|
|
||||||
|
return TEST_PASS;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user