From a541134b7007548e44e35eb89f089f68533839ce Mon Sep 17 00:00:00 2001 From: Vladimir Byko-Ianko Date: Wed, 22 Apr 2020 13:22:29 +0300 Subject: [PATCH] [routing] Adding logs in case wrong version (wrong header) of access conditional section. --- .../generator_tests/road_access_test.cpp | 2 +- routing/index_graph_loader.cpp | 5 ++++- routing/road_access_serialization.hpp | 20 ++++++++++++++++--- routing/routing_tests/road_access_test.cpp | 3 ++- 4 files changed, 24 insertions(+), 6 deletions(-) diff --git a/generator/generator_tests/road_access_test.cpp b/generator/generator_tests/road_access_test.cpp index 8bd4b17a40..58243fcd0e 100644 --- a/generator/generator_tests/road_access_test.cpp +++ b/generator/generator_tests/road_access_test.cpp @@ -104,7 +104,7 @@ void LoadRoadAccess(string const & mwmFilePath, VehicleType vehicleType, RoadAcc FilesContainerR::TReader const reader = cont.GetReader(ROAD_ACCESS_FILE_TAG); ReaderSource src(reader); - RoadAccessSerializer::Deserialize(src, vehicleType, roadAccess); + RoadAccessSerializer::Deserialize(src, vehicleType, roadAccess, mwmFilePath); } catch (Reader::OpenException const & e) { diff --git a/routing/index_graph_loader.cpp b/routing/index_graph_loader.cpp index f96d784e78..95adc4d4d6 100644 --- a/routing/index_graph_loader.cpp +++ b/routing/index_graph_loader.cpp @@ -11,6 +11,8 @@ #include "indexer/data_source.hpp" +#include "platform/country_defines.hpp" + #include "coding/files_container.hpp" #include "base/assert.hpp" @@ -230,7 +232,8 @@ bool ReadRoadAccessFromMwm(MwmValue const & mwmValue, VehicleType vehicleType, auto const reader = mwmValue.m_cont.GetReader(ROAD_ACCESS_FILE_TAG); ReaderSource src(reader); - RoadAccessSerializer::Deserialize(src, vehicleType, roadAccess); + RoadAccessSerializer::Deserialize(src, vehicleType, roadAccess, + mwmValue.m_file.GetPath(MapFileType::Map)); } catch (Reader::OpenException const & e) { diff --git a/routing/road_access_serialization.hpp b/routing/road_access_serialization.hpp index aa93bbfcc6..19b71157d3 100644 --- a/routing/road_access_serialization.hpp +++ b/routing/road_access_serialization.hpp @@ -9,8 +9,11 @@ #include "routing_common/num_mwm_id.hpp" +#include "platform/platform.hpp" + #include "coding/bit_streams.hpp" #include "coding/reader.hpp" +#include "coding/sha1.hpp" #include "coding/varint.hpp" #include "coding/write_to_sink.hpp" @@ -20,6 +23,7 @@ #include #include #include +#include #include #include #include @@ -55,9 +59,11 @@ public: } template - static void Deserialize(Source & src, VehicleType vehicleType, RoadAccess & roadAccess) + static void Deserialize(Source & src, VehicleType vehicleType, RoadAccess & roadAccess, + std::string const & mwmPath) { - auto const header = static_cast
(ReadPrimitiveFromSource(src)); + auto const readHeader = ReadPrimitiveFromSource(src); + auto const header = static_cast
(readHeader); CHECK_LESS_OR_EQUAL(header, kLatestVersion, ()); switch (header) { @@ -76,7 +82,15 @@ public: // DeserializeAccessConditional(src, vehicleType, roadAccess); break; } - default: UNREACHABLE(); + default: + { + LOG(LWARNING, ("Wrong roadaccess section header version:", static_cast(readHeader), + ". Mwm name:", mwmPath)); + if (Platform::IsFileExistsByFullPath(mwmPath)) + LOG(LWARNING, ("SHA1 is:", coding::SHA1::CalculateBase64(mwmPath))); + + UNREACHABLE(); + } } } diff --git a/routing/routing_tests/road_access_test.cpp b/routing/routing_tests/road_access_test.cpp index bceaea7c7b..e5c0098a8e 100644 --- a/routing/routing_tests/road_access_test.cpp +++ b/routing/routing_tests/road_access_test.cpp @@ -10,6 +10,7 @@ #include #include +#include #include #include "3party/opening_hours/opening_hours.hpp" @@ -139,7 +140,7 @@ public: MemReader memReader(m_buffer.data(), m_buffer.size()); ReaderSource src(memReader); - RoadAccessSerializer::Deserialize(src, vehicleType, deserializedRoadAccess); + RoadAccessSerializer::Deserialize(src, vehicleType, deserializedRoadAccess, string("unknown")); TEST_EQUAL(answer, deserializedRoadAccess, ()); }