forked from github/server
read boolean json values
be smarter about reading number values that are integers
This commit is contained in:
parent
9bb2a625f9
commit
c5e14c85a6
|
@ -650,7 +650,12 @@ static void json_settings(cJSON *json) {
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
char value[32];
|
char value[32];
|
||||||
_snprintf(value, sizeof(value), "%lf", child->valuedouble);
|
if (child->type == cJSON_Number && child->valuedouble && child->valueint<child->valuedouble) {
|
||||||
|
_snprintf(value, sizeof(value), "%lf", child->valuedouble);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
_snprintf(value, sizeof(value), "%d", child->valueint);
|
||||||
|
}
|
||||||
set_param(&global.parameters, child->string, value);
|
set_param(&global.parameters, child->string, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -62,14 +62,18 @@ static void test_settings(CuTest * tc)
|
||||||
const char * data = "{\"settings\": { "
|
const char * data = "{\"settings\": { "
|
||||||
"\"string\" : \"1d4\","
|
"\"string\" : \"1d4\","
|
||||||
"\"integer\" : 14,"
|
"\"integer\" : 14,"
|
||||||
"\"float\" : 0.5 }}";
|
"\"true\": true,"
|
||||||
|
"\"false\": false,"
|
||||||
|
"\"float\" : 1.5 }}";
|
||||||
cJSON *json = cJSON_Parse(data);
|
cJSON *json = cJSON_Parse(data);
|
||||||
|
|
||||||
test_cleanup();
|
test_cleanup();
|
||||||
json_config(json);
|
json_config(json);
|
||||||
|
CuAssertStrEquals(tc, "1", get_param(global.parameters, "true"));
|
||||||
|
CuAssertStrEquals(tc, "0", get_param(global.parameters, "false"));
|
||||||
CuAssertStrEquals(tc, "1d4", get_param(global.parameters, "string"));
|
CuAssertStrEquals(tc, "1d4", get_param(global.parameters, "string"));
|
||||||
CuAssertIntEquals(tc, 14, get_param_int(global.parameters, "integer", 0));
|
CuAssertIntEquals(tc, 14, get_param_int(global.parameters, "integer", 0));
|
||||||
CuAssertDblEquals(tc, 0.5f, get_param_flt(global.parameters, "float", 0), 0.01);
|
CuAssertDblEquals(tc, 1.5f, get_param_flt(global.parameters, "float", 0), 0.01);
|
||||||
test_cleanup();
|
test_cleanup();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue