mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-24 05:38:11 +00:00
OK, here is everything I changed to fix 7474:
1. ael/ael.flex -- the "fix" is here. In short, I modified the pattern for the chars that break args, to exclude those chars that would normally break args if they are preceded by a backslash. I did this to 3 patterns where really, this kind of exclusion should be placed. 2. ael_lex.c is an updated output from lex. 3. the ael-test stuff -- instituted a regression test for this condition. as ael_ntest9. The "n" in the name means that instead of just getting the syntax/semantic errors and high-level output from aelparse, we also want the compilation results to be in the comparison file. (remove the -n option). git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@37255 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
12
pbx/ael/ael-test/ael-ntest9/extensions.ael
Executable file
12
pbx/ael/ael-test/ael-ntest9/extensions.ael
Executable file
@@ -0,0 +1,12 @@
|
||||
|
||||
context workext {
|
||||
ignorepat => 8;
|
||||
ignorepat => 9;
|
||||
793 => {
|
||||
Set(QUERYSTRING=SELECT\ foo\,\ bar\ FROM\ foobar);
|
||||
Verbose(2|${QUERYSTRING});
|
||||
query="SELECT foo\, bar FROM foobar" ;
|
||||
Verbose(2|${query}) ;
|
||||
}
|
||||
}
|
||||
|
||||
29
pbx/ael/ael-test/ref.ael-ntest9
Normal file
29
pbx/ael/ael-test/ref.ael-ntest9
Normal file
@@ -0,0 +1,29 @@
|
||||
Executed ast_register_file_version();
|
||||
Executed ast_register_file_version();
|
||||
Executed ast_register_file_version();
|
||||
Executed ast_register_file_version();
|
||||
|
||||
(You can use the -n option if you aren't interested in seeing all the instructions generated by the compiler)
|
||||
|
||||
Executed ast_cli_register_multiple();
|
||||
LOG: lev:2 file:../pbx/pbx_ael.c line:3453 func: pbx_load_module Starting AEL load process.
|
||||
LOG: lev:2 file:../pbx/pbx_ael.c line:3460 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
|
||||
LOG: lev:2 file:../pbx/pbx_ael.c line:3463 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
|
||||
LOG: lev:2 file:../pbx/pbx_ael.c line:3466 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
|
||||
Executed ast_context_create(conts, name=workext, registrar=pbx_ael);
|
||||
Executed ast_context_add_ignorepat2(con, value=8, registrar=pbx_ael);
|
||||
Executed ast_context_add_ignorepat2(con, value=9, registrar=pbx_ael);
|
||||
Executed ast_add_extension2(con, rep=0, exten=793, priority=1, label=(null), callerid=(null), appl=Set, data=QUERYSTRING=SELECT\ foo\,\ bar\ FROM\ foobar, FREE, registrar=pbx_ael);
|
||||
Executed ast_add_extension2(con, rep=0, exten=793, priority=2, label=(null), callerid=(null), appl=Verbose, data=2|${QUERYSTRING}, FREE, registrar=pbx_ael);
|
||||
Executed ast_add_extension2(con, rep=0, exten=793, priority=3, label=(null), callerid=(null), appl=Set, data=query=$["SELECT foo\, bar FROM foobar" ], FREE, registrar=pbx_ael);
|
||||
Executed ast_add_extension2(con, rep=0, exten=793, priority=4, label=(null), callerid=(null), appl=Verbose, data=2|${query}, FREE, registrar=pbx_ael);
|
||||
LOG: lev:2 file:../pbx/pbx_ael.c line:3468 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
|
||||
Executed ast_merge_contexts_and_delete();
|
||||
LOG: lev:2 file:../pbx/pbx_ael.c line:3471 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
|
||||
Executed ast_walk_contexts();
|
||||
LOG: lev:2 file:../pbx/pbx_ael.c line:3474 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
|
||||
LOG: lev:4 file:ael2_parse line:253 func: main 1 contexts, 1 extensions, 4 priorities
|
||||
Executed ast_unregister_file_version();
|
||||
Executed ast_unregister_file_version();
|
||||
Executed ast_unregister_file_version();
|
||||
Executed ast_unregister_file_version();
|
||||
@@ -20,5 +20,21 @@ for i in ael-test*; do
|
||||
diff -u $ORIG $NEW
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
for i in ael-ntest*; do
|
||||
echo -n Test: $i.................
|
||||
(cd $i; ../../../../utils/aelparse -d | grep -v -i 'seconds' > ../res.$i)
|
||||
do_filter < res.$i > $NEW
|
||||
do_filter < ref.$i > $ORIG
|
||||
if (diff -q $NEW $ORIG > /dev/null 2>&1 ) then
|
||||
echo PASSED
|
||||
rm res.$i
|
||||
else
|
||||
echo %%%%%%FAILED%%%%%%
|
||||
# diff -u ref.$i res.$i
|
||||
diff -u $ORIG $NEW
|
||||
fi
|
||||
|
||||
done
|
||||
rm $NEW $ORIG
|
||||
|
||||
Reference in New Issue
Block a user