]>
Commit | Line | Data |
---|---|---|
924f73bc | 1 | |
2 | /* | |
d090e020 | 3 | * DEBUG: section 86 ESI Expressions |
924f73bc | 4 | * AUTHOR: Robert Collins |
5 | * | |
6 | * SQUID Web Proxy Cache http://www.squid-cache.org/ | |
7 | * ---------------------------------------------------------- | |
8 | * | |
9 | * Squid is the result of efforts by numerous individuals from | |
10 | * the Internet community; see the CONTRIBUTORS file for full | |
11 | * details. Many organizations have provided support for Squid's | |
12 | * development; see the SPONSORS file for full details. Squid is | |
13 | * Copyrighted (C) 2001 by the Regents of the University of | |
14 | * California; see the COPYRIGHT file for full details. Squid | |
15 | * incorporates software developed and/or copyrighted by other | |
16 | * sources; see the CREDITS file for full details. | |
17 | * | |
18 | * This program is free software; you can redistribute it and/or modify | |
19 | * it under the terms of the GNU General Public License as published by | |
20 | * the Free Software Foundation; either version 2 of the License, or | |
21 | * (at your option) any later version. | |
26ac0430 | 22 | * |
924f73bc | 23 | * This program is distributed in the hope that it will be useful, |
24 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
25 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
26 | * GNU General Public License for more details. | |
26ac0430 | 27 | * |
924f73bc | 28 | * You should have received a copy of the GNU General Public License |
29 | * along with this program; if not, write to the Free Software | |
30 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA. | |
31 | * | |
32 | */ | |
33 | ||
582c2af2 | 34 | #include "squid.h" |
f99c2cfe | 35 | #include "esi/Expression.h" |
924f73bc | 36 | |
37 | int | |
38 | main () | |
39 | { | |
40 | char const *expressions[] = { | |
26ac0430 AJ |
41 | "!(1==1)", "!(1!=1)", "1!=1", "!1==1", "1==1", |
42 | "1 <=1","2<=1", "1 < 1", "1 < 2", "-1 < 1","!-1<1", | |
43 | "1>2","2>1","2>=2", "2>3", "1==1&1==1","1==1&1==0", | |
44 | "!('a'<='c')", | |
45 | "(1==1)|('abc'=='def')", | |
46 | "(4!=5)&(4==5)", | |
47 | "(1==1)|(2==3)&(3==4)", /* should be true because of precedence */ | |
48 | "(1 & 4)", | |
49 | "(\"abc\" | \"edf\")", "1==1==1", | |
50 | "!('')", | |
51 | /* End of array */"" | |
52 | }; | |
924f73bc | 53 | |
54 | int results[] = {0, 1, 0, 0, 1, | |
55 | 1, 0, 0, 1, 1, | |
56 | 0, 0, 1, 1, 0, | |
57 | 1, 0, 0, 1, 0, | |
58 | 1, 0, 0, 0, 0, | |
26ac0430 AJ |
59 | 1, 0 |
60 | }; | |
924f73bc | 61 | |
62 | int i = 0; | |
63 | ||
64 | while (strlen (expressions[i])) { | |
65 | int result = ESIExpression::Evaluate (expressions[i]); | |
66 | #if VERBOSEDEBUG | |
67 | ||
68 | printf("Expr '%s' = '%s' (expected %s)\n", expressions[i], | |
69 | result ? "true" : "false", | |
70 | results[i] ? "true" : "false"); | |
71 | #endif | |
72 | ||
73 | if (result != results[i]) | |
74 | return 1; | |
75 | ||
76 | ++i; | |
77 | } | |
78 | ||
79 | return 0; | |
80 | } |