mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-29 18:19:30 +00:00
Minor fixes to res_json and test_json.
* Made input checking more consistent with other Asterisk code * Added validation to ast_json_dump_new_file * Fixed tests for ownereship semantics (issue ASTERISK-20887) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@381214 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -395,8 +395,6 @@ AST_TEST_DEFINE(json_test_int)
|
||||
ast_test_validate(test, 0 == uut_res);
|
||||
ast_test_validate(test, LLONG_MIN == ast_json_integer_get(uut));
|
||||
|
||||
ast_json_unref(uut);
|
||||
|
||||
return AST_TEST_PASS;
|
||||
}
|
||||
|
||||
@@ -461,8 +459,6 @@ AST_TEST_DEFINE(json_test_array_create)
|
||||
ast_test_validate(test, AST_JSON_ARRAY == ast_json_typeof(uut));
|
||||
ast_test_validate(test, 0 == ast_json_array_size(uut));
|
||||
|
||||
ast_json_unref(uut);
|
||||
|
||||
return AST_TEST_PASS;
|
||||
}
|
||||
|
||||
@@ -1406,6 +1402,27 @@ AST_TEST_DEFINE(json_test_pack)
|
||||
return AST_TEST_PASS;
|
||||
}
|
||||
|
||||
AST_TEST_DEFINE(json_test_pack_ownership)
|
||||
{
|
||||
RAII_VAR(void *, alloc_debug, json_test_init(test), json_test_finish);
|
||||
RAII_VAR(struct ast_json *, uut, NULL, ast_json_unref);
|
||||
|
||||
switch (cmd) {
|
||||
case TEST_INIT:
|
||||
info->name = "pack_ownership";
|
||||
info->category = "/main/json/";
|
||||
info->summary = "Testing json_pack failure conditions.";
|
||||
info->description = "Test JSON abstraction library.";
|
||||
return AST_TEST_NOT_RUN;
|
||||
case TEST_EXECUTE:
|
||||
break;
|
||||
}
|
||||
|
||||
uut = ast_json_pack("[o]", ast_json_string_create("Am I freed?"));
|
||||
|
||||
return AST_TEST_PASS;
|
||||
}
|
||||
|
||||
AST_TEST_DEFINE(json_test_pack_errors)
|
||||
{
|
||||
RAII_VAR(void *, alloc_debug, json_test_init(test), json_test_finish);
|
||||
@@ -1528,7 +1545,7 @@ AST_TEST_DEFINE(json_test_circular_object)
|
||||
/* circular reference testing */
|
||||
/* Cannot add self */
|
||||
uut = ast_json_object_create();
|
||||
uut_res = ast_json_object_set(uut, "myself", uut);
|
||||
uut_res = ast_json_object_set(uut, "myself", ast_json_ref(uut));
|
||||
ast_test_validate(test, -1 == uut_res);
|
||||
ast_test_validate(test, 0 == ast_json_object_size(uut));
|
||||
|
||||
@@ -1553,7 +1570,8 @@ AST_TEST_DEFINE(json_test_circular_array)
|
||||
}
|
||||
|
||||
uut = ast_json_array_create();
|
||||
uut_res = ast_json_object_set(uut, "myself", uut);
|
||||
ast_test_validate(test, 0 == ast_json_array_size(uut));
|
||||
uut_res = ast_json_array_append(uut, ast_json_ref(uut));
|
||||
ast_test_validate(test, -1 == uut_res);
|
||||
ast_test_validate(test, 0 == ast_json_array_size(uut));
|
||||
|
||||
@@ -1636,6 +1654,7 @@ static int unload_module(void)
|
||||
AST_TEST_UNREGISTER(json_test_dump_load_null);
|
||||
AST_TEST_UNREGISTER(json_test_parse_errors);
|
||||
AST_TEST_UNREGISTER(json_test_pack);
|
||||
AST_TEST_UNREGISTER(json_test_pack_ownership);
|
||||
AST_TEST_UNREGISTER(json_test_pack_errors);
|
||||
AST_TEST_UNREGISTER(json_test_copy);
|
||||
AST_TEST_UNREGISTER(json_test_deep_copy);
|
||||
@@ -1688,6 +1707,7 @@ static int load_module(void)
|
||||
AST_TEST_REGISTER(json_test_dump_load_null);
|
||||
AST_TEST_REGISTER(json_test_parse_errors);
|
||||
AST_TEST_REGISTER(json_test_pack);
|
||||
AST_TEST_REGISTER(json_test_pack_ownership);
|
||||
AST_TEST_REGISTER(json_test_pack_errors);
|
||||
AST_TEST_REGISTER(json_test_copy);
|
||||
AST_TEST_REGISTER(json_test_deep_copy);
|
||||
@@ -1698,4 +1718,7 @@ static int load_module(void)
|
||||
return AST_MODULE_LOAD_SUCCESS;
|
||||
}
|
||||
|
||||
AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "JSON testing.");
|
||||
AST_MODULE_INFO(ASTERISK_GPL_KEY, 0, "JSON testing",
|
||||
.load = load_module,
|
||||
.unload = unload_module,
|
||||
.nonoptreq = "res_json");
|
||||
|
Reference in New Issue
Block a user