From 5b2ec7840ac3c5c1d1ec107e50e499f22c9fe7a6 Mon Sep 17 00:00:00 2001 From: Vladislav Volkov Date: Thu, 16 Jul 2020 11:12:40 +0300 Subject: [PATCH] Header length for supported model detection is increased (#1340) --- .../src/readers/ir_reader/ie_ir_version.hpp | 9 +++++---- .../functional/inference_engine/net_reader_test.cpp | 13 +++++++++++-- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/inference-engine/src/readers/ir_reader/ie_ir_version.hpp b/inference-engine/src/readers/ir_reader/ie_ir_version.hpp index 1a404c20296..e5f4d2ea339 100644 --- a/inference-engine/src/readers/ir_reader/ie_ir_version.hpp +++ b/inference-engine/src/readers/ir_reader/ie_ir_version.hpp @@ -5,6 +5,7 @@ #include #include +#include namespace InferenceEngine { namespace details { @@ -19,14 +20,14 @@ inline size_t GetIRVersion(pugi::xml_node& root) { * @return IR version, 0 if model does represent IR */ size_t GetIRVersion(std::istream& model) { + std::array header = {}; + model.seekg(0, model.beg); - const int header_size = 128; - std::string header(header_size, ' '); - model.read(&header[0], header_size); + model.read(header.data(), header.size()); model.seekg(0, model.beg); pugi::xml_document doc; - auto res = doc.load_string(header.c_str(), pugi::parse_default | pugi::parse_fragment); + auto res = doc.load_buffer(header.data(), header.size(), pugi::parse_default | pugi::parse_fragment, pugi::encoding_utf8); if (res == pugi::status_ok) { pugi::xml_node root = doc.document_element(); diff --git a/inference-engine/tests/functional/inference_engine/net_reader_test.cpp b/inference-engine/tests/functional/inference_engine/net_reader_test.cpp index 156b8b7eb45..8f30bc8dc00 100644 --- a/inference-engine/tests/functional/inference_engine/net_reader_test.cpp +++ b/inference-engine/tests/functional/inference_engine/net_reader_test.cpp @@ -198,10 +198,19 @@ TEST(NetReaderTest, IRSupportModelDetection) { )V0G0N"; + // For supported model detection the IRReader uses first 512 bytes from model. + // These headers shifts the trim place. + std::string headers[] = { R"()", - R"()", - R"()" + R"()", + R"( + + + + + +)" }; InferenceEngine::Blob::CPtr weights;