| // Copyright 2019 The IREE Authors |
| // |
| // Licensed under the Apache License v2.0 with LLVM Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| |
| #ifndef IREE_HAL_CTS_COMMAND_BUFFER_TEST_H_ |
| #define IREE_HAL_CTS_COMMAND_BUFFER_TEST_H_ |
| |
| #include <cstdint> |
| #include <vector> |
| |
| #include "iree/base/api.h" |
| #include "iree/hal/api.h" |
| #include "iree/hal/cts/cts_test_base.h" |
| #include "iree/testing/gtest.h" |
| #include "iree/testing/status_matchers.h" |
| |
| namespace iree::hal::cts { |
| |
| using ::testing::ContainerEq; |
| |
| class CommandBufferTest : public CTSTestBase<> {}; |
| |
| TEST_F(CommandBufferTest, Create) { |
| iree_hal_command_buffer_t* command_buffer = NULL; |
| IREE_ASSERT_OK(iree_hal_command_buffer_create( |
| device_, IREE_HAL_COMMAND_BUFFER_MODE_ONE_SHOT, |
| IREE_HAL_COMMAND_CATEGORY_DISPATCH, IREE_HAL_QUEUE_AFFINITY_ANY, |
| /*binding_capacity=*/0, &command_buffer)); |
| |
| EXPECT_TRUE((iree_hal_command_buffer_allowed_categories(command_buffer) & |
| IREE_HAL_COMMAND_CATEGORY_DISPATCH) == |
| IREE_HAL_COMMAND_CATEGORY_DISPATCH); |
| |
| iree_hal_command_buffer_release(command_buffer); |
| } |
| |
| TEST_F(CommandBufferTest, BeginEnd) { |
| iree_hal_command_buffer_t* command_buffer = NULL; |
| IREE_ASSERT_OK(iree_hal_command_buffer_create( |
| device_, IREE_HAL_COMMAND_BUFFER_MODE_ONE_SHOT, |
| IREE_HAL_COMMAND_CATEGORY_DISPATCH, IREE_HAL_QUEUE_AFFINITY_ANY, |
| /*binding_capacity=*/0, &command_buffer)); |
| |
| IREE_ASSERT_OK(iree_hal_command_buffer_begin(command_buffer)); |
| IREE_ASSERT_OK(iree_hal_command_buffer_end(command_buffer)); |
| |
| iree_hal_command_buffer_release(command_buffer); |
| } |
| |
| TEST_F(CommandBufferTest, SubmitEmpty) { |
| iree_hal_command_buffer_t* command_buffer = NULL; |
| IREE_ASSERT_OK(iree_hal_command_buffer_create( |
| device_, IREE_HAL_COMMAND_BUFFER_MODE_ONE_SHOT, |
| IREE_HAL_COMMAND_CATEGORY_DISPATCH, IREE_HAL_QUEUE_AFFINITY_ANY, |
| /*binding_capacity=*/0, &command_buffer)); |
| |
| IREE_ASSERT_OK(iree_hal_command_buffer_begin(command_buffer)); |
| IREE_ASSERT_OK(iree_hal_command_buffer_end(command_buffer)); |
| |
| IREE_ASSERT_OK(SubmitCommandBufferAndWait(command_buffer)); |
| |
| iree_hal_command_buffer_release(command_buffer); |
| } |
| |
| } // namespace iree::hal::cts |
| |
| #endif // IREE_HAL_CTS_COMMAND_BUFFER_TEST_H_ |