mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-06 04:30:28 +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;
|
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
|
* \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 */
|
/*! Voicemail not registered warning */
|
||||||
static int vm_warnings;
|
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)
|
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);
|
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
|
* envelope files on the file system
|
||||||
*/
|
*/
|
||||||
#define VM_API_TEST_SETUP do { \
|
#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; \
|
VM_API_TEST_CLEANUP; \
|
||||||
ast_test_status_update(test, "Failed to set up necessary mock objects for voicemail API test\n"); \
|
ast_test_status_update(test, "Failed to set up necessary mock objects for voicemail API test\n"); \
|
||||||
return AST_TEST_FAIL; \
|
return AST_TEST_FAIL; \
|
||||||
|
Reference in New Issue
Block a user