forked from organicmaps/organicmaps
[search] An attempt to check locale in the tools.
This commit is contained in:
parent
db525bf908
commit
750aaacada
5 changed files with 43 additions and 1 deletions
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -13,6 +13,8 @@ namespace search
|
|||
size_t constexpr kMaxOpenFiles = 4000;
|
||||
|
||||
void ChangeMaxNumberOfOpenFiles(size_t n);
|
||||
|
||||
void CheckLocale();
|
||||
} // namespace search
|
||||
|
||||
namespace m2
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Add table
Reference in a new issue