[tarantool-patches] [PATCH v4 3/4] box-tap: syslog destination test unix socket
Vladimir Davydov
vdavydov.dev at gmail.com
Tue Jul 31 16:55:35 MSK 2018
We don't submit tests accompanying a feature in separate patches unless
there's a reason to do that. Please fold patches 3 and 4 in patch 1.
On Tue, Jul 31, 2018 at 01:18:32PM +0300, Olga Arkhangelskaia wrote:
> Adds syslog destination unix test in box-tap.
> Test redirects logs to newly created unix socket and sets appropriate
> log level. If log receives the same level - test passes. In case if
> syslog is not configured we use pcall.
>
> Closes #3487
> ---
> test/box-tap/cfg.test.lua | 29 ++++++++++++++++++++++++++++-
> 1 file changed, 28 insertions(+), 1 deletion(-)
>
> diff --git a/test/box-tap/cfg.test.lua b/test/box-tap/cfg.test.lua
> index 67e4c3af9..2b1769395 100755
> --- a/test/box-tap/cfg.test.lua
> +++ b/test/box-tap/cfg.test.lua
> @@ -6,7 +6,7 @@ local socket = require('socket')
> local fio = require('fio')
> local uuid = require('uuid')
> local msgpack = require('msgpack')
> -test:plan(96)
> +test:plan(97)
>
> --------------------------------------------------------------------------------
> -- Invalid values
> @@ -472,5 +472,32 @@ code = [[pcall(box.cfg, {log = 'syslog:identity=tarantool'})
> ]]
> test:is(run_script(code), 0, "syslog log configuration")
>
> +--
> +-- Check syslog socket configuration
> +--
s/socket/unix socket
Also, we usually mention GitHub ticket in the comment to a test case,
e.g. gh-3487.
> +code = [[
> +local socket = require('socket')
> +local log = require('log')
> +local fio = require('fio')
> +
> +path = fio.pathjoin(fio.cwd(), 'log_unix_socket_test.sock')
> +unix_socket = socket('AF_UNIX', 'SOCK_DGRAM', 0)
> +unix_socket:bind('unix/', path)
> +
> +opt = string.format("syslog:server=unix:%s,identity=tarantool", path)
> +res = 1
> +box.cfg{log = opt, log_level = 5}
> +log.info("Test socket syslog destination")
> +buf = unix_socket:read("Test socket syslog destination", 30)
> +if buf ~= nil then
> + if buf:match('Test socket syslog destination') then res = 0 end
> +end
I don't like that you use such a long string as a delimiter (first
argument of 'read' is delimiter, right?). It looks weird. Why not
rewrite the code exactly in the way you use for testing udp syslog
destination?
> +
> +unix_socket:close()
> +os.remove(path)
> +os.exit(res)
> +]]
> +test:is(run_script(code), 0, "unix socket syslog log configuration")
> +
> test:check()
> os.exit(0)
More information about the Tarantool-patches
mailing list