Header length for supported model detection is increased (#1363)

This commit is contained in:
Vladislav Volkov 2020-07-20 18:11:22 +03:00 committed by GitHub
parent 399c7bf39a
commit 41f8086765
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 6 deletions

View File

@ -5,6 +5,7 @@
#include <fstream>
#include <xml_parse_utils.h>
#include <array>
namespace InferenceEngine {
namespace details {
@ -19,14 +20,15 @@ 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<char, 512> 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.clear();
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();

View File

@ -199,10 +199,19 @@ TEST(NetReaderTest, IRSupportModelDetection) {
</net>
)V0G0N";
// For supported model detection the IRReader uses first 512 bytes from model.
// These headers shifts the trim place.
std::string headers[] = {
R"()",
R"(<!-- <net name="Network" version="100500"> -->)",
R"(<!-- <net name="Network" version="10" some_attribute="Test Attribute"> -->)"
R"(<!-- <net name="Network" version="10" some_attribute="Test Attribute"> -->)",
R"(<!-- <net name="Network" version="10" some_attribute="Test Attribute"> -->
<!-- <net name="Network" version="10" some_attribute="Test Attribute"> -->
<!-- <net name="Network" version="10" some_attribute="Test Attribute"> -->
<!-- <net name="Network" version="10" some_attribute="Test Attribute"> -->
<!-- The quick brown fox jumps over the lazy dog -->
<!-- The quick brown fox jumps over the lazy dog -->
<!-- The quick brown fox jumps over the lazy dog -->)"
};
InferenceEngine::Blob::CPtr weights;