[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