ONNX FE - model loading fix (#17091)

* Path retrieval fix

* More detailed messages in the failing test

* Exe path with model name

---------

Co-authored-by: Michal Lukaszewski <michal.lukaszewski@intel.com>
This commit is contained in:
Tomasz Dołbniak 2023-04-21 13:25:26 +02:00 committed by GitHub
parent 8fbd78fb07
commit 6ea9cc7149
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 9 deletions

View File

@ -59,7 +59,7 @@ InputModel::Ptr FrontEnd::load_impl(const std::vector<ov::Any>& variants) const
if (variants[0].is<std::istream*>()) {
const auto stream = variants[0].as<std::istream*>();
if (variants.size() > 1 && variants[1].is<std::string>()) {
const auto path = variants[0].as<std::string>();
const auto path = variants[1].as<std::string>();
return std::make_shared<InputModel>(*stream, path, m_extensions);
}
#if defined(OPENVINO_ENABLE_UNICODE_PATH_SUPPORT) && defined(_WIN32)

View File

@ -25,25 +25,26 @@ static LoadFromFEParam getTestData() {
return res;
}
// TODO: 83471
TEST_P(FrontEndLoadFromTest, testLoadFromStreamAndPassPath) {
NGRAPH_SUPPRESS_DEPRECATED_START
const auto path = file_util::path_join(TEST_ONNX_MODELS_DIRNAME, "external_data/external_data.onnx");
const auto path = file_util::path_join(CommonTestUtils::getExecutableDirectory(),
TEST_ONNX_MODELS_DIRNAME,
"external_data/external_data.onnx");
NGRAPH_SUPPRESS_DEPRECATED_END
std::ifstream ifs(path, std::ios::in | std::ios::binary);
ASSERT_TRUE(ifs.is_open());
ASSERT_TRUE(ifs.is_open()) << "Could not open an ifstream for the model path: " << path;
std::istream* is = &ifs;
std::vector<std::string> frontends;
FrontEnd::Ptr fe;
ASSERT_NO_THROW(frontends = m_fem.get_available_front_ends());
ASSERT_NO_THROW(m_frontEnd = m_fem.load_by_model(is));
ASSERT_NO_THROW(m_frontEnd = m_fem.load_by_model(is)) << "Could not create the ONNX FE using the istream object";
ASSERT_NE(m_frontEnd, nullptr);
ASSERT_NO_THROW(m_inputModel = m_frontEnd->load(is, path));
ASSERT_NO_THROW(m_inputModel = m_frontEnd->load(is, path)) << "Could not load the model";
ASSERT_NE(m_inputModel, nullptr);
std::shared_ptr<ngraph::Function> function;
ASSERT_NO_THROW(function = m_frontEnd->convert(m_inputModel));
ASSERT_NO_THROW(function = m_frontEnd->convert(m_inputModel)) << "Could not convert the model to OV representation";
ASSERT_NE(function, nullptr);
}

View File

@ -2,5 +2,3 @@
ONNXLoadTest/FrontEndLoadFromTest.testLoadFromTwoFiles/onnx
ONNXLoadTest/FrontEndLoadFromTest.testLoadFromTwoStreams/onnx
# exception: invalid external data: ExternalDataInfo
ONNXLoadTest/FrontEndLoadFromTest.testLoadFromStreamAndPassPath/onnx