diff options
author | Mark Michelson <mmichelson@digium.com> | 2014-04-02 18:57:29 +0000 |
---|---|---|
committer | Mark Michelson <mmichelson@digium.com> | 2014-04-02 18:57:29 +0000 |
commit | eefcb79bfb4ce2bd0236fc4bb5d960a6df9f3cc4 (patch) | |
tree | 15e35325d8e0cd53f0dae6bfbb987abb84456bc2 /tests | |
parent | c704795dcbc5caa5676a1685d6a5996e92875ae9 (diff) |
Prevent duplicate sorcery wizards from being applied to sorcery object types.
This commit contains several changes to sorcery:
1) Application of sorcery configuration based on module name is automatically performed
when sorcery is opened for a module.
2) Sorcery will not attempt to apply the same wizard to an object type more than once.
3) Sorcery gives more exact results when attempting to apply a wizard, whether as the
default or based on configuration.
Sorcery unit tests still pass for me after making these changes.
Review: https://reviewboard.asterisk.org/r/3326
........
Merged revisions 411159 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@411656 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_sorcery.c | 40 | ||||
-rw-r--r-- | tests/test_sorcery_astdb.c | 2 | ||||
-rw-r--r-- | tests/test_sorcery_realtime.c | 2 |
3 files changed, 22 insertions, 22 deletions
diff --git a/tests/test_sorcery.c b/tests/test_sorcery.c index ed4d604e6..aa34a11d3 100644 --- a/tests/test_sorcery.c +++ b/tests/test_sorcery.c @@ -306,7 +306,7 @@ static struct ast_sorcery *alloc_and_initialize_sorcery(void) return NULL; } - if (ast_sorcery_apply_default(sorcery, "test", "memory", NULL) || + if ((ast_sorcery_apply_default(sorcery, "test", "memory", NULL) != AST_SORCERY_APPLY_SUCCESS) || ast_sorcery_internal_object_register(sorcery, "test", test_sorcery_object_alloc, NULL, NULL)) { ast_sorcery_unref(sorcery); return NULL; @@ -452,17 +452,17 @@ AST_TEST_DEFINE(apply_default) return AST_TEST_FAIL; } - if (!ast_sorcery_apply_default(sorcery, "test", "dummy", NULL)) { + if (ast_sorcery_apply_default(sorcery, "test", "dummy", NULL) != AST_SORCERY_APPLY_FAIL) { ast_test_status_update(test, "Successfully set a default wizard that doesn't exist\n"); return AST_TEST_FAIL; } - if (ast_sorcery_apply_default(sorcery, "test", "memory", NULL)) { + if (ast_sorcery_apply_default(sorcery, "test", "memory", NULL) != AST_SORCERY_APPLY_SUCCESS) { ast_test_status_update(test, "Failed to set a known wizard as a default\n"); return AST_TEST_FAIL; } - if (!ast_sorcery_apply_default(sorcery, "test", "memory", NULL)) { + if (ast_sorcery_apply_default(sorcery, "test", "memory", NULL) != AST_SORCERY_APPLY_DEFAULT_UNNECESSARY) { ast_test_status_update(test, "Successfully set a default wizard on a type twice\n"); return AST_TEST_FAIL; } @@ -493,7 +493,7 @@ AST_TEST_DEFINE(apply_config) return AST_TEST_NOT_RUN; } - if (!ast_category_get(config, "test_sorcery")) { + if (!ast_category_get(config, "test_sorcery_section")) { ast_test_status_update(test, "Sorcery configuration file does not have test_sorcery section\n"); ast_config_destroy(config); return AST_TEST_NOT_RUN; @@ -506,7 +506,7 @@ AST_TEST_DEFINE(apply_config) return AST_TEST_FAIL; } - if (ast_sorcery_apply_config(sorcery, "test_sorcery")) { + if (ast_sorcery_apply_config(sorcery, "test_sorcery_section") != AST_SORCERY_APPLY_SUCCESS) { ast_test_status_update(test, "Failed to apply configured object mappings\n"); return AST_TEST_FAIL; } @@ -535,7 +535,7 @@ AST_TEST_DEFINE(object_register) return AST_TEST_FAIL; } - if (ast_sorcery_apply_default(sorcery, "test", "memory", NULL)) { + if (ast_sorcery_apply_default(sorcery, "test", "memory", NULL) != AST_SORCERY_APPLY_SUCCESS) { ast_test_status_update(test, "Failed to set a known wizard as a default\n"); return AST_TEST_FAIL; } @@ -608,7 +608,7 @@ AST_TEST_DEFINE(object_field_register) return AST_TEST_FAIL; } - if (ast_sorcery_apply_default(sorcery, "test", "memory", NULL)) { + if (ast_sorcery_apply_default(sorcery, "test", "memory", NULL) != AST_SORCERY_APPLY_SUCCESS) { ast_test_status_update(test, "Failed to set a known wizard as a default\n"); return AST_TEST_FAIL; } @@ -657,7 +657,7 @@ AST_TEST_DEFINE(object_fields_register) return AST_TEST_FAIL; } - if (ast_sorcery_apply_default(sorcery, "test", "memory", NULL)) { + if (ast_sorcery_apply_default(sorcery, "test", "memory", NULL) != AST_SORCERY_APPLY_SUCCESS) { ast_test_status_update(test, "Failed to set a known wizard as a default\n"); return AST_TEST_FAIL; } @@ -1192,7 +1192,7 @@ AST_TEST_DEFINE(objectset_create_regex) return AST_TEST_FAIL; } - if (ast_sorcery_apply_default(sorcery, "test", "memory", NULL) || + if ((ast_sorcery_apply_default(sorcery, "test", "memory", NULL) != AST_SORCERY_APPLY_SUCCESS) || ast_sorcery_internal_object_register(sorcery, "test", test_sorcery_object_alloc, NULL, test_apply_handler)) { ast_test_status_update(test, "Failed to register 'test' object type\n"); return AST_TEST_FAIL; @@ -1292,7 +1292,7 @@ AST_TEST_DEFINE(objectset_apply_handler) return AST_TEST_FAIL; } - if (ast_sorcery_apply_default(sorcery, "test", "memory", NULL) || + if ((ast_sorcery_apply_default(sorcery, "test", "memory", NULL) != AST_SORCERY_APPLY_SUCCESS) || ast_sorcery_internal_object_register(sorcery, "test", test_sorcery_object_alloc, NULL, test_apply_handler)) { ast_test_status_update(test, "Failed to register 'test' object type\n"); return AST_TEST_FAIL; @@ -1387,7 +1387,7 @@ AST_TEST_DEFINE(objectset_transform) return AST_TEST_FAIL; } - if (ast_sorcery_apply_default(sorcery, "test", "memory", NULL)) { + if (ast_sorcery_apply_default(sorcery, "test", "memory", NULL) != AST_SORCERY_APPLY_SUCCESS) { ast_test_status_update(test, "Failed to set a known wizard as a default\n"); return AST_TEST_FAIL; } @@ -1453,7 +1453,7 @@ AST_TEST_DEFINE(objectset_apply_fields) return AST_TEST_FAIL; } - if (ast_sorcery_apply_default(sorcery, "test", "memory", NULL) || + if ((ast_sorcery_apply_default(sorcery, "test", "memory", NULL) != AST_SORCERY_APPLY_SUCCESS) || ast_sorcery_internal_object_register(sorcery, "test", test_sorcery_object_alloc, NULL, test_apply_handler)) { ast_test_status_update(test, "Failed to register 'test' object type\n"); return AST_TEST_FAIL; @@ -2244,7 +2244,7 @@ AST_TEST_DEFINE(caching_wizard_behavior) goto end; } - if (ast_sorcery_apply_config(sorcery, "test_sorcery_cache")) { + if (ast_sorcery_apply_config(sorcery, "test_sorcery_cache") != AST_SORCERY_APPLY_SUCCESS) { ast_test_status_update(test, "Failed to apply configured object mappings\n"); goto end; } @@ -2489,7 +2489,7 @@ AST_TEST_DEFINE(configuration_file_wizard) return AST_TEST_FAIL; } - if (ast_sorcery_apply_default(sorcery, "test", "config", "test_sorcery.conf")) { + if (ast_sorcery_apply_default(sorcery, "test", "config", "test_sorcery.conf") != AST_SORCERY_APPLY_SUCCESS) { ast_test_status_update(test, "Could not set a default wizard of the 'config' type, so skipping since it may not be loaded\n"); return AST_TEST_NOT_RUN; } @@ -2552,7 +2552,7 @@ AST_TEST_DEFINE(configuration_file_wizard_with_file_integrity) return AST_TEST_FAIL; } - if (ast_sorcery_apply_default(sorcery, "test", "config", "test_sorcery.conf,integrity=file")) { + if (ast_sorcery_apply_default(sorcery, "test", "config", "test_sorcery.conf,integrity=file") != AST_SORCERY_APPLY_SUCCESS) { ast_test_status_update(test, "Could not set a default wizard of the 'config' type, so skipping since it may not be loaded\n"); return AST_TEST_NOT_RUN; } @@ -2606,7 +2606,7 @@ AST_TEST_DEFINE(configuration_file_wizard_with_criteria) return AST_TEST_FAIL; } - if (ast_sorcery_apply_default(sorcery, "test", "config", "test_sorcery.conf,criteria=type=zombies")) { + if (ast_sorcery_apply_default(sorcery, "test", "config", "test_sorcery.conf,criteria=type=zombies") != AST_SORCERY_APPLY_SUCCESS) { ast_test_status_update(test, "Could not set a default wizard of the 'config' type, so skipping since it may not be loaded\n"); return AST_TEST_NOT_RUN; } @@ -2665,7 +2665,7 @@ AST_TEST_DEFINE(configuration_file_wizard_retrieve_field) return AST_TEST_FAIL; } - if (ast_sorcery_apply_default(sorcery, "test", "config", "test_sorcery.conf")) { + if (ast_sorcery_apply_default(sorcery, "test", "config", "test_sorcery.conf") != AST_SORCERY_APPLY_SUCCESS) { ast_test_status_update(test, "Could not set a default wizard of the 'config' type, so skipping since it may not be loaded\n"); return AST_TEST_NOT_RUN; } @@ -2728,7 +2728,7 @@ AST_TEST_DEFINE(configuration_file_wizard_retrieve_multiple) return AST_TEST_FAIL; } - if (ast_sorcery_apply_default(sorcery, "test", "config", "test_sorcery.conf")) { + if (ast_sorcery_apply_default(sorcery, "test", "config", "test_sorcery.conf") != AST_SORCERY_APPLY_SUCCESS) { ast_test_status_update(test, "Could not set a default wizard of the 'config' type, so skipping since it may not be loaded\n"); return AST_TEST_NOT_RUN; } @@ -2799,7 +2799,7 @@ AST_TEST_DEFINE(configuration_file_wizard_retrieve_multiple_all) return AST_TEST_FAIL; } - if (ast_sorcery_apply_default(sorcery, "test", "config", "test_sorcery.conf")) { + if (ast_sorcery_apply_default(sorcery, "test", "config", "test_sorcery.conf") != AST_SORCERY_APPLY_SUCCESS) { ast_test_status_update(test, "Could not set a default wizard of the 'config' type, so skipping since it may not be loaded\n"); return AST_TEST_NOT_RUN; } diff --git a/tests/test_sorcery_astdb.c b/tests/test_sorcery_astdb.c index 41e7adbc9..b87ed74f8 100644 --- a/tests/test_sorcery_astdb.c +++ b/tests/test_sorcery_astdb.c @@ -60,7 +60,7 @@ static struct ast_sorcery *alloc_and_initialize_sorcery(void) return NULL; } - if (ast_sorcery_apply_default(sorcery, "test", "astdb", "test") || + if ((ast_sorcery_apply_default(sorcery, "test", "astdb", "test") != AST_SORCERY_APPLY_SUCCESS) || ast_sorcery_internal_object_register(sorcery, "test", test_sorcery_object_alloc, NULL, NULL)) { ast_sorcery_unref(sorcery); return NULL; diff --git a/tests/test_sorcery_realtime.c b/tests/test_sorcery_realtime.c index 7cf42d210..e3d0a4b37 100644 --- a/tests/test_sorcery_realtime.c +++ b/tests/test_sorcery_realtime.c @@ -212,7 +212,7 @@ static struct ast_sorcery *alloc_and_initialize_sorcery(void) return NULL; } - if (ast_sorcery_apply_default(sorcery, "test", "realtime", "sorcery_realtime_test") || + if ((ast_sorcery_apply_default(sorcery, "test", "realtime", "sorcery_realtime_test") != AST_SORCERY_APPLY_SUCCESS) || ast_sorcery_internal_object_register(sorcery, "test", test_sorcery_object_alloc, NULL, NULL) || !(realtime_objects = ast_config_new())) { ast_sorcery_unref(sorcery); |