summaryrefslogtreecommitdiffstats
path: root/test/functional/lua/deps.lua
blob: 6171db699553544f3d1f53d0cb72029c931040b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
local cb = function(task)
  task:insert_result('TOP', 1.0)
end

local cb_dep1 = function(task)
  if task:get_symbol('TOP') then
    task:insert_result('DEP1', 1.0)
  end
end

local cb_gen = function(num)
  local cb_dep = function(task)
    if task:get_symbol('DEP' .. tostring(num)) then
      task:insert_result('DEP' .. tostring(num + 1), 1.0)
    end
  end

  return cb_dep
end

local id = rspamd_config:register_callback_symbol(1.0, cb)
rspamd_config:register_virtual_symbol('TOP', 1.0, id)

rspamd_config:register_symbol('DEP1', 1.0, cb_dep1)
rspamd_config:register_dependency('DEP1', 'TOP')

for i = 2,10 do
  rspamd_config:register_symbol('DEP' .. tostring(i), 1.0, cb_gen(i - 1))
  rspamd_config:register_dependency('DEP' .. tostring(i), 'DEP' .. tostring(i - 1))
end