Asterisk - The Open Source Telephony Project  21.4.1
Data Structures | Functions | Variables
test_sorcery.c File Reference

Sorcery Unit Tests. More...

#include "asterisk.h"
#include "asterisk/test.h"
#include "asterisk/module.h"
#include "asterisk/astobj2.h"
#include "asterisk/pbx.h"
#include "asterisk/sorcery.h"
#include "asterisk/logger.h"
#include "asterisk/json.h"

Go to the source code of this file.

Data Structures

struct  sorcery_test_caching
 Test structure for caching. More...
 
struct  sorcery_test_observer
 Test structure for observer. More...
 
struct  test_sorcery_object
 Dummy sorcery object. More...
 

Functions

static void __reg_module (void)
 
static void __unreg_module (void)
 
static struct ast_sorceryalloc_and_initialize_sorcery (void)
 
struct ast_moduleAST_MODULE_SELF_SYM (void)
 
 AST_TEST_DEFINE (wizard_registration)
 
 AST_TEST_DEFINE (sorcery_open)
 
 AST_TEST_DEFINE (apply_default)
 
 AST_TEST_DEFINE (apply_config)
 
 AST_TEST_DEFINE (object_register)
 
 AST_TEST_DEFINE (object_register_without_mapping)
 
 AST_TEST_DEFINE (object_field_register)
 
 AST_TEST_DEFINE (object_fields_register)
 
 AST_TEST_DEFINE (object_alloc_with_id)
 
 AST_TEST_DEFINE (object_alloc_without_id)
 
 AST_TEST_DEFINE (object_copy)
 
 AST_TEST_DEFINE (object_copy_native)
 
 AST_TEST_DEFINE (object_diff)
 
 AST_TEST_DEFINE (object_diff_native)
 
 AST_TEST_DEFINE (objectset_create)
 
 AST_TEST_DEFINE (objectset_json_create)
 
 AST_TEST_DEFINE (objectset_create_regex)
 
 AST_TEST_DEFINE (objectset_apply)
 
 AST_TEST_DEFINE (objectset_apply_handler)
 
 AST_TEST_DEFINE (objectset_apply_invalid)
 
 AST_TEST_DEFINE (objectset_transform)
 
 AST_TEST_DEFINE (objectset_apply_fields)
 
 AST_TEST_DEFINE (extended_fields)
 
 AST_TEST_DEFINE (changeset_create)
 
 AST_TEST_DEFINE (changeset_create_unchanged)
 
 AST_TEST_DEFINE (object_create)
 
 AST_TEST_DEFINE (object_retrieve_id)
 
 AST_TEST_DEFINE (object_retrieve_field)
 
 AST_TEST_DEFINE (object_retrieve_multiple_all)
 
 AST_TEST_DEFINE (object_retrieve_multiple_field)
 
 AST_TEST_DEFINE (object_retrieve_regex)
 
 AST_TEST_DEFINE (object_update)
 
 AST_TEST_DEFINE (object_update_uncreated)
 
 AST_TEST_DEFINE (object_delete)
 
 AST_TEST_DEFINE (object_delete_uncreated)
 
 AST_TEST_DEFINE (object_is_stale)
 
 AST_TEST_DEFINE (caching_wizard_behavior)
 
 AST_TEST_DEFINE (object_type_observer)
 
 AST_TEST_DEFINE (configuration_file_wizard)
 
 AST_TEST_DEFINE (configuration_file_wizard_with_file_integrity)
 
 AST_TEST_DEFINE (configuration_file_wizard_with_criteria)
 
 AST_TEST_DEFINE (configuration_file_wizard_retrieve_field)
 
 AST_TEST_DEFINE (configuration_file_wizard_retrieve_multiple)
 
 AST_TEST_DEFINE (configuration_file_wizard_retrieve_multiple_all)
 
 AST_TEST_DEFINE (dialplan_function)
 
 AST_TEST_DEFINE (object_field_registered)
 
 AST_TEST_DEFINE (global_observation)
 
 AST_TEST_DEFINE (instance_observation)
 
 AST_TEST_DEFINE (wizard_observation)
 
 AST_TEST_DEFINE (wizard_apply_and_insert)
 
 AST_TEST_DEFINE (wizard_read_only)
 
static void instance_loaded_observer (const char *name, const struct ast_sorcery *sorcery, int reloaded)
 
static void instance_observer (const char *name, struct ast_sorcery *sorcery)
 
static void instance_reloaded_observer (const char *name, const struct ast_sorcery *sorcery, int reloaded)
 
static int jack_handler (const struct aco_option *opt, struct ast_variable *var, void *obj)
 
static int jack_str (const void *obj, const intptr_t *args, char **buf)
 
static int jim_handler (const struct aco_option *opt, struct ast_variable *var, void *obj)
 
static int jim_vl (const void *obj, struct ast_variable **fields)
 
static int load_module (void)
 
