Merge "core: Tweak startup order."
[asterisk/asterisk.git] / tests / test_ari_model.c
index 1e293d7..e5a96cd 100644 (file)
 
 #include "asterisk.h"
 
-ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
-
 #include "asterisk/utils.h"
 #include "asterisk/module.h"
 #include "asterisk/test.h"
 #include "../res/ari/ari_model_validators.h"
 
+#if defined(TEST_FRAMEWORK)
+/*!
+ * Wrapper of ast_test_validate_int() so an external function pointer is not used.
+ *
+ * \note Must do this because using an external function pointer
+ * does not play nicely when loading with RTLD_LAZY.
+ */
+static int wrap_ast_ari_validate_int(struct ast_json *json)
+{
+       return ast_ari_validate_int(json);
+}
+#endif /* defined(TEST_FRAMEWORK) */
+
+#if defined(TEST_FRAMEWORK)
+/*!
+ * Wrapper of ast_ari_validate_string() so an external function pointer is not used.
+ *
+ * \note Must do this because using an external function pointer
+ * does not play nicely when loading with RTLD_LAZY.
+ */
+static int wrap_ast_ari_validate_string(struct ast_json *json)
+{
+       return ast_ari_validate_string(json);
+}
+#endif /* defined(TEST_FRAMEWORK) */
+
 AST_TEST_DEFINE(validate_byte)
 {
        RAII_VAR(struct ast_json *, uut, NULL, ast_json_unref);
@@ -385,21 +409,21 @@ AST_TEST_DEFINE(validate_list)
 
        uut = ast_json_array_create();
        ast_test_validate(test, NULL != uut);
-       ast_test_validate(test, ast_ari_validate_list(uut, ast_ari_validate_string));
-       ast_test_validate(test, ast_ari_validate_list(uut, ast_ari_validate_int));
+       ast_test_validate(test, ast_ari_validate_list(uut, wrap_ast_ari_validate_string));
+       ast_test_validate(test, ast_ari_validate_list(uut, wrap_ast_ari_validate_int));
 
        res = ast_json_array_append(uut, ast_json_string_create(""));
        ast_test_validate(test, 0 == res);
-       ast_test_validate(test, ast_ari_validate_list(uut, ast_ari_validate_string));
-       ast_test_validate(test, !ast_ari_validate_list(uut, ast_ari_validate_int));
+       ast_test_validate(test, ast_ari_validate_list(uut, wrap_ast_ari_validate_string));
+       ast_test_validate(test, !ast_ari_validate_list(uut, wrap_ast_ari_validate_int));
 
        res = ast_json_array_append(uut, ast_json_integer_create(0));
        ast_test_validate(test, 0 == res);
-       ast_test_validate(test, !ast_ari_validate_list(uut, ast_ari_validate_string));
-       ast_test_validate(test, !ast_ari_validate_list(uut, ast_ari_validate_int));
+       ast_test_validate(test, !ast_ari_validate_list(uut, wrap_ast_ari_validate_string));
+       ast_test_validate(test, !ast_ari_validate_list(uut, wrap_ast_ari_validate_int));
 
        ast_test_validate(test,
-               !ast_ari_validate_list(ast_json_null(), ast_ari_validate_string));
+               !ast_ari_validate_list(ast_json_null(), wrap_ast_ari_validate_string));
 
        return AST_TEST_PASS;
 }
@@ -428,4 +452,9 @@ static int load_module(void)
        return AST_MODULE_LOAD_SUCCESS;
 }
 
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Skeleton (sample) Test");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Skeleton (sample) Test",
+       .support_level = AST_MODULE_SUPPORT_CORE,
+       .load = load_module,
+       .unload = unload_module,
+       .requires = "res_ari_model",
+);