mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-05 12:16:00 +00:00
test_voicemail_api: Add check for a registered voicemail provider before tests.
It is much nicer diagnosing a test failure if app_voicemail is actually loaded. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@403726 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -567,6 +567,15 @@ struct ast_vm_functions {
|
||||
ast_vm_msg_play_fn *msg_play;
|
||||
};
|
||||
|
||||
/*!
|
||||
* \brief Determine if a voicemail provider is registered.
|
||||
* \since 13.0.0
|
||||
*
|
||||
* \retval 0 if no privider registered.
|
||||
* \retval 1 if a privider is registered.
|
||||
*/
|
||||
int ast_vm_is_registered(void);
|
||||
|
||||
/*!
|
||||
* \brief Set voicemail function callbacks
|
||||
*
|
||||
|
11
main/app.c
11
main/app.c
@@ -432,6 +432,17 @@ static AO2_GLOBAL_OBJ_STATIC(vm_provider);
|
||||
/*! Voicemail not registered warning */
|
||||
static int vm_warnings;
|
||||
|
||||
int ast_vm_is_registered(void)
|
||||
{
|
||||
struct ast_vm_functions *table;
|
||||
int is_registered;
|
||||
|
||||
table = ao2_global_obj_ref(vm_provider);
|
||||
is_registered = table ? 1 : 0;
|
||||
ao2_cleanup(table);
|
||||
return is_registered;
|
||||
}
|
||||
|
||||
int __ast_vm_register(const struct ast_vm_functions *vm_table, struct ast_module *module)
|
||||
{
|
||||
RAII_VAR(struct ast_vm_functions *, table, NULL, ao2_cleanup);
|
||||
|
@@ -72,7 +72,10 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
|
||||
* envelope files on the file system
|
||||
*/
|
||||
#define VM_API_TEST_SETUP do { \
|
||||
if (test_vm_api_test_setup()) { \
|
||||
if (!ast_vm_is_registered()) { \
|
||||
ast_test_status_update(test, "No voicemail provider registered.\n"); \
|
||||
return AST_TEST_FAIL; \
|
||||
} else if (test_vm_api_test_setup()) { \
|
||||
VM_API_TEST_CLEANUP; \
|
||||
ast_test_status_update(test, "Failed to set up necessary mock objects for voicemail API test\n"); \
|
||||
return AST_TEST_FAIL; \
|
||||
|
Reference in New Issue
Block a user