blob: aa7819c6ae1ea769333b6c4b0b6ac9ba202a22bf [file] [log] [blame]
// 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_