Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/search
diff options
context:
space:
mode:
authorMaxim Pimenov <m@maps.me>2019-03-19 15:18:04 +0300
committerTatiana Yan <tatiana.kondakova@gmail.com>2019-03-19 17:47:06 +0300
commit750aaacada4d3b6373e67f98418adf1f2b22d6a8 (patch)
treeff3f74492e902ffe7e25194f00d2955c1539cdac /search
parentdb525bf9088dc134f78d5f5ee930765a31b8a4c8 (diff)
[search] An attempt to check locale in the tools.
Diffstat (limited to 'search')
-rw-r--r--search/search_quality/assessment_tool/assessment_tool.cpp1
-rw-r--r--search/search_quality/features_collector_tool/features_collector_tool.cpp1
-rw-r--r--search/search_quality/helpers.cpp39
-rw-r--r--search/search_quality/helpers.hpp2
-rw-r--r--search/search_quality/search_quality_tool/search_quality_tool.cpp1
5 files changed, 43 insertions, 1 deletions
diff --git a/search/search_quality/assessment_tool/assessment_tool.cpp b/search/search_quality/assessment_tool/assessment_tool.cpp
index 2df013d370..5ce4631871 100644
--- a/search/search_quality/assessment_tool/assessment_tool.cpp
+++ b/search/search_quality/assessment_tool/assessment_tool.cpp
@@ -17,6 +17,7 @@ DEFINE_string(data_path, "", "Path to data directory");
int main(int argc, char ** argv)
{
search::ChangeMaxNumberOfOpenFiles(search::kMaxOpenFiles);
+ search::CheckLocale();
google::SetUsageMessage("Features collector tool.");
google::ParseCommandLineFlags(&argc, &argv, true);
diff --git a/search/search_quality/features_collector_tool/features_collector_tool.cpp b/search/search_quality/features_collector_tool/features_collector_tool.cpp
index 5d306931f4..43d3053f68 100644
--- a/search/search_quality/features_collector_tool/features_collector_tool.cpp
+++ b/search/search_quality/features_collector_tool/features_collector_tool.cpp
@@ -106,6 +106,7 @@ void DisplayStats(ostream & os, vector<Sample> const & samples, vector<Stats> co
int main(int argc, char * argv[])
{
ChangeMaxNumberOfOpenFiles(kMaxOpenFiles);
+ CheckLocale();
google::SetUsageMessage("Features collector tool.");
google::ParseCommandLineFlags(&argc, &argv, true);
diff --git a/search/search_quality/helpers.cpp b/search/search_quality/helpers.cpp
index 433bf4fb1c..dc9c76e392 100644
--- a/search/search_quality/helpers.cpp
+++ b/search/search_quality/helpers.cpp
@@ -1,7 +1,12 @@
#include "search/search_quality/helpers.hpp"
+#include "base/assert.hpp"
+#include "base/string_utils.hpp"
+
#include "std/target_os.hpp"
+#include <memory>
+
#include <sys/resource.h>
using namespace std;
@@ -26,6 +31,38 @@ void ChangeMaxNumberOfOpenFiles(size_t n)
setrlimit(RLIMIT_NOFILE, &rlp);
#endif
}
+
+void CheckLocale()
+{
+ string const kJson = "{\"coord\":123.456}";
+ string const kErrorMsg = "Bad locale. Consider setting LC_ALL=C";
+
+ double coord;
+ {
+ base::Json root(kJson.c_str());
+ FromJSONObject(root.get(), "coord", coord);
+ }
+
+ string line;
+ {
+ auto root = base::NewJSONObject();
+ ToJSONObject(*root, "coord", coord);
+
+ unique_ptr<char, JSONFreeDeleter> buffer(
+ json_dumps(root.get(), JSON_COMPACT | JSON_ENSURE_ASCII));
+
+ line.append(buffer.get());
+ }
+
+ CHECK_EQUAL(line, kJson, (kErrorMsg));
+
+ {
+ string const kTest = "123.456";
+ double value;
+ VERIFY(strings::to_double(kTest, value), (kTest));
+ CHECK_EQUAL(strings::to_string(value), kTest, (kErrorMsg));
+ }
+}
} // namespace search
namespace m2
@@ -93,7 +130,7 @@ void ToJSONObject(json_t & root, char const * field, PointD const & point)
json_object_set_new(&root, field, json.release());
}
-bool FromJSONObjectOptional(json_t * root, std::string const & field, PointD & point)
+bool FromJSONObjectOptional(json_t * root, string const & field, PointD & point)
{
return FromJSONObjectOptional(root, field.c_str(), point);
}
diff --git a/search/search_quality/helpers.hpp b/search/search_quality/helpers.hpp
index 6ea9eb9e76..9fb2707f98 100644
--- a/search/search_quality/helpers.hpp
+++ b/search/search_quality/helpers.hpp
@@ -13,6 +13,8 @@ namespace search
size_t constexpr kMaxOpenFiles = 4000;
void ChangeMaxNumberOfOpenFiles(size_t n);
+
+void CheckLocale();
} // namespace search
namespace m2
diff --git a/search/search_quality/search_quality_tool/search_quality_tool.cpp b/search/search_quality/search_quality_tool/search_quality_tool.cpp
index 823046329b..0fde17fc1f 100644
--- a/search/search_quality/search_quality_tool/search_quality_tool.cpp
+++ b/search/search_quality/search_quality_tool/search_quality_tool.cpp
@@ -351,6 +351,7 @@ void CheckCompleteness(string const & path, m2::RectD const & viewport, DataSour
int main(int argc, char * argv[])
{
ChangeMaxNumberOfOpenFiles(kMaxOpenFiles);
+ CheckLocale();
ios_base::sync_with_stdio(false);
Platform & platform = GetPlatform();