2023-01-16 11:02:17 +04:00
|
|
|
// Copyright (C) 2018-2023 Intel Corporation
|
2022-08-14 23:51:34 +08:00
|
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
|
//
|
2023-02-08 15:01:00 +04:00
|
|
|
|
2022-08-14 23:51:34 +08:00
|
|
|
#include "ov_test.hpp"
|
|
|
|
|
|
2023-02-08 15:01:00 +04:00
|
|
|
namespace {
|
|
|
|
|
|
2023-03-14 20:34:33 +08:00
|
|
|
class ov_compiled_model_test : public ov_capi_test_base {
|
|
|
|
|
void SetUp() override {
|
|
|
|
|
ov_capi_test_base::SetUp();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void TearDown() override {
|
|
|
|
|
ov_capi_test_base::TearDown();
|
|
|
|
|
}
|
|
|
|
|
};
|
2023-02-08 15:01:00 +04:00
|
|
|
|
2023-03-14 20:34:33 +08:00
|
|
|
INSTANTIATE_TEST_SUITE_P(device_name, ov_compiled_model_test, ::testing::Values("CPU"));
|
2023-02-08 15:01:00 +04:00
|
|
|
|
2023-03-14 20:34:33 +08:00
|
|
|
TEST_P(ov_compiled_model_test, ov_compiled_model_inputs_size) {
|
2022-08-14 23:51:34 +08:00
|
|
|
auto device_name = GetParam();
|
|
|
|
|
ov_core_t* core = nullptr;
|
2022-09-29 03:01:22 +08:00
|
|
|
OV_EXPECT_OK(ov_core_create(&core));
|
2022-09-29 22:00:47 +08:00
|
|
|
EXPECT_NE(nullptr, core);
|
2022-08-14 23:51:34 +08:00
|
|
|
|
|
|
|
|
ov_model_t* model = nullptr;
|
2023-03-14 20:34:33 +08:00
|
|
|
OV_EXPECT_OK(ov_core_read_model(core, xml_file_name.c_str(), bin_file_name.c_str(), &model));
|
2022-08-14 23:51:34 +08:00
|
|
|
EXPECT_NE(nullptr, model);
|
|
|
|
|
|
|
|
|
|
ov_compiled_model_t* compiled_model = nullptr;
|
2022-09-20 05:59:27 -07:00
|
|
|
OV_EXPECT_OK(ov_core_compile_model(core, model, device_name.c_str(), 0, &compiled_model));
|
2022-08-14 23:51:34 +08:00
|
|
|
EXPECT_NE(nullptr, compiled_model);
|
|
|
|
|
|
2022-09-15 11:37:23 +08:00
|
|
|
size_t input_size;
|
2022-09-29 03:01:22 +08:00
|
|
|
OV_EXPECT_OK(ov_compiled_model_inputs_size(compiled_model, &input_size));
|
2022-09-29 22:00:47 +08:00
|
|
|
EXPECT_NE(0, input_size);
|
2022-08-14 23:51:34 +08:00
|
|
|
|
|
|
|
|
ov_compiled_model_free(compiled_model);
|
|
|
|
|
ov_model_free(model);
|
|
|
|
|
ov_core_free(core);
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-14 20:34:33 +08:00
|
|
|
TEST_P(ov_compiled_model_test, ov_compiled_model_input) {
|
2022-08-14 23:51:34 +08:00
|
|
|
auto device_name = GetParam();
|
|
|
|
|
ov_core_t* core = nullptr;
|
2022-09-29 03:01:22 +08:00
|
|
|
OV_EXPECT_OK(ov_core_create(&core));
|
2022-09-29 22:00:47 +08:00
|
|
|
EXPECT_NE(nullptr, core);
|
2022-08-14 23:51:34 +08:00
|
|
|
|
|
|
|
|
ov_model_t* model = nullptr;
|
2023-03-14 20:34:33 +08:00
|
|
|
OV_EXPECT_OK(ov_core_read_model(core, xml_file_name.c_str(), bin_file_name.c_str(), &model));
|
2022-08-14 23:51:34 +08:00
|
|
|
EXPECT_NE(nullptr, model);
|
|
|
|
|
|
|
|
|
|
ov_compiled_model_t* compiled_model = nullptr;
|
2022-09-20 05:59:27 -07:00
|
|
|
OV_EXPECT_OK(ov_core_compile_model(core, model, device_name.c_str(), 0, &compiled_model));
|
2022-08-14 23:51:34 +08:00
|
|
|
EXPECT_NE(nullptr, compiled_model);
|
|
|
|
|
|
2022-09-15 11:37:23 +08:00
|
|
|
ov_output_const_port_t* input_port = nullptr;
|
2022-09-29 03:01:22 +08:00
|
|
|
OV_EXPECT_OK(ov_compiled_model_input(compiled_model, &input_port));
|
2022-09-29 22:00:47 +08:00
|
|
|
EXPECT_NE(nullptr, input_port);
|
2022-08-14 23:51:34 +08:00
|
|
|
|
2022-09-15 11:37:23 +08:00
|
|
|
ov_output_const_port_free(input_port);
|
|
|
|
|
ov_compiled_model_free(compiled_model);
|
|
|
|
|
ov_model_free(model);
|
|
|
|
|
ov_core_free(core);
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-14 20:34:33 +08:00
|
|
|
TEST_P(ov_compiled_model_test, ov_compiled_model_input_by_index) {
|
2022-09-15 11:37:23 +08:00
|
|
|
auto device_name = GetParam();
|
|
|
|
|
ov_core_t* core = nullptr;
|
2022-09-29 03:01:22 +08:00
|
|
|
OV_EXPECT_OK(ov_core_create(&core));
|
2022-09-29 22:00:47 +08:00
|
|
|
EXPECT_NE(nullptr, core);
|
2022-09-15 11:37:23 +08:00
|
|
|
|
|
|
|
|
ov_model_t* model = nullptr;
|
2023-03-14 20:34:33 +08:00
|
|
|
OV_EXPECT_OK(ov_core_read_model(core, xml_file_name.c_str(), bin_file_name.c_str(), &model));
|
2022-09-29 22:00:47 +08:00
|
|
|
EXPECT_NE(nullptr, model);
|
2022-09-15 11:37:23 +08:00
|
|
|
|
|
|
|
|
ov_compiled_model_t* compiled_model = nullptr;
|
2022-09-20 05:59:27 -07:00
|
|
|
OV_EXPECT_OK(ov_core_compile_model(core, model, device_name.c_str(), 0, &compiled_model));
|
2022-09-15 11:37:23 +08:00
|
|
|
EXPECT_NE(nullptr, compiled_model);
|
|
|
|
|
|
|
|
|
|
ov_output_const_port_t* input_port = nullptr;
|
2022-09-29 03:01:22 +08:00
|
|
|
OV_EXPECT_OK(ov_compiled_model_input_by_index(compiled_model, 0, &input_port));
|
2022-09-29 22:00:47 +08:00
|
|
|
EXPECT_NE(nullptr, input_port);
|
2022-09-15 11:37:23 +08:00
|
|
|
|
|
|
|
|
ov_shape_t shape;
|
2022-09-29 22:00:47 +08:00
|
|
|
OV_ASSERT_OK(ov_const_port_get_shape(input_port, &shape));
|
2022-09-15 11:37:23 +08:00
|
|
|
ov_shape_free(&shape);
|
|
|
|
|
|
|
|
|
|
ov_output_const_port_free(input_port);
|
|
|
|
|
ov_compiled_model_free(compiled_model);
|
|
|
|
|
ov_model_free(model);
|
|
|
|
|
ov_core_free(core);
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-14 20:34:33 +08:00
|
|
|
TEST_P(ov_compiled_model_test, ov_compiled_model_input_by_name) {
|
2022-09-15 11:37:23 +08:00
|
|
|
auto device_name = GetParam();
|
|
|
|
|
ov_core_t* core = nullptr;
|
2022-09-29 03:01:22 +08:00
|
|
|
OV_EXPECT_OK(ov_core_create(&core));
|
2022-09-29 22:00:47 +08:00
|
|
|
EXPECT_NE(nullptr, core);
|
2022-09-15 11:37:23 +08:00
|
|
|
|
|
|
|
|
ov_model_t* model = nullptr;
|
2023-03-14 20:34:33 +08:00
|
|
|
OV_EXPECT_OK(ov_core_read_model(core, xml_file_name.c_str(), bin_file_name.c_str(), &model));
|
2022-09-29 22:00:47 +08:00
|
|
|
EXPECT_NE(nullptr, model);
|
2022-09-15 11:37:23 +08:00
|
|
|
|
|
|
|
|
ov_compiled_model_t* compiled_model = nullptr;
|
2022-09-20 05:59:27 -07:00
|
|
|
OV_EXPECT_OK(ov_core_compile_model(core, model, device_name.c_str(), 0, &compiled_model));
|
2022-09-15 11:37:23 +08:00
|
|
|
EXPECT_NE(nullptr, compiled_model);
|
|
|
|
|
|
|
|
|
|
ov_output_const_port_t* input_port = nullptr;
|
2022-09-29 03:01:22 +08:00
|
|
|
OV_EXPECT_OK(ov_compiled_model_input_by_name(compiled_model, "data", &input_port));
|
2022-09-29 22:00:47 +08:00
|
|
|
EXPECT_NE(nullptr, input_port);
|
2022-09-15 11:37:23 +08:00
|
|
|
|
|
|
|
|
ov_shape_t shape;
|
2022-09-29 22:00:47 +08:00
|
|
|
OV_ASSERT_OK(ov_const_port_get_shape(input_port, &shape));
|
2022-09-15 11:37:23 +08:00
|
|
|
ov_shape_free(&shape);
|
|
|
|
|
|
|
|
|
|
ov_output_const_port_free(input_port);
|
2022-08-14 23:51:34 +08:00
|
|
|
ov_compiled_model_free(compiled_model);
|
|
|
|
|
ov_model_free(model);
|
|
|
|
|
ov_core_free(core);
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-14 20:34:33 +08:00
|
|
|
TEST_P(ov_compiled_model_test, get_property) {
|
2022-09-20 05:59:27 -07:00
|
|
|
auto device_name = GetParam();
|
|
|
|
|
ov_core_t* core = nullptr;
|
2022-09-29 03:01:22 +08:00
|
|
|
OV_EXPECT_OK(ov_core_create(&core));
|
2022-09-29 22:00:47 +08:00
|
|
|
EXPECT_NE(nullptr, core);
|
2022-09-20 05:59:27 -07:00
|
|
|
|
|
|
|
|
ov_model_t* model = nullptr;
|
2023-03-14 20:34:33 +08:00
|
|
|
OV_EXPECT_OK(ov_core_read_model(core, xml_file_name.c_str(), bin_file_name.c_str(), &model));
|
2022-09-20 05:59:27 -07:00
|
|
|
EXPECT_NE(nullptr, model);
|
|
|
|
|
|
|
|
|
|
ov_compiled_model_t* compiled_model = nullptr;
|
|
|
|
|
OV_EXPECT_OK(ov_core_compile_model(core, model, device_name.c_str(), 0, &compiled_model));
|
|
|
|
|
EXPECT_NE(nullptr, compiled_model);
|
|
|
|
|
|
|
|
|
|
const char* key = ov_property_key_supported_properties;
|
|
|
|
|
char* result = nullptr;
|
|
|
|
|
OV_EXPECT_OK(ov_compiled_model_get_property(compiled_model, key, &result));
|
|
|
|
|
ov_free(result);
|
|
|
|
|
|
|
|
|
|
ov_compiled_model_free(compiled_model);
|
|
|
|
|
ov_model_free(model);
|
|
|
|
|
ov_core_free(core);
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-14 20:34:33 +08:00
|
|
|
TEST_P(ov_compiled_model_test, create_compiled_model_with_property) {
|
2022-09-20 05:59:27 -07:00
|
|
|
auto device_name = GetParam();
|
|
|
|
|
ov_core_t* core = nullptr;
|
2022-09-29 03:01:22 +08:00
|
|
|
OV_EXPECT_OK(ov_core_create(&core));
|
2022-09-29 22:00:47 +08:00
|
|
|
EXPECT_NE(nullptr, core);
|
2022-09-20 05:59:27 -07:00
|
|
|
|
|
|
|
|
ov_model_t* model = nullptr;
|
2023-03-14 20:34:33 +08:00
|
|
|
OV_EXPECT_OK(ov_core_read_model(core, xml_file_name.c_str(), bin_file_name.c_str(), &model));
|
2022-09-20 05:59:27 -07:00
|
|
|
EXPECT_NE(nullptr, model);
|
|
|
|
|
|
2023-02-02 15:01:37 +08:00
|
|
|
const char* key = ov_property_key_hint_performance_mode;
|
|
|
|
|
const char* num = "LATENCY";
|
2022-09-20 05:59:27 -07:00
|
|
|
ov_compiled_model_t* compiled_model = nullptr;
|
|
|
|
|
OV_EXPECT_OK(ov_core_compile_model(core, model, device_name.c_str(), 2, &compiled_model, key, num));
|
|
|
|
|
EXPECT_NE(nullptr, compiled_model);
|
|
|
|
|
char* result = nullptr;
|
|
|
|
|
OV_EXPECT_OK(ov_compiled_model_get_property(compiled_model, key, &result));
|
2023-02-02 15:01:37 +08:00
|
|
|
EXPECT_STREQ(result, "LATENCY");
|
2022-09-20 05:59:27 -07:00
|
|
|
ov_free(result);
|
|
|
|
|
|
|
|
|
|
ov_compiled_model_free(compiled_model);
|
|
|
|
|
ov_model_free(model);
|
|
|
|
|
ov_core_free(core);
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-14 20:34:33 +08:00
|
|
|
TEST_P(ov_compiled_model_test, ov_compiled_model_outputs_size) {
|
2022-08-14 23:51:34 +08:00
|
|
|
auto device_name = GetParam();
|
|
|
|
|
ov_core_t* core = nullptr;
|
2022-09-29 03:01:22 +08:00
|
|
|
OV_EXPECT_OK(ov_core_create(&core));
|
2022-09-29 22:00:47 +08:00
|
|
|
EXPECT_NE(nullptr, core);
|
2022-08-14 23:51:34 +08:00
|
|
|
|
|
|
|
|
ov_model_t* model = nullptr;
|
2023-03-14 20:34:33 +08:00
|
|
|
OV_EXPECT_OK(ov_core_read_model(core, xml_file_name.c_str(), bin_file_name.c_str(), &model));
|
2022-08-14 23:51:34 +08:00
|
|
|
EXPECT_NE(nullptr, model);
|
|
|
|
|
|
|
|
|
|
ov_compiled_model_t* compiled_model = nullptr;
|
2022-09-20 05:59:27 -07:00
|
|
|
OV_EXPECT_OK(ov_core_compile_model(core, model, device_name.c_str(), 0, &compiled_model));
|
2022-08-14 23:51:34 +08:00
|
|
|
EXPECT_NE(nullptr, compiled_model);
|
|
|
|
|
|
2022-09-15 11:37:23 +08:00
|
|
|
size_t output_size;
|
2022-09-29 03:01:22 +08:00
|
|
|
OV_EXPECT_OK(ov_compiled_model_outputs_size(compiled_model, &output_size));
|
2022-09-29 22:00:47 +08:00
|
|
|
EXPECT_NE(0, output_size);
|
2022-08-14 23:51:34 +08:00
|
|
|
|
|
|
|
|
ov_compiled_model_free(compiled_model);
|
|
|
|
|
ov_model_free(model);
|
|
|
|
|
ov_core_free(core);
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-14 20:34:33 +08:00
|
|
|
TEST_P(ov_compiled_model_test, ov_compiled_model_output) {
|
2022-08-14 23:51:34 +08:00
|
|
|
auto device_name = GetParam();
|
|
|
|
|
ov_core_t* core = nullptr;
|
2022-09-29 03:01:22 +08:00
|
|
|
OV_EXPECT_OK(ov_core_create(&core));
|
2022-09-29 22:00:47 +08:00
|
|
|
EXPECT_NE(nullptr, core);
|
2022-08-14 23:51:34 +08:00
|
|
|
|
|
|
|
|
ov_model_t* model = nullptr;
|
2023-03-14 20:34:33 +08:00
|
|
|
OV_EXPECT_OK(ov_core_read_model(core, xml_file_name.c_str(), bin_file_name.c_str(), &model));
|
2022-08-14 23:51:34 +08:00
|
|
|
EXPECT_NE(nullptr, model);
|
|
|
|
|
|
|
|
|
|
ov_compiled_model_t* compiled_model = nullptr;
|
2022-09-20 05:59:27 -07:00
|
|
|
OV_EXPECT_OK(ov_core_compile_model(core, model, device_name.c_str(), 0, &compiled_model));
|
2022-08-14 23:51:34 +08:00
|
|
|
EXPECT_NE(nullptr, compiled_model);
|
|
|
|
|
|
2022-09-15 11:37:23 +08:00
|
|
|
ov_output_const_port_t* output_port = nullptr;
|
2022-09-29 03:01:22 +08:00
|
|
|
OV_EXPECT_OK(ov_compiled_model_output(compiled_model, &output_port));
|
2022-09-29 22:00:47 +08:00
|
|
|
EXPECT_NE(nullptr, output_port);
|
2022-08-14 23:51:34 +08:00
|
|
|
|
2022-09-15 11:37:23 +08:00
|
|
|
ov_output_const_port_free(output_port);
|
2022-08-14 23:51:34 +08:00
|
|
|
ov_compiled_model_free(compiled_model);
|
|
|
|
|
ov_model_free(model);
|
|
|
|
|
ov_core_free(core);
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-14 20:34:33 +08:00
|
|
|
TEST_P(ov_compiled_model_test, ov_compiled_model_output_by_index) {
|
2022-09-15 11:37:23 +08:00
|
|
|
auto device_name = GetParam();
|
|
|
|
|
ov_core_t* core = nullptr;
|
2022-09-29 03:01:22 +08:00
|
|
|
OV_EXPECT_OK(ov_core_create(&core));
|
2022-09-29 22:00:47 +08:00
|
|
|
EXPECT_NE(nullptr, core);
|
2022-09-15 11:37:23 +08:00
|
|
|
|
|
|
|
|
ov_model_t* model = nullptr;
|
2023-03-14 20:34:33 +08:00
|
|
|
OV_EXPECT_OK(ov_core_read_model(core, xml_file_name.c_str(), bin_file_name.c_str(), &model));
|
2022-09-29 22:00:47 +08:00
|
|
|
EXPECT_NE(nullptr, model);
|
2022-09-15 11:37:23 +08:00
|
|
|
|
|
|
|
|
ov_compiled_model_t* compiled_model = nullptr;
|
2022-09-20 05:59:27 -07:00
|
|
|
OV_EXPECT_OK(ov_core_compile_model(core, model, device_name.c_str(), 0, &compiled_model));
|
2022-09-15 11:37:23 +08:00
|
|
|
EXPECT_NE(nullptr, compiled_model);
|
|
|
|
|
|
|
|
|
|
ov_output_const_port_t* output_port = nullptr;
|
2022-09-29 03:01:22 +08:00
|
|
|
OV_EXPECT_OK(ov_compiled_model_output_by_index(compiled_model, 0, &output_port));
|
2022-09-29 22:00:47 +08:00
|
|
|
EXPECT_NE(nullptr, output_port);
|
2022-09-15 11:37:23 +08:00
|
|
|
|
|
|
|
|
ov_shape_t shape;
|
2022-09-29 22:00:47 +08:00
|
|
|
OV_ASSERT_OK(ov_const_port_get_shape(output_port, &shape));
|
2022-09-15 11:37:23 +08:00
|
|
|
ov_shape_free(&shape);
|
|
|
|
|
|
|
|
|
|
ov_output_const_port_free(output_port);
|
|
|
|
|
ov_compiled_model_free(compiled_model);
|
|
|
|
|
ov_model_free(model);
|
|
|
|
|
ov_core_free(core);
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-14 20:34:33 +08:00
|
|
|
TEST_P(ov_compiled_model_test, ov_compiled_model_output_by_name) {
|
2022-09-15 11:37:23 +08:00
|
|
|
auto device_name = GetParam();
|
|
|
|
|
ov_core_t* core = nullptr;
|
2022-09-29 03:01:22 +08:00
|
|
|
OV_EXPECT_OK(ov_core_create(&core));
|
2022-09-29 22:00:47 +08:00
|
|
|
EXPECT_NE(nullptr, core);
|
2022-09-15 11:37:23 +08:00
|
|
|
|
|
|
|
|
ov_model_t* model = nullptr;
|
2023-03-14 20:34:33 +08:00
|
|
|
OV_EXPECT_OK(ov_core_read_model(core, xml_file_name.c_str(), bin_file_name.c_str(), &model));
|
2022-09-29 22:00:47 +08:00
|
|
|
EXPECT_NE(nullptr, model);
|
2022-09-15 11:37:23 +08:00
|
|
|
|
|
|
|
|
ov_compiled_model_t* compiled_model = nullptr;
|
2022-09-20 05:59:27 -07:00
|
|
|
OV_EXPECT_OK(ov_core_compile_model(core, model, device_name.c_str(), 0, &compiled_model));
|
2022-09-15 11:37:23 +08:00
|
|
|
EXPECT_NE(nullptr, compiled_model);
|
|
|
|
|
|
|
|
|
|
ov_output_const_port_t* output_port = nullptr;
|
2023-03-14 20:34:33 +08:00
|
|
|
OV_EXPECT_OK(ov_compiled_model_output_by_name(compiled_model, "relu", &output_port));
|
2022-09-29 22:00:47 +08:00
|
|
|
EXPECT_NE(nullptr, output_port);
|
2022-09-15 11:37:23 +08:00
|
|
|
|
|
|
|
|
ov_shape_t shape;
|
2022-09-29 22:00:47 +08:00
|
|
|
OV_ASSERT_OK(ov_const_port_get_shape(output_port, &shape));
|
2022-09-15 11:37:23 +08:00
|
|
|
ov_shape_free(&shape);
|
|
|
|
|
|
|
|
|
|
ov_output_const_port_free(output_port);
|
|
|
|
|
ov_compiled_model_free(compiled_model);
|
|
|
|
|
ov_model_free(model);
|
|
|
|
|
ov_core_free(core);
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-14 20:34:33 +08:00
|
|
|
TEST_P(ov_compiled_model_test, get_runtime_model) {
|
2022-08-14 23:51:34 +08:00
|
|
|
auto device_name = GetParam();
|
|
|
|
|
ov_core_t* core = nullptr;
|
2022-09-29 03:01:22 +08:00
|
|
|
OV_EXPECT_OK(ov_core_create(&core));
|
2022-09-29 22:00:47 +08:00
|
|
|
EXPECT_NE(nullptr, core);
|
2022-08-14 23:51:34 +08:00
|
|
|
|
|
|
|
|
ov_model_t* model = nullptr;
|
2023-03-14 20:34:33 +08:00
|
|
|
OV_EXPECT_OK(ov_core_read_model(core, xml_file_name.c_str(), bin_file_name.c_str(), &model));
|
2022-08-14 23:51:34 +08:00
|
|
|
EXPECT_NE(nullptr, model);
|
|
|
|
|
|
|
|
|
|
ov_compiled_model_t* compiled_model = nullptr;
|
2022-09-20 05:59:27 -07:00
|
|
|
OV_EXPECT_OK(ov_core_compile_model(core, model, device_name.c_str(), 0, &compiled_model));
|
2022-08-14 23:51:34 +08:00
|
|
|
EXPECT_NE(nullptr, compiled_model);
|
|
|
|
|
|
2022-09-15 11:37:23 +08:00
|
|
|
ov_model_t* runtime_model = nullptr;
|
|
|
|
|
OV_EXPECT_OK(ov_compiled_model_get_runtime_model(compiled_model, &runtime_model));
|
|
|
|
|
EXPECT_NE(nullptr, runtime_model);
|
2022-08-14 23:51:34 +08:00
|
|
|
|
2022-09-15 11:37:23 +08:00
|
|
|
ov_model_free(runtime_model);
|
2022-08-14 23:51:34 +08:00
|
|
|
ov_compiled_model_free(compiled_model);
|
|
|
|
|
ov_model_free(model);
|
|
|
|
|
ov_core_free(core);
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-14 20:34:33 +08:00
|
|
|
TEST_P(ov_compiled_model_test, get_runtime_model_error_handling) {
|
2022-08-14 23:51:34 +08:00
|
|
|
auto device_name = GetParam();
|
|
|
|
|
ov_core_t* core = nullptr;
|
2022-09-29 03:01:22 +08:00
|
|
|
OV_EXPECT_OK(ov_core_create(&core));
|
2022-09-29 22:00:47 +08:00
|
|
|
EXPECT_NE(nullptr, core);
|
2022-08-14 23:51:34 +08:00
|
|
|
|
|
|
|
|
ov_model_t* model = nullptr;
|
2023-03-14 20:34:33 +08:00
|
|
|
OV_EXPECT_OK(ov_core_read_model(core, xml_file_name.c_str(), bin_file_name.c_str(), &model));
|
2022-08-14 23:51:34 +08:00
|
|
|
EXPECT_NE(nullptr, model);
|
|
|
|
|
|
|
|
|
|
ov_compiled_model_t* compiled_model = nullptr;
|
2022-09-20 05:59:27 -07:00
|
|
|
OV_EXPECT_OK(ov_core_compile_model(core, model, device_name.c_str(), 0, &compiled_model));
|
2022-08-14 23:51:34 +08:00
|
|
|
EXPECT_NE(nullptr, compiled_model);
|
|
|
|
|
|
2022-09-15 11:37:23 +08:00
|
|
|
ov_model_t* runtime_model = nullptr;
|
|
|
|
|
OV_EXPECT_NOT_OK(ov_compiled_model_get_runtime_model(nullptr, &runtime_model));
|
|
|
|
|
OV_EXPECT_NOT_OK(ov_compiled_model_get_runtime_model(compiled_model, nullptr));
|
2022-08-14 23:51:34 +08:00
|
|
|
|
2022-09-15 11:37:23 +08:00
|
|
|
ov_model_free(runtime_model);
|
2022-08-14 23:51:34 +08:00
|
|
|
ov_compiled_model_free(compiled_model);
|
|
|
|
|
ov_model_free(model);
|
|
|
|
|
ov_core_free(core);
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-14 20:34:33 +08:00
|
|
|
TEST_P(ov_compiled_model_test, create_infer_request) {
|
2022-08-14 23:51:34 +08:00
|
|
|
auto device_name = GetParam();
|
|
|
|
|
ov_core_t* core = nullptr;
|
2022-09-29 03:01:22 +08:00
|
|
|
OV_EXPECT_OK(ov_core_create(&core));
|
2022-09-29 22:00:47 +08:00
|
|
|
EXPECT_NE(nullptr, core);
|
2022-08-14 23:51:34 +08:00
|
|
|
|
|
|
|
|
ov_model_t* model = nullptr;
|
2023-03-14 20:34:33 +08:00
|
|
|
OV_EXPECT_OK(ov_core_read_model(core, xml_file_name.c_str(), bin_file_name.c_str(), &model));
|
2022-08-14 23:51:34 +08:00
|
|
|
EXPECT_NE(nullptr, model);
|
|
|
|
|
|
|
|
|
|
ov_compiled_model_t* compiled_model = nullptr;
|
2022-09-20 05:59:27 -07:00
|
|
|
OV_EXPECT_OK(ov_core_compile_model(core, model, device_name.c_str(), 0, &compiled_model));
|
2022-08-14 23:51:34 +08:00
|
|
|
EXPECT_NE(nullptr, compiled_model);
|
|
|
|
|
|
|
|
|
|
ov_infer_request_t* infer_request = nullptr;
|
|
|
|
|
OV_EXPECT_OK(ov_compiled_model_create_infer_request(compiled_model, &infer_request));
|
|
|
|
|
EXPECT_NE(nullptr, infer_request);
|
|
|
|
|
|
|
|
|
|
ov_infer_request_free(infer_request);
|
|
|
|
|
ov_compiled_model_free(compiled_model);
|
|
|
|
|
ov_model_free(model);
|
|
|
|
|
ov_core_free(core);
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-14 20:34:33 +08:00
|
|
|
TEST_P(ov_compiled_model_test, create_infer_request_error_handling) {
|
2022-08-14 23:51:34 +08:00
|
|
|
auto device_name = GetParam();
|
|
|
|
|
ov_core_t* core = nullptr;
|
2022-09-29 03:01:22 +08:00
|
|
|
OV_EXPECT_OK(ov_core_create(&core));
|
2022-09-29 22:00:47 +08:00
|
|
|
EXPECT_NE(nullptr, core);
|
2022-08-14 23:51:34 +08:00
|
|
|
|
|
|
|
|
ov_model_t* model = nullptr;
|
2023-03-14 20:34:33 +08:00
|
|
|
OV_EXPECT_OK(ov_core_read_model(core, xml_file_name.c_str(), bin_file_name.c_str(), &model));
|
2022-08-14 23:51:34 +08:00
|
|
|
EXPECT_NE(nullptr, model);
|
|
|
|
|
|
|
|
|
|
ov_compiled_model_t* compiled_model = nullptr;
|
2022-09-20 05:59:27 -07:00
|
|
|
OV_EXPECT_OK(ov_core_compile_model(core, model, device_name.c_str(), 0, &compiled_model));
|
2022-08-14 23:51:34 +08:00
|
|
|
EXPECT_NE(nullptr, compiled_model);
|
|
|
|
|
|
|
|
|
|
ov_infer_request_t* infer_request = nullptr;
|
|
|
|
|
OV_EXPECT_NOT_OK(ov_compiled_model_create_infer_request(nullptr, &infer_request));
|
|
|
|
|
OV_EXPECT_NOT_OK(ov_compiled_model_create_infer_request(compiled_model, nullptr));
|
|
|
|
|
|
|
|
|
|
ov_infer_request_free(infer_request);
|
|
|
|
|
ov_compiled_model_free(compiled_model);
|
|
|
|
|
ov_model_free(model);
|
|
|
|
|
ov_core_free(core);
|
2023-01-16 11:02:17 +04:00
|
|
|
}
|
2023-02-08 15:01:00 +04:00
|
|
|
|
|
|
|
|
} // namespace
|