|
|
|
@ -43,6 +43,7 @@
|
|
|
|
|
#include "asterisk/stringfields.h"
|
|
|
|
|
#include "asterisk/threadstorage.h"
|
|
|
|
|
#include "asterisk/test.h"
|
|
|
|
|
#include "asterisk/vector.h"
|
|
|
|
|
|
|
|
|
|
static enum ast_test_result_state test_chan_integer(struct ast_test *test,
|
|
|
|
|
struct ast_channel *c, int *ifield, const char *expression)
|
|
|
|
@ -225,6 +226,7 @@ AST_TEST_DEFINE(test_substitution)
|
|
|
|
|
struct ast_channel *c;
|
|
|
|
|
int i;
|
|
|
|
|
enum ast_test_result_state res = AST_TEST_PASS;
|
|
|
|
|
struct ast_vector_string *funcs;
|
|
|
|
|
|
|
|
|
|
switch (cmd) {
|
|
|
|
|
case TEST_INIT:
|
|
|
|
@ -302,11 +304,12 @@ AST_TEST_DEFINE(test_substitution)
|
|
|
|
|
#undef TEST
|
|
|
|
|
|
|
|
|
|
/* For testing dialplan functions */
|
|
|
|
|
for (i = 0; ; i++) {
|
|
|
|
|
char *cmd = ast_cli_generator("core show function", "", i);
|
|
|
|
|
if (cmd == NULL) {
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
funcs = ast_cli_completion_vector("core show function", "");
|
|
|
|
|
|
|
|
|
|
/* Skip "best match" element 0 */
|
|
|
|
|
for (i = 1; funcs && i < AST_VECTOR_SIZE(funcs); i++) {
|
|
|
|
|
char *cmd = AST_VECTOR_GET(funcs, i);
|
|
|
|
|
|
|
|
|
|
if (strcmp(cmd, "CHANNEL") && strcmp(cmd, "CALLERID") && strncmp(cmd, "CURL", 4) &&
|
|
|
|
|
strncmp(cmd, "AES", 3) && strncmp(cmd, "BASE64", 6) &&
|
|
|
|
|
strcmp(cmd, "CDR") && strcmp(cmd, "ENV") && strcmp(cmd, "GLOBAL") &&
|
|
|
|
@ -321,10 +324,14 @@ AST_TEST_DEFINE(test_substitution)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
ast_free(cmd);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (funcs) {
|
|
|
|
|
AST_VECTOR_CALLBACK_VOID(funcs, ast_free);
|
|
|
|
|
AST_VECTOR_PTR_FREE(funcs);
|
|
|
|
|
}
|
|
|
|
|
ast_hangup(c);
|
|
|
|
|
|
|
|
|
|
return res;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|