Skip to content

Commit 824fbe6

Browse files
committed
fix boolean config parse in json
Signed-off-by: xianliang.li <xianliang.li@zilliz.com>
1 parent 4746db1 commit 824fbe6

2 files changed

Lines changed: 31 additions & 2 deletions

File tree

src/common/config.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,10 +154,10 @@ Config::FormatAndCheck(const Config& cfg, Json& json, std::string* const err_msg
154154
}
155155
}
156156
if (std::get_if<Entry<CFG_BOOL>>(&var)) {
157-
if (json[it.first] == "true") {
157+
if (json[it.first] == "true" || json[it.first] == "True" || json[it.first] == "TRUE") {
158158
json[it.first] = true;
159159
}
160-
if (json[it.first] == "false") {
160+
if (json[it.first] == "false" || json[it.first] == "False" || json[it.first] == "FALSE") {
161161
json[it.first] = false;
162162
}
163163
}

tests/ut/test_config.cc

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -540,6 +540,35 @@ TEST_CASE("Test config load", "[BOOL]") {
540540
s = knowhere::Config::Load(test_cfg, json, knowhere::TRAIN, &err_msg);
541541
CHECK(s == knowhere::Status::success);
542542
CHECK(test_cfg.bool_val.value() == true);
543+
544+
json = knowhere::Json::parse(R"({
545+
"bool_val": "True"
546+
})");
547+
s = knowhere::Config::Load(test_cfg, json, knowhere::TRAIN, &err_msg);
548+
CHECK(s == knowhere::Status::success);
549+
CHECK(test_cfg.bool_val.value() == true);
550+
551+
json = knowhere::Json::parse(R"({
552+
"bool_val": "TRUE"
553+
})");
554+
s = knowhere::Config::Load(test_cfg, json, knowhere::TRAIN, &err_msg);
555+
CHECK(s == knowhere::Status::success);
556+
CHECK(test_cfg.bool_val.value() == true);
557+
558+
json = knowhere::Json::parse(R"({
559+
"bool_val": "False"
560+
})");
561+
s = knowhere::Config::Load(test_cfg, json, knowhere::TRAIN, &err_msg);
562+
CHECK(s == knowhere::Status::success);
563+
CHECK(test_cfg.bool_val.value() == false);
564+
565+
json = knowhere::Json::parse(R"({
566+
"bool_val": "FALSE"
567+
})");
568+
s = knowhere::Config::Load(test_cfg, json, knowhere::TRAIN, &err_msg);
569+
CHECK(s == knowhere::Status::success);
570+
CHECK(test_cfg.bool_val.value() == false);
571+
543572
}
544573

545574
SECTION("check bool allow empty") {

0 commit comments

Comments
 (0)