]> source.dussan.org Git - rspamd.git/commitdiff
Add captures unit test.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 30 Jun 2015 12:43:11 +0000 (13:43 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 30 Jun 2015 12:49:25 +0000 (13:49 +0100)
test/lua/unit/regxep.lua

index 3aca6c7ba4593125503fe3a5343f89276dd92540..8ee26be0761aa49d0af1ba900d6767f8337fe6ec 100644 (file)
@@ -32,6 +32,26 @@ context("Regexp unit tests", function()
     end
   end)
   
+  test("Regexp capture", function()
+    local cases = {
+      {'Body=(\\S+)(?: Fuz1=(\\S+))?(?: Fuz2=(\\S+))?', 
+        'mc-filter4 1120; Body=1 Fuz1=1 Fuz2=1', 
+        {'Body=1 Fuz1=1 Fuz2=1', '1', '1', '1'}}
+    }
+    for _,c in ipairs(cases) do
+      local r = re.create_cached(c[1])
+      assert_not_nil(r, "cannot parse " .. c[1])
+      local res = r:search(c[2], false, true)
+      
+      assert_not_nil(res, "cannot find pattern")
+      
+      for n,m in ipairs(res[1]) do
+        assert_equal(m, c[3][n], string.format("'%s' doesn't match with '%s'",
+          c[3][n], c[1]))
+      end
+    end
+  end)
+  
   test("Regexp split", function()
     local cases = {
       {'\\s', 'one', {'one'}}, -- one arg