the second argument is optional and defines the type (string by default)]],
['args_schema'] = {ts.string, ts.string:is_optional()}
},
+ -- Get value of specific key from task cache
+ ['task_cache'] = {
+ ['get_value'] = function(task, args)
+ local val = task:cache_get(args[1])
+ if not val then
+ return
+ end
+ if type(val) == 'table' then
+ if not val[1] then
+ return
+ end
+ return val, 'string_list'
+ end
+ return val, 'string'
+ end,
+ ['description'] = [[Get value of specific key from task cache. The first argument must be
+the key name]],
+ ['args_schema'] = {ts.string}
+ },
-- Get specific HTTP request header. The first argument must be header name.
['request_header'] = {
['get_value'] = function(task, args)
task:process_message()
task:get_mempool():set_variable("int_var", 1)
task:get_mempool():set_variable("str_var", "str 1")
+ task:cache_set('cachevar1', 'hello\x00world')
+ task:cache_set('cachevar2', {'hello', 'world'})
if not res then
assert_true(false, "failed to load message")
end
selector = "header('Subject').regexp('.*').first",
expect = {"Second, lower-cased header subject"}
},
+
+ ["task cache string"] = {
+ selector = "task_cache('cachevar1')",
+ expect = {"hello\x00world"}
+ },
+ ["task cache table"] = {
+ selector = "task_cache('cachevar2')",
+ expect = {{"hello", "world"}}
+ },
}
for case_name, case in lua_util.spairs(cases) do