]> source.dussan.org Git - rspamd.git/commitdiff
Add unit test for lua regexp.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 4 Mar 2015 16:01:14 +0000 (16:01 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 4 Mar 2015 16:01:14 +0000 (16:01 +0000)
test/lua/unit/regxep.lua [new file with mode: 0644]

diff --git a/test/lua/unit/regxep.lua b/test/lua/unit/regxep.lua
new file mode 100644 (file)
index 0000000..f063efe
--- /dev/null
@@ -0,0 +1,31 @@
+context("Regexp unit tests", function()
+  local re = require("rspamd_regexp")
+  
+  test("Regexp creation", function()
+    assert_not_nil(re.create_cached('/test$/m'))
+    assert_not_nil(re.create_cached('^test$', 'm'))
+    assert_not_nil(re.create_cached('m,test,m'))
+    assert_not_nil(re.create_cached('m|test|m'))
+  end)
+  test("Regexp match", function()
+    local cases = {
+      {'/test$/m', '123test', true},
+      {'/^test$/m', '123test', false},
+      {'m,test,', 'test', true},
+      {'m,test,', 'test123', false},
+      {'/test/i', 'TeSt123', true},
+      {'/тест/i', 'ТесТ', true},
+    }
+    
+    for _,c in ipairs(cases) do
+      local r = re.create_cached(c[1])
+      assert_not_nil(r)
+      local res = r:match(c[2])
+      local m = false
+      if res then m = true end
+      
+      assert_equal(m, c[3])
+    end
+  end)
+  end
+)
\ No newline at end of file