mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-12 15:45:18 +00:00
Fix crashing unit tests with regards to RLS.
The unit tests require a sorcery.conf file that has been set up to store resource lists in memory rather than retrieving from configuration. With a setup that is not conducive to running the tests, a fault in sorcery currently causes Asterisk to crash when attempting to run any of the tests. To get around the crash, this adds a function that verifies the current environment and marks the tests as "not run" if the setup is not correct. git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@420779 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -3527,6 +3527,31 @@ static void test_resource_tree_destroy(struct resource_tree *tree)
|
||||
ast_free(tree);
|
||||
}
|
||||
|
||||
static int ineligible_configuration(void)
|
||||
{
|
||||
struct ast_config *config;
|
||||
struct ast_flags flags = {0,};
|
||||
const char *value;
|
||||
|
||||
config = ast_config_load("sorcery.conf", flags);
|
||||
if (!config) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
value = ast_variable_retrieve(config, "res_pjsip_pubsub", "resource_list");
|
||||
if (ast_strlen_zero(value)) {
|
||||
ast_config_destroy(config);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (strcasecmp(value, "memory") && strcasecmp(value, "astdb")) {
|
||||
ast_config_destroy(config);
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
AST_TEST_DEFINE(resource_tree)
|
||||
{
|
||||
RAII_VAR(struct resource_list *, list, NULL, cleanup_resource_list);
|
||||
@@ -3550,6 +3575,12 @@ AST_TEST_DEFINE(resource_tree)
|
||||
break;
|
||||
}
|
||||
|
||||
if (ineligible_configuration()) {
|
||||
ast_test_status_update(test, "Ineligible configuration for this test. Please add a "
|
||||
"'res_pjsip_pubsub' section to sorcery.conf, and set 'resource_list=memory'\n");
|
||||
return AST_TEST_NOT_RUN;
|
||||
}
|
||||
|
||||
list = create_resource_list(test, "foo", "test", resources, ARRAY_LEN(resources));
|
||||
if (!list) {
|
||||
return AST_TEST_FAIL;
|
||||
@@ -3609,6 +3640,12 @@ AST_TEST_DEFINE(complex_resource_tree)
|
||||
break;
|
||||
}
|
||||
|
||||
if (ineligible_configuration()) {
|
||||
ast_test_status_update(test, "Ineligible configuration for this test. Please add a "
|
||||
"'res_pjsip_pubsub' section to sorcery.conf, and set 'resource_list=memory'\n");
|
||||
return AST_TEST_NOT_RUN;
|
||||
}
|
||||
|
||||
list_1 = create_resource_list(test, "foo", "test", resources_1, ARRAY_LEN(resources_1));
|
||||
if (!list_1) {
|
||||
return AST_TEST_FAIL;
|
||||
@@ -3669,6 +3706,12 @@ AST_TEST_DEFINE(bad_resource)
|
||||
break;
|
||||
}
|
||||
|
||||
if (ineligible_configuration()) {
|
||||
ast_test_status_update(test, "Ineligible configuration for this test. Please add a "
|
||||
"'res_pjsip_pubsub' section to sorcery.conf, and set 'resource_list=memory'\n");
|
||||
return AST_TEST_NOT_RUN;
|
||||
}
|
||||
|
||||
list = create_resource_list(test, "foo", "test", resources, ARRAY_LEN(resources));
|
||||
if (!list) {
|
||||
return AST_TEST_FAIL;
|
||||
@@ -3728,6 +3771,12 @@ AST_TEST_DEFINE(bad_branch)
|
||||
break;
|
||||
}
|
||||
|
||||
if (ineligible_configuration()) {
|
||||
ast_test_status_update(test, "Ineligible configuration for this test. Please add a "
|
||||
"'res_pjsip_pubsub' section to sorcery.conf, and set 'resource_list=memory'\n");
|
||||
return AST_TEST_NOT_RUN;
|
||||
}
|
||||
|
||||
list_1 = create_resource_list(test, "foo", "test", resources_1, ARRAY_LEN(resources_1));
|
||||
if (!list_1) {
|
||||
return AST_TEST_FAIL;
|
||||
@@ -3794,6 +3843,12 @@ AST_TEST_DEFINE(duplicate_resource)
|
||||
break;
|
||||
}
|
||||
|
||||
if (ineligible_configuration()) {
|
||||
ast_test_status_update(test, "Ineligible configuration for this test. Please add a "
|
||||
"'res_pjsip_pubsub' section to sorcery.conf, and set 'resource_list=memory'\n");
|
||||
return AST_TEST_NOT_RUN;
|
||||
}
|
||||
|
||||
list_1 = create_resource_list(test, "foo", "test", resources_1, ARRAY_LEN(resources_1));
|
||||
if (!list_1) {
|
||||
return AST_TEST_FAIL;
|
||||
@@ -3861,6 +3916,12 @@ AST_TEST_DEFINE(loop)
|
||||
break;
|
||||
}
|
||||
|
||||
if (ineligible_configuration()) {
|
||||
ast_test_status_update(test, "Ineligible configuration for this test. Please add a "
|
||||
"'res_pjsip_pubsub' section to sorcery.conf, and set 'resource_list=memory'\n");
|
||||
return AST_TEST_NOT_RUN;
|
||||
}
|
||||
|
||||
list_1 = create_resource_list(test, "herp", "test", resources_1, ARRAY_LEN(resources_1));
|
||||
if (!list_1) {
|
||||
return AST_TEST_FAIL;
|
||||
@@ -3903,6 +3964,12 @@ AST_TEST_DEFINE(bad_event)
|
||||
break;
|
||||
}
|
||||
|
||||
if (ineligible_configuration()) {
|
||||
ast_test_status_update(test, "Ineligible configuration for this test. Please add a "
|
||||
"'res_pjsip_pubsub' section to sorcery.conf, and set 'resource_list=memory'\n");
|
||||
return AST_TEST_NOT_RUN;
|
||||
}
|
||||
|
||||
list = create_resource_list(test, "foo", "tsetse", resources, ARRAY_LEN(resources));
|
||||
if (!list) {
|
||||
return AST_TEST_FAIL;
|
||||
|
Reference in New Issue
Block a user