From: Vsevolod Stakhov Date: Thu, 31 Mar 2016 11:17:32 +0000 (+0100) Subject: [Tests] Add more tests for expressions X-Git-Tag: 1.2.2~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=69afd99f549e49252c36f6d3d08d992b1a8a8e56;p=thirdparty%2Frspamd.git [Tests] Add more tests for expressions --- diff --git a/test/lua/unit/expressions.lua b/test/lua/unit/expressions.lua index c0677f435b..f2c4014b52 100644 --- a/test/lua/unit/expressions.lua +++ b/test/lua/unit/expressions.lua @@ -25,23 +25,24 @@ context("Rspamd expressions", function() local pool = rspamd_mempool.create() local cases = { - {'A & B | !C', 'C ! A B & |'}, - {'A & (B | !C)', 'A B C ! | &'}, + {'A & B | !C', '(C) ! (A) (B) & |'}, + {'A & (B | !C)', '(A) (B) (C) ! | &'}, {'A & B &', nil}, -- Unbalanced braces {'(((A))', nil}, -- Balanced braces - {'(((A)))', 'A'}, + {'(((A)))', '(A)'}, -- Plus and comparision operators - {'A + B + C + D > 2', '2 A B C D +(4) >'}, + {'A + B + C + D > 2', '2 (A) (B) (C) (D) +(4) >'}, -- Plus and logic operators - {'((A + B + C + D) > 2) & D', 'D 2 A B C D +(4) > &'}, + {'((A + B + C + D) > 2) & D', '(D) 2 (A) (B) (C) (D) +(4) > &'}, -- Associativity - {'A | B | C & D & E', 'A B C D E &(3) |(3)'}, + {'A | B | C & D & E', '(A) (B) (C) (D) (E) &(3) |(3)'}, -- More associativity - {'1 | 0 & 0 | 0', '1 0 0 & 0 |(3)'}, + {'1 | 0 & 0 | 0', '(1) (0) (0) (0) & |(3)'}, + {'(A) & (B) & ((C) | (D) | (E) | (F))', '(A) (B) (C) (D) (E) (F) |(4) &(3)' }, -- Extra space - {'A & B | ! C', 'C ! A B & |'}, + {'A & B | ! C', '(C) ! (A) (B) & |'}, } for _,c in ipairs(cases) do local expr,err = rspamd_expression.create(c[1], @@ -76,6 +77,11 @@ context("Rspamd expressions", function() D = false, E = true, F = false, + G = false, + H = false, + I = false, + J = false, + K = false, } local cases = { {'A & B | !C', 0}, @@ -87,6 +93,7 @@ context("Rspamd expressions", function() {'F && ((A + B + C + D) > 1)', 0}, {'(E) && ((B + B + B + B) >= 1)', 0}, {'!!C', 1}, + {'(B) & (D) & ((G) | (H) | (I) | (A))', 0} } for _,c in ipairs(cases) do local expr,err = rspamd_expression.create(c[1],