static void object_type_loaded_observer (const char *name, const struct ast_sorcery *sorcery, const char *object_type, int reloaded)
 
static void object_type_registered_observer (const char *name, struct ast_sorcery *sorcery, const char *object_type)
 
static void object_type_reloaded_observer (const char *name, const struct ast_sorcery *sorcery, const char *object_type, int reloaded)
 
static void sorcery_observer_created (const void *object)
 
static void sorcery_observer_deleted (const void *object)
 
static void sorcery_observer_loaded (const char *object_type)
 
static void sorcery_observer_updated (const void *object)
 
static void sorcery_test_close (void *data)
 
static int sorcery_test_create (const struct ast_sorcery *sorcery, void *data, void *object)
 
static int sorcery_test_delete (const struct ast_sorcery *sorcery, void *data, void *object)
 
static int sorcery_test_is_stale (const struct ast_sorcery *sorcery, void *data, void *object)
 
static void sorcery_test_load (void *data, const struct ast_sorcery *sorcery, const char *type)
 
static void * sorcery_test_open (const char *data)
 
static void * sorcery_test_retrieve_id (const struct ast_sorcery *sorcery, void *data, const char *type, const char *id)
 
static int sorcery_test_update (const struct ast_sorcery *sorcery, void *data, void *object)
 
static int test_apply_handler (const struct ast_sorcery *sorcery, void *obj)
 Simple apply handler which sets global scope integer to 1 if called.
 
static int test_sorcery_copy (const void *src, void *dst)
 Internal function which copies pre-defined data into an object, natively.
 
static int test_sorcery_diff (const void *original, const void *modified, struct ast_variable **changes)
 Internal function which creates a pre-defined diff natively.
 
static void * test_sorcery_object_alloc (const char *id)
 Internal function to allocate a test object.
 
static void test_sorcery_object_destroy (void *obj)
 Internal function to destroy a test object.
 
static int test_sorcery_regex_fields (const void *obj, struct ast_variable **fields)
 Internal function which creates some ast_variable structures.
 
static int test_sorcery_regex_handler (const struct aco_option *opt, struct ast_variable *var, void *obj)
 Internal function which sets some values.
 
static struct ast_variabletest_sorcery_transform (struct ast_variable *set)
 Internal function for object set transformation.
 
static int unload_module (void)
 
static void wizard_loaded_observer (const char *name, const struct ast_sorcery_wizard *wizard, const char *object_type, int reloaded)
 
static void wizard_mapped_observer (const char *name, struct ast_sorcery *sorcery, const char *object_type, struct ast_sorcery_wizard *wizard, const char *wizard_args, void *wizard_data)
 
static void wizard_observer (const char *name, const struct ast_sorcery_wizard *wizard)
 
static void wizard_reloaded_observer (const char *name, const struct ast_sorcery_wizard *wizard, const char *object_type, int reloaded)
 

Variables

static struct ast_module_info __mod_info = { .name = AST_MODULE, .flags = AST_MODFLAG_LOAD_ORDER , .description = "Sorcery test module" , .key = "This paragraph is copyright (c) 2006 by Digium, Inc. \In order for your module to load, it must return this \key via a function called \"key\". Any code which \includes this paragraph must be licensed under the GNU \General Public License version 2 or later (at your \option). In addition to Digium's general reservations \of rights, Digium expressly reserves the right to \allow other parties to license this paragraph under \different terms. Any use of Digium, Inc. trademarks or \logos (including \"Asterisk\" or \"Digium\") without \express written permission of Digium, Inc. is prohibited.\n" , .buildopt_sum = AST_BUILDOPT_SUM, .load = load_module, .unload = unload_module, .load_pri = AST_MODPRI_DEFAULT, .support_level = AST_MODULE_SUPPORT_CORE, }
 
static int apply_handler_called
 Global scope apply handler integer to make sure it executed.
 
static const struct ast_module_infoast_module_info = &__mod_info
 
static struct sorcery_test_caching cache = { 0, }
 Global scope caching structure for testing.
 
static int event_observed
 
static struct sorcery_test_observer observer
 Global scope observer structure for testing.
 
static const struct ast_sorcery_observer test_observer
 Test sorcery observer implementation.
 
static struct ast_sorcery_wizard test_read_only_wizard
 
static struct ast_sorcery_wizard test_wizard
 Dummy sorcery wizards, not actually used so we only populate the name and nothing else.
 
static struct ast_sorcery_wizard test_wizard2
 
static void * wizard2_data
 

Detailed Description

Sorcery Unit Tests.

Author
Joshua Colp jcolp.nosp@m.@dig.nosp@m.ium.c.nosp@m.om

Definition in file test_sorcery.c.

Variable Documentation

struct ast_sorcery_wizard test_read_only_wizard
static
Initial value:
= {
.name = "test-read-only",
.retrieve_id = sorcery_test_retrieve_id,
}

Definition at line 3564 of file test_sorcery.c.